public function successfulSignup($user) { switch (PHPWS_User::getUserSetting('new_user_method')) { case AUTO_SIGNUP: $result = User_Action::saveNewUser($user, true); if ($result) { User_Action::assignDefaultGroup($user); $content[] = dgettext('users', 'Account created successfully!'); $content[] = dgettext('users', 'You will return to the home page in five seconds.'); $content[] = PHPWS_Text::moduleLink(dgettext('users', 'Click here if you are not redirected.')); Layout::metaRoute(); } else { $content[] = dgettext('users', 'An error occurred when trying to create your account. Please try again later.'); } break; case CONFIRM_SIGNUP: if (User_Action::saveNewUser($user, false)) { if (User_Action::confirmEmail($user)) { $content[] = dgettext('users', 'User created successfully. Check your email for your login information.'); } else { $result = $user->kill(); PHPWS_Error::logIfError($result); $content[] = dgettext('users', 'There was problem creating your acccount. Check back later.'); } } else { $content[] = dgettext('users', 'There was problem creating your acccount. Check back later.'); } } return implode('<br />', $content); }
/** * Logs in a user dependant on their authorization setting */ public static function loginUser($username, $password = null) { if (!Current_User::allowUsername($username)) { return PHPWS_Error::get(USER_BAD_CHARACTERS, 'users', 'Current_User::loginUser'); } // First check if they are currently a user $user = new PHPWS_User(); $db = new PHPWS_DB('users'); $db->addWhere('username', strtolower($username)); $result = $db->loadObject($user); if (PHPWS_Error::isError($result)) { return $result; } if ($result == false) { if (PHPWS_Error::logIfError($user->setUsername($username))) { return false; } } else { // This user is in the local database if (!$user->approved) { return PHPWS_Error::get(USER_NOT_APPROVED, 'users', 'Current_User::loginUser'); } if (!$user->loadScript()) { Layout::add(dgettext('users', 'Could not load authentication script. Please contact site administrator.')); return false; } } if (!Current_User::loadAuthorization($user)) { Layout::add(dgettext('users', 'Could not load authentication script. Please contact site administrator.')); return false; } $auth = Current_User::getAuthorization(); $auth->setPassword($password); $result = $auth->authenticate(); if (PHPWS_Error::isError($result)) { return $result; } if ($result == true) { // If the user id is zero and the authorization wants a new // user created if (!$user->id && $auth->create_new_user) { $user->setActive(true); $user->setApproved(true); $auth->createUser(); $user->save(); PHPWS_Core::initModClass('users', 'Action.php'); User_Action::assignDefaultGroup($user); } if (!$user->active) { return PHPWS_Error::get(USER_DEACTIVATED, 'users', 'Current_User:loginUser', $user->username); } if ($auth->localUser()) { $user->login(); } unset($_SESSION['User']); $_SESSION['User'] = $user; return true; } else { return false; } }