コード例 #1
0
 /**
  * @desc Tries to authenticate the user using the given authentication method.
  * @param AuthenticationMethod $authentication the authentication method to use
  * @param bool $autoconnect If true, an autoconnect cookie will be created
  * @return int $user_id, if authentication has been performed successfully
  */
 public static function authenticate(AuthenticationMethod $authentication, $autoconnect = false)
 {
     $user_id = $authentication->authenticate();
     if ($user_id) {
         $session = AppContext::get_session();
         if ($session != null) {
             Session::delete($session);
         }
         $session_data = Session::create($user_id, $autoconnect);
         AppContext::set_session($session_data);
     }
     return $user_id;
 }
コード例 #2
0
 /**
  * @desc Create a user
  * @param UserAuthentification $user_authentification
  * @param User $user
  * @return InjectQueryResult
  */
 public static function create(User $user, AuthenticationMethod $auth_method, $extended_fields = array())
 {
     $result = self::$querier->insert(DB_TABLE_MEMBER, array('display_name' => TextHelper::htmlspecialchars($user->get_display_name()), 'level' => $user->get_level(), 'groups' => implode('|', $user->get_groups()), 'email' => $user->get_email(), 'show_email' => (int) $user->get_show_email(), 'locale' => $user->get_locale(), 'timezone' => $user->get_timezone(), 'theme' => $user->get_theme(), 'editor' => $user->get_editor(), 'registration_date' => time()));
     $user_id = $result->get_last_inserted_id();
     $auth_method->associate($user_id);
     if ($extended_fields instanceof MemberExtendedFieldsService) {
         $fields_data = $extended_fields->get_data($user_id);
     } elseif (!is_array($extended_fields)) {
         $fields_data = array();
     } else {
         $fields_data = $extended_fields;
     }
     $fields_data['user_id'] = $user_id;
     self::$querier->insert(DB_TABLE_MEMBER_EXTENDED_FIELDS, $fields_data);
     self::regenerate_cache();
     return $user_id;
 }