コード例 #1
0
 /**
  * (non-PHPdoc)
  * @see common_user_auth_Adapter::authenticate()
  */
 public function authenticate()
 {
     $service = new AuthKeyValueUserService();
     $userData = $service->getUserData($this->username);
     $hashing = core_kernel_users_Service::getPasswordHash();
     if (isset($userData[PROPERTY_USER_PASSWORD]) && $hashing->verify($this->password, $userData[PROPERTY_USER_PASSWORD])) {
         // user is authentified, create the user for the session
         $params = json_decode($userData[AuthKeyValueUserService::USER_PARAMETERS], true);
         $user = new AuthKeyValueUser();
         $user->setConfiguration($this->getOptions());
         $user->setIdentifier($params['uri']);
         $user->setLanguageUi($params[PROPERTY_USER_UILG]);
         $user->setLanguageDefLg($params[PROPERTY_USER_DEFLG]);
         $user->setUserRawParameters($params);
         return $user;
     } else {
         throw new core_kernel_users_InvalidLoginException('User "' . $this->username . '" failed key-value authentication.');
     }
 }
コード例 #2
0
$row = 1;
if (($handle = fopen($csvfile, "r")) !== false) {
    while (($data = fgetcsv($handle, 1000, ";")) !== false) {
        if ($row === 1) {
            //            if (json_encode($data) != json_encode(array_keys($expected))) {
            //                echo 'Expected data in the format "'.implode('","', $expected).'".'.PHP_EOL;
            //                die(1);
            //            }
        } else {
            $toAdd = array(GroupsService::PROPERTY_MEMBERS_URI => array($groupUri));
            foreach ($data as $pos => $value) {
                $toAdd[$expected[$keys[$pos]]] = $value;
            }
            // encode password
            $toAdd[PROPERTY_USER_PASSWORD] = core_kernel_users_Service::getPasswordHash()->encrypt($toAdd[PROPERTY_USER_PASSWORD]);
            if ($userService->getUserData($toAdd[PROPERTY_USER_LOGIN]) != false) {
                echo 'User "' . $toAdd[PROPERTY_USER_LOGIN] . '" already exists.' . PHP_EOL;
            } else {
                $userData = DataGeneration::createUser($toAdd, $lang);
                try {
                    $persistence->insert('redis', array('subject' => $userData['uri'], 'predicate' => PROPERTY_USER_LOGIN, 'object' => $userData[PROPERTY_USER_LOGIN]));
                } catch (PDOException $e) {
                    echo 'please make sure that called redis exists with subject,predicate,object' . "\n";
                    echo 'insert as first line : ' . $userData['uri'] . " , " . PROPERTY_USER_LOGIN . " , " . $userData[PROPERTY_USER_LOGIN];
                    die(1);
                }
            }
        }
        $row++;
    }
    fclose($handle);
コード例 #3
0
 /**
  * Function that will refresh the parameters.
  */
 public function refresh()
 {
     $this->setUserExtraParameters(null);
     $service = new AuthKeyValueUserService();
     $userData = $service->getUserData($this->getPropertyValues(PROPERTY_USER_LOGIN));
     $params = json_decode($userData[AuthKeyValueUserService::USER_PARAMETERS], true);
     $this->setUserRawParameters($params);
 }