Exemple #1
0
 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);
 }
Exemple #2
0
 /**
  * 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;
     }
 }