Frontend\Modules\Profiles\Engine\Authentication::login PHP Method

login() public static method

Login a profile.
public static login ( integer $profileId, boolean $remember = false ) : boolean
$profileId integer Login the profile with this id in.
$remember boolean Should we set a cookie for later?
return boolean
    public static function login($profileId, $remember = false)
    {
        // redefine vars
        $profileId = (int) $profileId;
        $remember = (bool) $remember;
        $secretKey = null;
        // cleanup old sessions
        self::cleanupOldSessions();
        // set profile_logged_in to true
        \SpoonSession::set('frontend_profile_logged_in', true);
        // should we remember the user?
        if ($remember) {
            // generate secret key
            $secretKey = FrontendProfilesModel::getEncryptedString(\SpoonSession::getSessionId(), FrontendProfilesModel::getRandomString());
            // set cookie
            CommonCookie::set('frontend_profile_secret_key', $secretKey);
        }
        // delete all records for this session to prevent duplicate keys (this should never happen)
        FrontendModel::getContainer()->get('database')->delete('profiles_sessions', 'session_id = ?', \SpoonSession::getSessionId());
        // insert new session record
        FrontendModel::getContainer()->get('database')->insert('profiles_sessions', array('profile_id' => $profileId, 'session_id' => \SpoonSession::getSessionId(), 'secret_key' => $secretKey, 'date' => FrontendModel::getUTCDate()));
        // update last login
        FrontendProfilesModel::update($profileId, array('last_login' => FrontendModel::getUTCDate()));
        // trigger event
        FrontendModel::triggerEvent('Profiles', 'after_logged_in', array('profile_id' => $profileId));
        // load the profile object
        self::$profile = new FrontendProfilesProfile($profileId);
    }

Usage Example

Beispiel #1
0
 /**
  * Execute the extra.
  */
 public function execute()
 {
     // get activation key
     $key = $this->URL->getParameter(0);
     // load template
     $this->loadTemplate();
     // do we have an activation key?
     if (isset($key)) {
         // get profile id
         $profileId = FrontendProfilesModel::getIdBySetting('activation_key', $key);
         // have id?
         if ($profileId != null) {
             // update status
             FrontendProfilesModel::update($profileId, array('status' => 'active'));
             // delete activation key
             FrontendProfilesModel::deleteSetting($profileId, 'activation_key');
             // login profile
             FrontendProfilesAuthentication::login($profileId);
             // trigger event
             FrontendModel::triggerEvent('Profiles', 'after_activate', array('id' => $profileId));
             // show success message
             $this->tpl->assign('activationSuccess', true);
         } else {
             // failure
             $this->redirect(FrontendNavigation::getURL(404));
         }
     } else {
         $this->redirect(FrontendNavigation::getURL(404));
     }
 }
All Usage Examples Of Frontend\Modules\Profiles\Engine\Authentication::login