Commit cddfd4c8 authored by Jean-Noël Rouchon's avatar Jean-Noël Rouchon

Utilisation du module zimbra pour les taches sur les domaines, user, listes

parent 2ef62d6e
......@@ -77,7 +77,7 @@ function SuperAdmin_init() {
jQuery.ajax({ type: "POST",
url: "/users",
dataType: "json",
data: { user: {first_name: $prenom, last_name: $nom, email: $email, admin: true, password: $password, zouritZimbraTask: true, zouritZimbraContact: true, zouritZimbraCalendar: true, zouritZimbraEmail: true, zouritOwncloud: true } },
data: { user: {first_name: $prenom, last_name: $nom, email: $email, admin: true, password: $password, zouritZimbraTask: false, zouritZimbraContact: false, zouritZimbraCalendar: false, zouritZimbraEmail: false, zouritOwncloud: false } },
success: function (data) {
$SuperAdmin_table.bootstrapTable('refresh');
toastr.success("L'administrateur " + $prenom + " " + $nom + " a été créé");
......
......@@ -16,8 +16,10 @@ class DomainInfosController < ApplicationController
@domainInfo.instance_id = params[:instance_id]
respond_to do |format|
if @domainInfo.save
puts "Création du DomainInfo #{@domain.id} - module #{@mod.id}"
format.html { redirect_to "/domains/#{@domain.id}/infos", notice: "L'instance a bien été ajoutée à votre domaine" }
else
puts "Erreur lors de la création du DomainInfo #{@domain.id} - module #{@mod.id}"
format.html { render :new }
end
end
......
......@@ -26,7 +26,10 @@ class DomainsController < ApplicationController
# GET /domains
# GET /domains.json
def index
@domains = list_domains.sort_by { |hsh| hsh.name }
respond_to do |format|
format.html
format.json { @domains = list_domains.sort_by { |domain| domain.name } }
end
end
# GET /domains/1/administrators
......
......@@ -63,10 +63,11 @@ module UsersHelper
:zouritzimbraquota => zouritZimbraQuota.to_s,
:zouritcloudquota => zouritCloudQuota.to_s
}
if $ldap.add( :dn => dn, :attributes => attr )
if $ldap.add( :dn => dn, :attributes => attr )
puts "Utilisateur #{mail} créé dans LDAP"
return true
else
puts "error creation : #{$ldap.get_operation_result.message}"
puts "Erreur de création de l'utilisateur #{mail} dans LDAP"
return false
end
end
......@@ -92,6 +93,7 @@ module UsersHelper
end
def destroy_user dn
puts "Suppression de l'utilisateur #{dn} de LDAP"
return $ldap.delete(dn: dn)
end
......
......@@ -17,8 +17,6 @@
# along with Zourit. If not, see <http://www.gnu.org/licenses/>.
class Alias
include Core::Zimbra::Helper
attr_accessor :email, :user_email
def initialize user_email, email
......@@ -27,16 +25,16 @@ class Alias
end
def save
return zimbra_aalias self.user_email, self.email
return Core::Zimbra::Helper.zimbra_aalias self.user_email, self.email
end
def destroy
return zimbra_ralias self.user_email, self.email
return Core::Zimbra::Helper.zimbra_ralias self.user_email, self.email
end
def self.list user_email
aliases = []
brut = ApplicationController.helpers.zimbra_galias user_email
brut = Core::Zimbra::Helper.zimbra_galias user_email
brut.each do |a|
aliases << Alias.new(user_email, a)
end
......@@ -45,7 +43,7 @@ class Alias
def self.create opts
if opts[:user_email] and opts[:email]
return ApplicationController.helpers.zimbra_aalias opts[:user_email], opts[:email]
return Core::Zimbra::Helper.zimbra_aalias opts[:user_email], opts[:email]
else
return false
end
......
......@@ -54,16 +54,6 @@ class Domain
return update_domain self.name, opts
else # create domain
result, message = create_domain self.name, self.zouritDomainQuota
if result
result, message = zimbra_cd self.name
# Si echec de creation dans zimbra alors on supprime dans ldap
if result
result, message = zimbra_cdl_tous self.name
else
p message
destroy_domain self.name
end
end
return result, message
end
end
......@@ -81,7 +71,7 @@ class Domain
end
# puis on supprime le domaine
if destroy_domain self.name
return zimbra_dd self.name
return Core::Zimbra::Helper.destroy_domain self
else
return false
end
......
......@@ -59,8 +59,8 @@ class Group
if member.count > 0
@dn = "cn=#{self.name},ou=groups,o=#{self.domain.name}"
if create_group(self.dn, self.member)
if zimbra_cdl self.name
return zimbra_adlm self.name, members_to_string
if Core::Zimbra::Helper.zimbra_cdl self.name
return Core::Zimbra::Helper.zimbra_adlm self.name, members_to_string
else
return false
end
......@@ -68,7 +68,7 @@ class Group
return false
end
else
p "Erreur de création : il doit au moins y avoir un utilisateur dans le groupe"
puts "Erreur de création : il doit au moins y avoir un utilisateur dans le groupe"
return false
end
end
......
......@@ -101,7 +101,6 @@ class User
self.admin = (value.downcase=="true")
when "zouritZimbraQuota"
@reste = value.to_i - self.zouritZimbraQuota.to_i
p "#{value.to_i} - #{self.zouritZimbraQuota.to_i} = #{@reste}"
self.zouritZimbraQuota = value.to_i
req_zimbra += "zimbraMailQuota \"#{self.zouritZimbraQuota.to_i*1024*1024*1024}\" "
when "zouritCloudQuota"
......@@ -114,11 +113,9 @@ class User
@password = Net::LDAP::Password.generate(:sha, value) if key=="password"
end
p "reste : #{@reste} ; resteQuotaDomain: #{@resteQuotadomain}"
if @reste <= @resteQuotadomain
return self.save req_zimbra
else
p "pas ok #{@reste} >= #{@resteQuotadomain}"
return false
end
end
......@@ -137,7 +134,8 @@ class User
# si il n'y a pas de requete pour zimbra ou si zimbra est inactif on ne lance que la mise à jour ldap
zimbraActive = YAML.load_file(Rails.root.join("config", "zimbra.yml"))["active"]
unless req_zimbra.to_s.empty? or !zimbraActive
if (zimbra_ma self, req_zimbra)
#if (Core::Zimbra::Helper.zimbra_ma self, req_zimbra)
if (Core::Zimbra::Helper.update_user self, User.find(self.id))
return update_user self.email, opts
else
return false
......@@ -148,19 +146,22 @@ class User
else # Création d'utilisateur
if create_user(self.email, self.first_name, self.last_name, self.password, objectclass_array, self.admin, self.zouritZimbraQuota, self.zouritCloudQuota)
complete(self.email)
if zimbra_ca(self)
domain = Domain.find(domain_from_mail(self.email))
groupe = Group.find_with_user("tous@#{domain.name}")
if groupe
groupe.add_user [self.id]
if self.zouritZimbraEmail
if Core::Zimbra::Helper.create_user(self)
domain = Domain.find(domain_from_mail(self.email))
groupe = Group.find_with_user("tous@#{domain.name}")
if groupe
groupe.add_user [self.id]
else
groupe = Group.new({name: "tous@#{domain.name}", domain: domain, member: [self]})
groupe.save
end
return true
else
groupe = Group.new({name: "tous@#{domain.name}", domain: domain, member: [self]})
groupe.save
return false
end
return true
else
destroy_user @dn
return false
return true
end
else
return false
......@@ -181,7 +182,11 @@ class User
def destroy
#delete_from_tous_group
if destroy_user @dn
return zimbra_da self
if self.zouritZimbraEmail
return Core::Zimbra::Helper.destroy_user self
else
return true
end
else
return false
end
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment