function ideaboxGetUserGroupNom($id) { global $db, $langs; if (isset($id) && $id > 0) { $usergroup = new UserGroup($db); $usergroup->fetch($id); return $usergroup->nom; } else { return false; } }
public function getNameUserGroup(&$dolidb) { $usergroup = new UserGroup($dolidb); $usergroup->fetch($this->fk_usergroup); return $usergroup->id > 0 ? $usergroup->name : 'Pour tous'; }
{ $num = $db->num_rows($resql); $i = 0; $ldap=new Ldap(); $ldap->connect_bind(); while ($i < $num) { $ldap->error=""; $obj = $db->fetch_object($resql); $fgroup = new UserGroup($db); $fgroup->id = $obj->rowid; $fgroup->fetch($fgroup->id); print $langs->trans("UpdateGroup")." rowid=".$fgroup->id." ".$fgroup->name; $oldobject=$fgroup; $oldinfo=$oldobject->_load_ldap_info(); $olddn=$oldobject->_load_ldap_dn($oldinfo); $info=$fgroup->_load_ldap_info(); $dn=$fgroup->_load_ldap_dn($info); $result=$ldap->add($dn,$info,$user); // Wil fail if already exists $result=$ldap->update($dn,$info,$user,$olddn); if ($result > 0) {
static function getHeadForObject($tab_object, $fk_object) { global $db, $conf, $langs, $user; $head = array(); if (empty($tab_object)) { return $head; } if ($tab_object === 'product') { dol_include_once('/product/class/product.class.php'); dol_include_once('/core/lib/product.lib.php'); $object = new Product($db); $object->fetch($fk_object); $head = product_prepare_head($object); } else { if ($tab_object === 'thirdparty') { dol_include_once('/societe/class/societe.class.php'); dol_include_once('/core/lib/company.lib.php'); $object = new Societe($db); $object->fetch($fk_object); $head = societe_prepare_head($object); } else { if ($tab_object === 'contact') { dol_include_once('/contact/class/contact.class.php'); dol_include_once('/core/lib/contact.lib.php'); $object = new Contact($db); $object->fetch($fk_object); $head = contact_prepare_head($object); } else { if ($tab_object === 'user') { dol_include_once('/user/class/user.class.php'); dol_include_once('/core/lib/usergroups.lib.php'); $object = new User($db); $object->fetch($fk_object); $head = user_prepare_head($object); } else { if ($tab_object === 'group') { dol_include_once('/user/class/usergroup.class.php'); dol_include_once('/lib/usergroups.lib.php'); $object = new UserGroup($db); $object->fetch($fk_object); $head = group_prepare_head($object); } else { if ($tab_object === 'project') { dol_include_once('/projet/class/project.class.php'); dol_include_once('/core/lib/project.lib.php'); $object = new Project($db); $object->fetch($fk_object); $head = project_prepare_head($object); } } } } } } return $head; }
/** * Return array of groups objects for a particular user * * @param int $userid User id to search * @return array Array of groups objects */ function listGroupsForUser($userid) { global $conf, $user; $ret = array(); $sql = "SELECT g.rowid, ug.entity as usergroup_entity"; $sql .= " FROM " . MAIN_DB_PREFIX . "usergroup as g,"; $sql .= " " . MAIN_DB_PREFIX . "usergroup_user as ug"; $sql .= " WHERE ug.fk_usergroup = g.rowid"; $sql .= " AND ug.fk_user = "******" AND g.entity IS NOT NULL"; } else { $sql .= " AND g.entity IN (0," . $conf->entity . ")"; } $sql .= " ORDER BY g.nom"; dol_syslog(get_class($this) . "::listGroupsForUser", LOG_DEBUG); $result = $this->db->query($sql); if ($result) { while ($obj = $this->db->fetch_object($result)) { if (!array_key_exists($obj->rowid, $ret)) { $newgroup = new UserGroup($this->db); $newgroup->fetch($obj->rowid); $ret[$obj->rowid] = $newgroup; } $ret[$obj->rowid]->usergroup_entity[] = $obj->usergroup_entity; } $this->db->free($result); return $ret; } else { $this->error = $this->db->lasterror(); return -1; } }
/** * @depends testUserGroupOther * The depends says test is run only if previous is ok */ public function testUserGroupDelete($id) { global $conf,$user,$langs,$db; $conf=$this->savconf; $user=$this->savuser; $langs=$this->savlangs; $db=$this->savdb; $localobject=new UserGroup($this->savdb); $result=$localobject->fetch($id); $result=$localobject->delete($id); print __METHOD__." id=".$id." result=".$result."\n"; $this->assertLessThan($result, 0); return $result; }
$db->rollback(); if (is_array($edituser->errors) && count($edituser->errors)) { $message = '<div class="error">' . join('<br>', $langs->trans($edituser->errors)) . '</div>'; } else { $message = '<div class="error">' . $langs->trans($edituser->error) . '</div>'; } $action = "create"; // Go back to create page } } } // Action ajout groupe utilisateur if (($action == 'addgroup' || $action == 'removegroup') && $caneditfield) { if ($group) { $editgroup = new UserGroup($db); $editgroup->fetch($group); $editgroup->oldcopy = dol_clone($editgroup); $edituser = new User($db); $edituser->fetch($id); if ($action == 'addgroup') { $edituser->SetInGroup($group, GETPOST('entity')); } if ($action == 'removegroup') { $edituser->RemoveFromGroup($group, GETPOST('entity')); } if ($result > 0) { header("Location: fiche.php?id=" . $id); exit; } else { $message .= $edituser->error; }
$userid = GETPOST('userid', 'int'); $socid = GETPOST('socid', 'int'); // Security check if ($user->societe_id > 0) { $action = ''; $socid = $user->societe_id; } $nowyear = strftime("%Y", dol_now()); $year = GETPOST('year') > 0 ? GETPOST('year') : $nowyear; //$startyear=$year-2; $startyear = $year - 1; $endyear = $year; $includeuserlist = array(); if (!empty($conf->global->LEAD_GRP_USER_AFFECT)) { $usergroup = new UserGroup($db); $result = $usergroup->fetch($conf->global->LEAD_GRP_USER_AFFECT); if ($result < 0) { setEventMessage($usergroup->error, 'errors'); } $includeuserlisttmp = $usergroup->listUsersForGroup(); if (is_array($includeuserlisttmp) && count($includeuserlisttmp) > 0) { foreach ($includeuserlisttmp as $usertmp) { $includeuserlist[] = $usertmp->id; } } } $langs->load('lead@lead'); llxHeader('', $langs->trans('Module103111Name')); $stats_lead = new LeadStats($db); if (!empty($userid) && $userid != -1) { $stats_lead->userid = $userid;
/** * Function called when a Dolibarrr business event is done. * All functions "run_trigger" are triggered if file is inside directory htdocs/core/triggers * * @param string $action Event action code * @param Object $object Object * @param User $user Object user * @param Translate $langs Object langs * @param conf $conf Object conf * @return int <0 if KO, 0 if no triggered ran, >0 if OK */ function run_trigger($action, $object, $user, $langs, $conf) { if (empty($conf->ldap->enabled)) { return 0; } // Module not active, we do nothing if (!function_exists('ldap_connect')) { dol_syslog("Warning, module LDAP is enabled but LDAP functions not available in this PHP", LOG_WARNING); return 0; } // Users if ($action == 'USER_CREATE') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); if (!empty($conf->global->LDAP_SYNCHRO_ACTIVE) && $conf->global->LDAP_SYNCHRO_ACTIVE === 'dolibarr2ldap') { $ldap = new Ldap(); $ldap->connect_bind(); $info = $object->_load_ldap_info(); $dn = $object->_load_ldap_dn($info); $result = $ldap->add($dn, $info, $user); if ($result < 0) { $this->error = "ErrorLDAP " . $ldap->error; } return $result; } } elseif ($action == 'USER_MODIFY') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); if (!empty($conf->global->LDAP_SYNCHRO_ACTIVE) && $conf->global->LDAP_SYNCHRO_ACTIVE === 'dolibarr2ldap') { $ldap = new Ldap(); $ldap->connect_bind(); if (empty($object->oldcopy) || !is_object($object->oldcopy)) { dol_syslog("Trigger " . $action . " was called by a function that did not set previously the property ->oldcopy onto object", LOG_WARNING); $object->oldcopy = dol_clone($object); } $oldinfo = $object->oldcopy->_load_ldap_info(); $olddn = $object->oldcopy->_load_ldap_dn($oldinfo); // Verify if entry exist $container = $object->oldcopy->_load_ldap_dn($oldinfo, 1); $search = "(" . $object->oldcopy->_load_ldap_dn($oldinfo, 2) . ")"; $records = $ldap->search($container, $search); if (count($records) && $records['count'] == 0) { $olddn = ''; } $info = $object->_load_ldap_info(); $dn = $object->_load_ldap_dn($info); $result = $ldap->update($dn, $info, $user, $olddn); if ($result < 0) { $this->error = "ErrorLDAP " . $ldap->error; } return $result; } } elseif ($action == 'USER_NEW_PASSWORD') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); if (!empty($conf->global->LDAP_SYNCHRO_ACTIVE) && $conf->global->LDAP_SYNCHRO_ACTIVE === 'dolibarr2ldap') { $ldap = new Ldap(); $ldap->connect_bind(); if (empty($object->oldcopy) || !is_object($object->oldcopy)) { dol_syslog("Trigger " . $action . " was called by a function that did not set previously the property ->oldcopy onto object", LOG_WARNING); $object->oldcopy = dol_clone($object); } $oldinfo = $object->oldcopy->_load_ldap_info(); $olddn = $object->oldcopy->_load_ldap_dn($oldinfo); // Verify if entry exist $container = $object->oldcopy->_load_ldap_dn($oldinfo, 1); $search = "(" . $object->oldcopy->_load_ldap_dn($oldinfo, 2) . ")"; $records = $ldap->search($container, $search); if (count($records) && $records['count'] == 0) { $olddn = ''; } $info = $object->_load_ldap_info(); $dn = $object->_load_ldap_dn($info); $result = $ldap->update($dn, $info, $user, $olddn); if ($result < 0) { $this->error = "ErrorLDAP " . $ldap->error; } return $result; } } elseif ($action == 'USER_ENABLEDISABLE') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); } elseif ($action == 'USER_DELETE') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); if (!empty($conf->global->LDAP_SYNCHRO_ACTIVE) && $conf->global->LDAP_SYNCHRO_ACTIVE === 'dolibarr2ldap') { $ldap = new Ldap(); $ldap->connect_bind(); $info = $object->_load_ldap_info(); $dn = $object->_load_ldap_dn($info); $result = $ldap->delete($dn, $info, $user); if ($result < 0) { $this->error = "ErrorLDAP " . $ldap->error; } return $result; } } elseif ($action == 'USER_SETINGROUP') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); if (!empty($conf->global->LDAP_SYNCHRO_ACTIVE) && $conf->global->LDAP_SYNCHRO_ACTIVE === 'dolibarr2ldap') { $ldap = new Ldap(); $ldap->connect_bind(); // Must edit $object->newgroupid $usergroup = new UserGroup($this->db); if ($object->newgroupid > 0) { $usergroup->fetch($object->newgroupid); $oldinfo = $usergroup->_load_ldap_info(); $olddn = $usergroup->_load_ldap_dn($oldinfo); // Verify if entry exist $container = $usergroup->_load_ldap_dn($oldinfo, 1); $search = "(" . $usergroup->_load_ldap_dn($oldinfo, 2) . ")"; $records = $ldap->search($container, $search); if (count($records) && $records['count'] == 0) { $olddn = ''; } $info = $usergroup->_load_ldap_info(); // Contains all members, included the new one (insert already done before trigger call) $dn = $usergroup->_load_ldap_dn($info); $result = $ldap->update($dn, $info, $user, $olddn); if ($result < 0) { $this->error = "ErrorLDAP " . $ldap->error; } } return $result; } } elseif ($action == 'USER_REMOVEFROMGROUP') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); if (!empty($conf->global->LDAP_SYNCHRO_ACTIVE) && $conf->global->LDAP_SYNCHRO_ACTIVE === 'dolibarr2ldap') { $ldap = new Ldap(); $ldap->connect_bind(); // Must edit $object->newgroupid $usergroup = new UserGroup($this->db); if ($object->oldgroupid > 0) { $usergroup->fetch($object->oldgroupid); $oldinfo = $usergroup->_load_ldap_info(); $olddn = $usergroup->_load_ldap_dn($oldinfo); // Verify if entry exist $container = $usergroup->_load_ldap_dn($oldinfo, 1); $search = "(" . $usergroup->_load_ldap_dn($oldinfo, 2) . ")"; $records = $ldap->search($container, $search); if (count($records) && $records['count'] == 0) { $olddn = ''; } $info = $usergroup->_load_ldap_info(); // Contains all members, included the new one (insert already done before trigger call) $dn = $usergroup->_load_ldap_dn($info); $result = $ldap->update($dn, $info, $user, $olddn); if ($result < 0) { $this->error = "ErrorLDAP " . $ldap->error; } } return $result; } } elseif ($action == 'GROUP_CREATE') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); if (!empty($conf->global->LDAP_SYNCHRO_ACTIVE) && $conf->global->LDAP_SYNCHRO_ACTIVE === 'dolibarr2ldap') { $ldap = new Ldap(); $ldap->connect_bind(); $info = $object->_load_ldap_info(); $dn = $object->_load_ldap_dn($info); // Get a gid number for objectclass PosixGroup if (in_array('posixGroup', $info['objectclass'])) { $info['gidNumber'] = $ldap->getNextGroupGid(); } $result = $ldap->add($dn, $info, $user); if ($result < 0) { $this->error = "ErrorLDAP " . $ldap->error; } return $result; } } elseif ($action == 'GROUP_MODIFY') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); if (!empty($conf->global->LDAP_SYNCHRO_ACTIVE) && $conf->global->LDAP_SYNCHRO_ACTIVE === 'dolibarr2ldap') { $ldap = new Ldap(); $ldap->connect_bind(); if (empty($object->oldcopy) || !is_object($object->oldcopy)) { dol_syslog("Trigger " . $action . " was called by a function that did not set previously the property ->oldcopy onto object", LOG_WARNING); $object->oldcopy = dol_clone($object); } $oldinfo = $object->oldcopy->_load_ldap_info(); $olddn = $object->oldcopy->_load_ldap_dn($oldinfo); // Verify if entry exist $container = $object->oldcopy->_load_ldap_dn($oldinfo, 1); $search = "(" . $object->oldcopy->_load_ldap_dn($oldinfo, 2) . ")"; $records = $ldap->search($container, $search); if (count($records) && $records['count'] == 0) { $olddn = ''; } $info = $object->_load_ldap_info(); $dn = $object->_load_ldap_dn($info); $result = $ldap->update($dn, $info, $user, $olddn); if ($result < 0) { $this->error = "ErrorLDAP " . $ldap->error; } return $result; } } elseif ($action == 'GROUP_DELETE') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); if (!empty($conf->global->LDAP_SYNCHRO_ACTIVE) && $conf->global->LDAP_SYNCHRO_ACTIVE === 'dolibarr2ldap') { $ldap = new Ldap(); $ldap->connect_bind(); $info = $object->_load_ldap_info(); $dn = $object->_load_ldap_dn($info); $result = $ldap->delete($dn, $info, $user); if ($result < 0) { $this->error = "ErrorLDAP " . $ldap->error; } return $result; } } elseif ($action == 'CONTACT_CREATE') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); if (!empty($conf->global->LDAP_CONTACT_ACTIVE)) { $ldap = new Ldap(); $ldap->connect_bind(); $info = $object->_load_ldap_info(); $dn = $object->_load_ldap_dn($info); $result = $ldap->add($dn, $info, $user); if ($result < 0) { $this->error = "ErrorLDAP " . $ldap->error; } return $result; } } elseif ($action == 'CONTACT_MODIFY') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); if (!empty($conf->global->LDAP_CONTACT_ACTIVE)) { $ldap = new Ldap(); $ldap->connect_bind(); if (empty($object->oldcopy) || !is_object($object->oldcopy)) { dol_syslog("Trigger " . $action . " was called by a function that did not set previously the property ->oldcopy onto object", LOG_WARNING); $object->oldcopy = dol_clone($object); } $oldinfo = $object->oldcopy->_load_ldap_info(); $olddn = $object->oldcopy->_load_ldap_dn($oldinfo); // Verify if entry exist $container = $object->oldcopy->_load_ldap_dn($oldinfo, 1); $search = "(" . $object->oldcopy->_load_ldap_dn($oldinfo, 2) . ")"; $records = $ldap->search($container, $search); if (count($records) && $records['count'] == 0) { $olddn = ''; } $info = $object->_load_ldap_info(); $dn = $object->_load_ldap_dn($info); $result = $ldap->update($dn, $info, $user, $olddn); if ($result < 0) { $this->error = "ErrorLDAP " . $ldap->error; } return $result; } } elseif ($action == 'CONTACT_DELETE') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); if (!empty($conf->global->LDAP_CONTACT_ACTIVE)) { $ldap = new Ldap(); $ldap->connect_bind(); $info = $object->_load_ldap_info(); $dn = $object->_load_ldap_dn($info); $result = $ldap->delete($dn, $info, $user); if ($result < 0) { $this->error = "ErrorLDAP " . $ldap->error; } return $result; } } elseif ($action == 'MEMBER_CREATE') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); if (!empty($conf->global->LDAP_MEMBER_ACTIVE)) { $ldap = new Ldap(); $ldap->connect_bind(); $info = $object->_load_ldap_info(); $dn = $object->_load_ldap_dn($info); $result = $ldap->add($dn, $info, $user); if ($result < 0) { $this->error = "ErrorLDAP " . $ldap->error; } return $result; } } elseif ($action == 'MEMBER_VALIDATE') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); if (!empty($conf->global->LDAP_MEMBER_ACTIVE)) { // If status field is setup to be synchronized if (!empty($conf->global->LDAP_FIELD_MEMBER_STATUS)) { $ldap = new Ldap(); $ldap->connect_bind(); $info = $object->_load_ldap_info(); $dn = $object->_load_ldap_dn($info); $olddn = $dn; // We know olddn=dn as we change only status $result = $ldap->update($dn, $info, $user, $olddn); if ($result < 0) { $this->error = "ErrorLDAP " . $ldap->error; } return $result; } } } elseif ($action == 'MEMBER_SUBSCRIPTION') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); if (!empty($conf->global->LDAP_MEMBER_ACTIVE)) { // If subscriptions fields are setup to be synchronized if ($conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_DATE || $conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_AMOUNT || $conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_DATE || $conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_AMOUNT || $conf->global->LDAP_FIELD_MEMBER_END_LASTSUBSCRIPTION) { $ldap = new Ldap(); $ldap->connect_bind(); $info = $object->_load_ldap_info(); $dn = $object->_load_ldap_dn($info); $olddn = $dn; // We know olddn=dn as we change only subscriptions $result = $ldap->update($dn, $info, $user, $olddn); if ($result < 0) { $this->error = "ErrorLDAP " . $ldap->error; } return $result; } } } elseif ($action == 'MEMBER_MODIFY') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); if (!empty($conf->global->LDAP_MEMBER_ACTIVE)) { $ldap = new Ldap(); $ldap->connect_bind(); if (empty($object->oldcopy) || !is_object($object->oldcopy)) { dol_syslog("Trigger " . $action . " was called by a function that did not set previously the property ->oldcopy onto object", LOG_WARNING); $object->oldcopy = dol_clone($object); } $oldinfo = $object->oldcopy->_load_ldap_info(); $olddn = $object->oldcopy->_load_ldap_dn($oldinfo); // Verify if entry exist $container = $object->oldcopy->_load_ldap_dn($oldinfo, 1); $search = "(" . $object->oldcopy->_load_ldap_dn($oldinfo, 2) . ")"; $records = $ldap->search($container, $search); if (count($records) && $records['count'] == 0) { $olddn = ''; } $info = $object->_load_ldap_info(); $dn = $object->_load_ldap_dn($info); $result = $ldap->update($dn, $info, $user, $olddn); if ($result < 0) { $this->error = "ErrorLDAP " . $ldap->error; } return $result; } } elseif ($action == 'MEMBER_NEW_PASSWORD') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); if (!empty($conf->global->LDAP_MEMBER_ACTIVE)) { // If password field is setup to be synchronized if ($conf->global->LDAP_FIELD_PASSWORD || $conf->global->LDAP_FIELD_PASSWORD_CRYPTED) { $ldap = new Ldap(); $ldap->connect_bind(); $info = $object->_load_ldap_info(); $dn = $object->_load_ldap_dn($info); $olddn = $dn; // We know olddn=dn as we change only password $result = $ldap->update($dn, $info, $user, $olddn); if ($result < 0) { $this->error = "ErrorLDAP " . $ldap->error; } return $result; } } } elseif ($action == 'MEMBER_RESILIATE') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); if (!empty($conf->global->LDAP_MEMBER_ACTIVE)) { // If status field is setup to be synchronized if (!empty($conf->global->LDAP_FIELD_MEMBER_STATUS)) { $ldap = new Ldap(); $ldap->connect_bind(); $info = $object->_load_ldap_info(); $dn = $object->_load_ldap_dn($info); $olddn = $dn; // We know olddn=dn as we change only status $result = $ldap->update($dn, $info, $user, $olddn); if ($result < 0) { $this->error = "ErrorLDAP " . $ldap->error; } return $result; } } } elseif ($action == 'MEMBER_DELETE') { dol_syslog("Trigger '" . $this->name . "' for action '{$action}' launched by " . __FILE__ . ". id=" . $object->id); if (!empty($conf->global->LDAP_MEMBER_ACTIVE)) { $ldap = new Ldap(); $ldap->connect_bind(); $info = $object->_load_ldap_info(); $dn = $object->_load_ldap_dn($info); $result = $ldap->delete($dn, $info, $user); if ($result < 0) { $this->error = "ErrorLDAP " . $ldap->error; } return $result; } } // If not found /* else { dol_syslog("Trigger '".$this->name."' for action '$action' was ran by ".__FILE__." but no handler found for this action."); return -1; } */ return 0; }
print $langs->trans("Error") . ': ' . $langs->trans("LDAP setup for groups not defined inside Dolibarr"); exit(-1); } $ldap = new Ldap(); $result = $ldap->connect_bind(); if ($result >= 0) { $justthese = array(); // We disable synchro Dolibarr-LDAP $conf->global->LDAP_SYNCHRO_ACTIVE = 0; $ldaprecords = $ldap->getRecords('*', $conf->global->LDAP_GROUP_DN, $conf->global->LDAP_KEY_GROUPS, $required_fields, 0, array($conf->global->LDAP_GROUP_FIELD_GROUPMEMBERS)); if (is_array($ldaprecords)) { $db->begin(); // Warning $ldapuser has a key in lowercase foreach ($ldaprecords as $key => $ldapgroup) { $group = new UserGroup($db); $group->fetch('', $ldapgroup[$conf->global->LDAP_KEY_GROUPS]); $group->name = $ldapgroup[$conf->global->LDAP_GROUP_FIELD_FULLNAME]; $group->nom = $group->name; // For backward compatibility $group->note = $ldapgroup[$conf->global->LDAP_GROUP_FIELD_DESCRIPTION]; $group->entity = $conf->entity; //print_r($ldapgroup); if ($group->id > 0) { // Group update print $langs->transnoentities("GroupUpdate") . ' # ' . $key . ': name=' . $group->name; $res = $group->update(); if ($res > 0) { print ' --> Updated group id=' . $group->id . ' name=' . $group->name; } else { $error++; print ' --> ' . $res . ' ' . $group->error;
$sql = "SELECT uid,rowid, title, fk_usergroup,fk_user_author FROM " . MAIN_DB_PREFIX . "qdashboard WHERE send_by_mail = '" . $frequence . "' AND fk_usergroup>0"; $Tab = $PDOdb->ExecuteAsArray($sql); $f1 = fopen('files/convert.sh', 'w'); fputs($f1, "cd " . __DIR__ . "/files \n"); // var_dump($sql,$Tab); foreach ($Tab as $row) { $author = new User($db); $author->fetch($row->fk_user_author); //var_dump( is_file( 'files/'.$row->uid.'.pdf'), dol_buildpath('/query/files/'.$row->uid.'.pdf') ); if ($step == 1) { $url = dol_buildpath('/query/dashboard.php', 2) . '?action=run&uid=' . $row->uid; //echo $url; fputs($f1, "wkhtmltopdf --orientation Landscape " . escapeshellarg($url) . " " . $row->uid . ".pdf \n"); } elseif ($step == 2 && is_file(dol_buildpath('/query/files/' . $row->uid . '.pdf'))) { $g = new UserGroup($db); if ($g->fetch($row->fk_usergroup) > 0) { $TUser = $g->listUsersForGroup(); foreach ($TUser as &$u) { if ($u->statut == 1) { $mailto = $u->email; if (!empty($mailto)) { print "{$mailto} \n"; $m = new TReponseMail($author->email, $mailto, $langs->trans('Report') . ' : ' . $row->title, $langs->trans('PleaseFindYourReportHasAttachement') . " : " . dol_buildpath('/query/dashboard.php?action=run&id=' . $row->rowid, 2)); $m->add_piece_jointe($row->uid . '.pdf', dol_buildpath('/query/files/' . $row->uid . '.pdf')); $m->send(); } } } } unlink(dol_buildpath('/query/files/' . $row->uid . '.pdf')); // suppresion du pdf après envoi par mail
/** * Return array of groups objects for a particular user * @param userid User id to search * @return array Array of groups objects */ function listGroupsForUser($userid) { global $conf; $ret=array(); $sql = "SELECT g.rowid, ug.entity as usergroup_entity"; $sql.= " FROM ".MAIN_DB_PREFIX."usergroup as g,"; $sql.= " ".MAIN_DB_PREFIX."usergroup_user as ug"; $sql.= " WHERE ug.fk_usergroup = g.rowid"; $sql.= " AND ug.fk_user = "******" AND ug.entity IN (0,".$conf->entity.")"; $sql.= " ORDER BY g.nom"; dol_syslog("UserGroup::listGroupsForUser sql=".$sql,LOG_DEBUG); $result = $this->db->query($sql); if ($result) { while ($obj = $this->db->fetch_object($result)) { $group=new UserGroup($this->db); $group->fetch($obj->rowid); $group->usergroup_entity = $obj->usergroup_entity; $ret[]=$group; } $this->db->free($result); return $ret; } else { $this->error=$this->db->lasterror(); dol_syslog("UserGroup::listGroupsForUser ".$this->error, LOG_ERR); return -1; } }