Пример #1
0
 /**
  * Returns Basic User Details
  *
  * @param string $username 
  * @return array
  * @author Ben Evans
  */
 public static function getUserDetails($username)
 {
     // Start by consulting the local database first
     $db = Zend_Registry::get("db");
     $query = "SELECT * FROM ad_user_cache WHERE samaccountname=" . $db->quote($username);
     $stmt = $db->query($query);
     $rows = $stmt->fetchAll();
     if (sizeof($rows) == 1) {
         $row = current($rows);
         return $row;
     }
     // OK. We need to do an LDAP Query instead (and then update the database)
     $vUser = Model_Auth_ActiveDirectory::updateUser($username);
     if (!array_key_exists("sn", $vUser[0])) {
         if (!array_key_exists("givenname", $vUser[0])) {
             $vUser[0]['sn'] = array($username);
             $vUser[0]['givenname'] = array("");
         }
     } elseif (!array_key_exists("givenname", $vUser[0])) {
         $vUser[0]['givenname'] = array("");
     }
     $ad_groups = self::getUserGroups($username);
     return array("last_name" => $vUser[0]['sn'][0], "first_name" => $vUser[0]['givenname'][0], "groups" => $ad_groups);
 }
Пример #2
0
 /**
  * This function Caches the local Usernames (and First/Last names)
  *  from the designated Authentication source (eg. LDAP)
  */
 public function syncusernamesAction()
 {
     $vGroups = array();
     $vCounter = 0;
     //Get all the quizzes
     $vQuizzes = Model_Quiz_Quiz::getAll();
     foreach ($vQuizzes as $vQuiz) {
         if (!in_array($vQuiz->getPermissions_group(), $vGroups)) {
             $vGroups[] = $vQuiz->getPermissions_group();
         }
     }
     //So we have all groups now in the system
     foreach ($vGroups as $vGroup) {
         //Get the members of this group
         $vMembers = Model_Auth_ActiveDirectory::getUsersFromGroup($vGroup);
         if (is_array($vMembers) && sizeof($vMembers) > 0) {
             foreach ($vMembers as $vMember) {
                 Model_Auth_ActiveDirectory::updateUser($vMember);
                 $vCounter++;
             }
         }
     }
     $this->view->counter = $vCounter;
 }