/**
  * @return bool
  */
 public function execute()
 {
     $objUsersources = new class_usersources_source_ldap();
     $objUsersources->updateUserData();
     //trigger again
     return false;
 }
 /**
  * @see interface_admin_systemtask::executeTask()
  * @return string
  */
 public function executeTask()
 {
     if (!class_module_system_module::getModuleByName("ldap")->rightEdit()) {
         return $this->getLang("commons_error_permissions");
     }
     $objUsersources = new class_usersources_source_ldap();
     $bitSync = $objUsersources->updateUserData();
     if ($bitSync) {
         return $this->objToolkit->getTextRow($this->getLang("systemtask_ldapsync_success"));
     } else {
         return $this->objToolkit->getTextRow($this->getLang("systemtask_ldapsync_error"));
     }
 }
 /**
  * Returns an array of user-ids associated with the current group.
  * If possible, pageing should be supported
  *
  * @param int $intStart
  * @param int $intEnd
  *
  * @return array
  */
 public function getUserIdsForGroup($intStart = null, $intEnd = null)
 {
     $arrReturn = array();
     //load all members from ldap
     $objLdap = class_ldap::getInstance($this->intCfg);
     $arrMembers = $objLdap->getMembersOfGroup($this->getStrDn());
     $objSource = new class_usersources_source_ldap();
     foreach ($arrMembers as $strOneMemberDn) {
         //check if the user exists in the kajona-database
         $objUser = $objSource->getUserByDn($strOneMemberDn);
         if ($objUser != null) {
             $arrReturn[] = $objUser->getSystemid();
         } else {
             //import the user into the system transparently
             $arrSingleUser = $objLdap->getUserDetailsByDN($strOneMemberDn);
             $objUser = new class_module_user_user();
             $objUser->setStrUsername($arrSingleUser["username"]);
             $objUser->setStrSubsystem("ldap");
             $objUser->setIntActive(1);
             $objUser->setIntAdmin(1);
             $objUser->updateObjectToDb();
             $objSourceUser = $objUser->getObjSourceUser();
             if ($objSourceUser instanceof class_usersources_user_ldap) {
                 $objSourceUser->setStrDN($arrSingleUser["identifier"]);
                 $objSourceUser->setStrFamilyname($arrSingleUser["familyname"]);
                 $objSourceUser->setStrGivenname($arrSingleUser["givenname"]);
                 $objSourceUser->setStrEmail($arrSingleUser["mail"]);
                 $objSourceUser->updateObjectToDb();
                 $this->objDB->flushQueryCache();
             }
             $arrReturn[] = $objUser->getSystemid();
         }
     }
     return $arrReturn;
 }
 /**
  * Returns the list of group-ids the current user is assigned to
  * @return array
  */
 public function getGroupIdsForUser()
 {
     $arrReturn = array();
     $objLdap = class_ldap::getInstance($this->intCfg);
     $objLdapSource = new class_usersources_source_ldap();
     $arrLdapGroups = $objLdapSource->getAllGroupIds();
     foreach ($arrLdapGroups as $strOneGroupId) {
         $objGroup = new class_usersources_group_ldap($strOneGroupId);
         if ($objGroup->getIntCfg() == $this->intCfg && $objLdap->isUserMemberOfGroup($this->getStrDN(), $objGroup->getStrDn())) {
             $arrReturn[] = $strOneGroupId;
         }
     }
     return $arrReturn;
 }