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);
}