/** * @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; }
/** * @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; }