New: Ajout de la gestion des triggers sur les actions sur les groupes

This commit is contained in:
Laurent Destailleur 2006-11-20 02:10:47 +00:00
parent 616fd81602
commit 2aa99d0fd9
10 changed files with 260 additions and 195 deletions

View File

@ -574,7 +574,7 @@ if ($action == 'create')
print '<tr><td>'.$langs->trans("Password").'*</td><td><input type="password" name="member_pass" size="40" value="'.$adh->password.'"></td></tr>'; print '<tr><td>'.$langs->trans("Password").'*</td><td><input type="password" name="member_pass" size="40" value="'.$adh->password.'"></td></tr>';
// Type // Type
print '<tr><td width="15%">'.$langs->trans("MemberType").'*</td><td width="35%">'; print '<tr><td">'.$langs->trans("MemberType").'*</td><td">';
$listetype=$adht->liste_array(); $listetype=$adht->liste_array();
if (sizeof($listetype)) { if (sizeof($listetype)) {
$htmls->select_array("type", $listetype, $typeid); $htmls->select_array("type", $listetype, $typeid);
@ -752,14 +752,14 @@ if ($rowid && $action != 'edit')
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
// Ref // Ref
print '<tr><td>'.$langs->trans("Ref").'</td><td class="valeur" colspan="3">'.$adh->id.'&nbsp;</td></tr>'; print '<tr><td width="20%">'.$langs->trans("Ref").'</td><td class="valeur" colspan="3">'.$adh->id.'&nbsp;</td></tr>';
// Nom // Nom
print '<tr><td>'.$langs->trans("Lastname").'*</td><td class="valeur">'.$adh->nom.'&nbsp;</td>'; print '<tr><td>'.$langs->trans("Lastname").'*</td><td class="valeur">'.$adh->nom.'&nbsp;</td>';
print '<td valign="top" width="50%">'.$langs->trans("Comments").'</td></tr>'; print '<td valign="top" width="50%">'.$langs->trans("Comments").'</td></tr>';
// Prenom // Prenom
print '<tr><td width="15%">'.$langs->trans("Firstname").'*</td><td class="valeur" width="35%">'.$adh->prenom.'&nbsp;</td>'; print '<tr><td>'.$langs->trans("Firstname").'*</td><td class="valeur">'.$adh->prenom.'&nbsp;</td>';
print '<td rowspan="'.(13+count($adh->array_options)).'" valign="top" width="50%">'; print '<td rowspan="'.(13+count($adh->array_options)).'" valign="top" width="50%">';
print nl2br($adh->commentaire).'&nbsp;</td></tr>'; print nl2br($adh->commentaire).'&nbsp;</td></tr>';

View File

@ -93,7 +93,7 @@ dolibarr_fiche_head($head, 'ldap', $langs->trans("Member").": ".$adh->fullname);
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
// Ref // Ref
print '<tr><td>'.$langs->trans("Ref").'</td><td class="valeur">'.$adh->id.'&nbsp;</td></tr>'; print '<tr><td width="20%">'.$langs->trans("Ref").'</td><td class="valeur">'.$adh->id.'&nbsp;</td></tr>';
// Nom // Nom
print '<tr><td>'.$langs->trans("Lastname").'*</td><td class="valeur">'.$adh->nom.'&nbsp;</td>'; print '<tr><td>'.$langs->trans("Lastname").'*</td><td class="valeur">'.$adh->nom.'&nbsp;</td>';
@ -109,14 +109,18 @@ print '<tr><td>'.$langs->trans("Login").'*</td><td class="valeur">'.$adh->login.
// Type // Type
print '<tr><td>'.$langs->trans("Type").'*</td><td class="valeur">'.$adh->type."</td></tr>\n"; print '<tr><td>'.$langs->trans("Type").'*</td><td class="valeur">'.$adh->type."</td></tr>\n";
// LDAP DN
$langs->load("admin"); $langs->load("admin");
print '<tr><td>'.$langs->trans("LDAPMemberDn").'*</td><td class="valeur">'.$conf->global->LDAP_MEMBER_DN."</td></tr>\n";
// LDAP DN
print '<tr><td>LDAP '.$langs->trans("LDAPMemberDn").'</td><td class="valeur">'.$conf->global->LDAP_MEMBER_DN."</td></tr>\n";
// LDAP Clé
print '<tr><td>LDAP '.$langs->trans("LDAPNamingAttribute").'</td><td class="valeur">'.$conf->global->LDAP_KEY_MEMBERS."</td></tr>\n";
// LDAP Server // LDAP Server
print '<tr><td>'.$langs->trans("LDAPPrimaryServer").'*</td><td class="valeur">'.$conf->global->LDAP_SERVER_HOST."</td></tr>\n"; print '<tr><td>LDAP '.$langs->trans("LDAPPrimaryServer").'</td><td class="valeur">'.$conf->global->LDAP_SERVER_HOST."</td></tr>\n";
print '<tr><td>'.$langs->trans("LDAPSecondaryServer").'*</td><td class="valeur">'.$conf->global->LDAP_SERVER_HOST_SLAVE."</td></tr>\n"; print '<tr><td>LDAP '.$langs->trans("LDAPSecondaryServer").'</td><td class="valeur">'.$conf->global->LDAP_SERVER_HOST_SLAVE."</td></tr>\n";
print '<tr><td>'.$langs->trans("LDAPServerPort").'*</td><td class="valeur">'.$conf->global->LDAP_SERVER_PORT."</td></tr>\n"; print '<tr><td>LDAP '.$langs->trans("LDAPServerPort").'</td><td class="valeur">'.$conf->global->LDAP_SERVER_PORT."</td></tr>\n";
print '</table>'; print '</table>';

View File

@ -116,19 +116,23 @@ print $form->civilite_name($contact->civilite_id);
print '</td></tr>'; print '</td></tr>';
// Nom // Nom
print '<tr><td width="20%">'.$langs->trans("Lastname").'</td><td>'.$contact->name.'</td>'; print '<tr><td width="20%">'.$langs->trans("Lastname").'</td><td>'.$contact->name.'</td></tr>';
// Prenom // Prenom
print '<td width="20%">'.$langs->trans("Firstname").'</td><td width="25%">'.$contact->firstname.'</td></tr>'; print '<tr><td width="20%">'.$langs->trans("Firstname").'</td><td width="25%">'.$contact->firstname.'</td></tr>';
$langs->load("admin");
// LDAP DN // LDAP DN
$langs->load("admin"); print '<tr><td>LDAP '.$langs->trans("LDAPContactDn").'</td><td class="valeur">'.$conf->global->LDAP_CONTACT_DN."</td></tr>\n";
print '<tr><td>'.$langs->trans("LDAPContactDn").'*</td><td class="valeur">'.$conf->global->LDAP_CONTACT_DN."</td></tr>\n";
// LDAP Clé
print '<tr><td>LDAP '.$langs->trans("LDAPNamingAttribute").'</td><td class="valeur">'.$conf->global->LDAP_KEY_CONTACTS."</td></tr>\n";
// LDAP Server // LDAP Server
print '<tr><td>'.$langs->trans("LDAPPrimaryServer").'*</td><td class="valeur">'.$conf->global->LDAP_SERVER_HOST."</td></tr>\n"; print '<tr><td>LDAP '.$langs->trans("LDAPPrimaryServer").'</td><td class="valeur">'.$conf->global->LDAP_SERVER_HOST."</td></tr>\n";
print '<tr><td>'.$langs->trans("LDAPSecondaryServer").'*</td><td class="valeur">'.$conf->global->LDAP_SERVER_HOST_SLAVE."</td></tr>\n"; print '<tr><td>LDAP '.$langs->trans("LDAPSecondaryServer").'</td><td class="valeur">'.$conf->global->LDAP_SERVER_HOST_SLAVE."</td></tr>\n";
print '<tr><td>'.$langs->trans("LDAPServerPort").'*</td><td class="valeur">'.$conf->global->LDAP_SERVER_PORT."</td></tr>\n"; print '<tr><td>LDAP '.$langs->trans("LDAPServerPort").'</td><td class="valeur">'.$conf->global->LDAP_SERVER_PORT."</td></tr>\n";
print '</table>'; print '</table>';

View File

@ -506,11 +506,11 @@ LDAPSynchronizeGroups=Synchronize Dolibarr groups with LDAP
LDAPSynchronizeContacts=Synchronize Dolibarr contacts with LDAP LDAPSynchronizeContacts=Synchronize Dolibarr contacts with LDAP
LDAPSynchronizeMembers=Synchronize members of Dolibarr fundation module with LDAP LDAPSynchronizeMembers=Synchronize members of Dolibarr fundation module with LDAP
LDAPTypeExample=OpenLdap, Egroupware or Active Directory LDAPTypeExample=OpenLdap, Egroupware or Active Directory
LDAPPrimaryServer=LDAP primary server LDAPPrimaryServer=Primary server
LDAPSecondaryServer=LDAP secondary server LDAPSecondaryServer=Secondary server
LDAPServerPort=LDAP server port LDAPServerPort=Server port
LDAPServerPortExample=Default port : 389 LDAPServerPortExample=Default port : 389
LDAPServerProtocolVersion=LDAP protocol version LDAPServerProtocolVersion=Protocol version
LDAPServerUseTLS=Use TLS LDAPServerUseTLS=Use TLS
LDAPServerUseTLSExample=Your LDAP server use TLS LDAPServerUseTLSExample=Your LDAP server use TLS
LDAPServerDn=Server DN LDAPServerDn=Server DN

View File

@ -508,9 +508,9 @@ LDAPSynchronizeMembers=Synchronisation des membres du module adh
LDAPTypeExample=OpenLdap, Egroupware ou Active Directory LDAPTypeExample=OpenLdap, Egroupware ou Active Directory
LDAPPrimaryServer=Serveur primaire LDAPPrimaryServer=Serveur primaire
LDAPSecondaryServer=Serveur secondaire LDAPSecondaryServer=Serveur secondaire
LDAPServerPort=Port du serveur LDAP LDAPServerPort=Port du serveur
LDAPServerPortExample=Port par défaut : 389 LDAPServerPortExample=Port par défaut : 389
LDAPServerProtocolVersion=Version du protocole LDAP LDAPServerProtocolVersion=Version du protocole
LDAPServerUseTLS=Utiliser TLS LDAPServerUseTLS=Utiliser TLS
LDAPServerUseTLSExample=Votre serveur utilise le TLS LDAPServerUseTLSExample=Votre serveur utilise le TLS
LDAPServerDn=DN du serveur LDAPServerDn=DN du serveur

View File

@ -37,6 +37,7 @@
\version $Revision$ \version $Revision$
*/ */
require_once (DOL_DOCUMENT_ROOT."/lib/authldap.lib.php");
/** /**
@ -550,8 +551,14 @@ class User
*/ */
function delete() function delete()
{ {
global $conf,$langs;
$this->db->begin();
$this->fetch();
// Supprime droits // Supprime droits
$sql = "DELETE FROM ".MAIN_DB_PREFIX."user_rights WHERE fk_user = $this->id"; $sql = "DELETE FROM ".MAIN_DB_PREFIX."user_rights WHERE fk_user = ".$this->id;
if ($this->db->query($sql)) if ($this->db->query($sql))
{ {
@ -570,6 +577,31 @@ class User
// Supprime utilisateur // Supprime utilisateur
$sql = "DELETE FROM ".MAIN_DB_PREFIX."user WHERE rowid = $this->id"; $sql = "DELETE FROM ".MAIN_DB_PREFIX."user WHERE rowid = $this->id";
$result = $this->db->query($sql); $result = $this->db->query($sql);
if ($result)
{
// Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('USER_DELETE',$this,$user,$lang,$conf);
if ($result < 0) $error++;
// Fin appel triggers
// \todo Mettre en trigger
if ($conf->ldap->enabled && $conf->global->LDAP_SYNCHRO_ACTIVE)
{
$this->delete_ldap($user);
}
$this->db->commit();
return 1;
}
else
{
$this->db->rollback();
dolibarr_print_error($this->db);
return -1;
}
} }

View File

@ -109,7 +109,7 @@ if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == "yes")
if ($_GET["id"] <> $user->id) if ($_GET["id"] <> $user->id)
{ {
$edituser = new User($db, $_GET["id"]); $edituser = new User($db, $_GET["id"]);
$edituser->fetch($_GET["id"]); $edituser->id=$_GET["id"];
$edituser->delete(); $edituser->delete();
Header("Location: index.php"); Header("Location: index.php");
exit; exit;

View File

@ -85,14 +85,18 @@ print '<tr><td width="25%" valign="top">'.$langs->trans("Note").'</td>';
print '<td class="valeur">'.nl2br($fgroup->note).'&nbsp;</td>'; print '<td class="valeur">'.nl2br($fgroup->note).'&nbsp;</td>';
print "</tr>\n"; print "</tr>\n";
// LDAP DN
$langs->load("admin"); $langs->load("admin");
print '<tr><td>'.$langs->trans("LDAPGroupDn").'*</td><td class="valeur">'.$conf->global->LDAP_GROUP_DN."</td></tr>\n";
// LDAP DN
print '<tr><td>LDAP '.$langs->trans("LDAPGroupDn").'</td><td class="valeur">'.$conf->global->LDAP_GROUP_DN."</td></tr>\n";
// LDAP Clé
print '<tr><td>LDAP '.$langs->trans("LDAPNamingAttribute").'</td><td class="valeur">'.$conf->global->LDAP_KEY_GROUPS."</td></tr>\n";
// LDAP Server // LDAP Server
print '<tr><td>'.$langs->trans("LDAPPrimaryServer").'*</td><td class="valeur">'.$conf->global->LDAP_SERVER_HOST."</td></tr>\n"; print '<tr><td>LDAP '.$langs->trans("LDAPPrimaryServer").'</td><td class="valeur">'.$conf->global->LDAP_SERVER_HOST."</td></tr>\n";
print '<tr><td>'.$langs->trans("LDAPSecondaryServer").'*</td><td class="valeur">'.$conf->global->LDAP_SERVER_HOST_SLAVE."</td></tr>\n"; print '<tr><td>LDAP '.$langs->trans("LDAPSecondaryServer").'</td><td class="valeur">'.$conf->global->LDAP_SERVER_HOST_SLAVE."</td></tr>\n";
print '<tr><td>'.$langs->trans("LDAPServerPort").'*</td><td class="valeur">'.$conf->global->LDAP_SERVER_PORT."</td></tr>\n"; print '<tr><td>LDAP '.$langs->trans("LDAPServerPort").'</td><td class="valeur">'.$conf->global->LDAP_SERVER_PORT."</td></tr>\n";
print "</table>\n"; print "</table>\n";

View File

@ -100,14 +100,18 @@ else
} }
print '</tr>'; print '</tr>';
// LDAP DN
$langs->load("admin"); $langs->load("admin");
print '<tr><td>'.$langs->trans("LDAPUserDn").'*</td><td class="valeur">'.$conf->global->LDAP_USER_DN."</td></tr>\n";
// LDAP DN
print '<tr><td>LDAP '.$langs->trans("LDAPUserDn").'</td><td class="valeur">'.$conf->global->LDAP_USER_DN."</td></tr>\n";
// LDAP Clé
print '<tr><td>LDAP '.$langs->trans("LDAPNamingAttribute").'</td><td class="valeur">'.$conf->global->LDAP_KEY_USERS."</td></tr>\n";
// LDAP Server // LDAP Server
print '<tr><td>'.$langs->trans("LDAPPrimaryServer").'*</td><td class="valeur">'.$conf->global->LDAP_SERVER_HOST."</td></tr>\n"; print '<tr><td>LDAP '.$langs->trans("LDAPPrimaryServer").'</td><td class="valeur">'.$conf->global->LDAP_SERVER_HOST."</td></tr>\n";
print '<tr><td>'.$langs->trans("LDAPSecondaryServer").'*</td><td class="valeur">'.$conf->global->LDAP_SERVER_HOST_SLAVE."</td></tr>\n"; print '<tr><td>LDAP '.$langs->trans("LDAPSecondaryServer").'</td><td class="valeur">'.$conf->global->LDAP_SERVER_HOST_SLAVE."</td></tr>\n";
print '<tr><td>'.$langs->trans("LDAPServerPort").'*</td><td class="valeur">'.$conf->global->LDAP_SERVER_PORT."</td></tr>\n"; print '<tr><td>LDAP '.$langs->trans("LDAPServerPort").'</td><td class="valeur">'.$conf->global->LDAP_SERVER_PORT."</td></tr>\n";
print '</table>'; print '</table>';

View File

@ -27,6 +27,9 @@
\version $Revision$ \version $Revision$
*/ */
require_once (DOL_DOCUMENT_ROOT."/lib/authldap.lib.php");
/** /**
\class UserGroup \class UserGroup
\brief Classe permettant la gestion des groupes d'utilisateur \brief Classe permettant la gestion des groupes d'utilisateur
@ -336,37 +339,53 @@ class UserGroup
} }
/** /**
* \brief Efface un groupe de la base * \brief Efface un groupe de la base
* \return < 0 si erreur, > 0 si ok * \return < 0 si erreur, > 0 si ok
*/ */
function delete() function delete()
{ {
$this->db->begin(); global $conf,$langs;
$sql = "DELETE FROM ".MAIN_DB_PREFIX."usergroup_rights"; $this->db->begin();
$sql .= " WHERE fk_usergroup = ".$this->id;
$this->db->query($sql);
$sql = "DELETE FROM ".MAIN_DB_PREFIX."usergroup_user"; $sql = "DELETE FROM ".MAIN_DB_PREFIX."usergroup_rights";
$sql .= " WHERE fk_usergroup = ".$this->id; $sql .= " WHERE fk_usergroup = ".$this->id;
$this->db->query($sql); $this->db->query($sql);
$sql = "DELETE FROM ".MAIN_DB_PREFIX."usergroup"; $sql = "DELETE FROM ".MAIN_DB_PREFIX."usergroup_user";
$sql .= " WHERE rowid = ".$this->id; $sql .= " WHERE fk_usergroup = ".$this->id;
$result=$this->db->query($sql); $this->db->query($sql);
if ($result)
{ $sql = "DELETE FROM ".MAIN_DB_PREFIX."usergroup";
$this->db->commit(); $sql .= " WHERE rowid = ".$this->id;
return 1; $result=$this->db->query($sql);
} if ($result)
else {
{ // Appel des triggers
$this->db->rollback(); include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
dolibarr_print_error($this->db); $interface=new Interfaces($this->db);
return -1; $result=$interface->run_triggers('USER_DELETE',$this,$user,$lang,$conf);
} if ($result < 0) $error++;
} // Fin appel triggers
// \todo Mettre en trigger
if ($conf->ldap->enabled && $conf->global->LDAP_SYNCHRO_ACTIVE)
{
$this->delete_ldap($user);
}
$this->db->commit();
return 1;
}
else
{
$this->db->rollback();
dolibarr_print_error($this->db);
return -1;
}
}
/** /**
* \brief Crée un groupe en base * \brief Crée un groupe en base
@ -614,9 +633,7 @@ class UserGroup
} }
// Champs // Champs
if ($this->fullname && $conf->global->LDAP_FIELD_FULLNAME) $info[$conf->global->LDAP_FIELD_FULLNAME] = $this->fullname; if ($this->nom && $conf->global->LDAP_FIELD_FULLNAME) $info[$conf->global->LDAP_FIELD_FULLNAME] = $this->nom;
if ($this->name && $conf->global->LDAP_FIELD_NAME) $info[$conf->global->LDAP_FIELD_NAME] = $this->name;
if ($this->firstname && $conf->global->LDAP_FIELD_FIRSTNAME) $info[$conf->global->LDAP_FIELD_FIRSTNAME] = $this->firstname;
if ($this->note) $info["description"] = $this->note; if ($this->note) $info["description"] = $this->note;
return $info; return $info;