public static function remember($user)
{
//We need a user, but we won't remember the admin user.
//if ($user && $user->id > 0 && !in_array('superadmin', $user->roles)) {
if ($user && $user->id > 0) {
$random = get_random('number');
$persist = new PersistUserObj();
$data = array('user_id' => $user->id, 'random' => $random);
if ($persist->create($data)) {
$query = new SelectQuery('PersistUser');
$query->field('MD5(CONCAT(`id`, `user_id`, `random`))')->filter('`id`= :id');
$hash = $query->fetchColumn(array(':id' => $persist->array['id']));
if (setcookie('remembered', $hash, time() + 60 * 60 * 24 * 14, WEB_SUB_FOLDER)) {
return true;
} else {
Backend::addError('Could not set cookie to remember login');
$query = new DeleteQuery('PersistUser');
$query->filter('`id` = :id')->limit(1);
$query->execute(array(':id' => $persist->array['id']));
}
} else {
Backend::addError('Could not remember login');
}
} else {
Backend::addError('Invalid user to remember');
}
return false;
}