aboutsummaryrefslogtreecommitdiff
path: root/app/Models/Auth.php
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2014-10-07 16:37:10 +0200
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2014-10-07 16:37:10 +0200
commit1252b3dd867e59917cf303f0c39c7da938b8ce32 (patch)
tree4997fc8d5b6d5451d1869104546060b9eadb6fb1 /app/Models/Auth.php
parent6009990935a2d06c252073f6b51ea5378536ef52 (diff)
Authentication system moved + Persona comes back!
AuthController is dedicated to auhentication. Persona is back, greater than ever! See https://github.com/marienfressinaud/FreshRSS/issues/655
Diffstat (limited to 'app/Models/Auth.php')
-rw-r--r--app/Models/Auth.php21
1 files changed, 18 insertions, 3 deletions
diff --git a/app/Models/Auth.php b/app/Models/Auth.php
index 992b444a5..cc23d7974 100644
--- a/app/Models/Auth.php
+++ b/app/Models/Auth.php
@@ -20,7 +20,7 @@ class FreshRSS_Auth {
Minz_Session::_param('currentUser', $current_user);
}
- $access_ok = self::accessControl($current_user);
+ $access_ok = self::accessControl();
if ($access_ok) {
self::giveAccess();
@@ -36,10 +36,9 @@ class FreshRSS_Auth {
* Required session parameters are also set in this method (such as
* currentUser).
*
- * @param string $username username of the user to check access.
* @return boolean true if user can be connected, false else.
*/
- public static function accessControl($username) {
+ public static function accessControl() {
if (self::$login_ok) {
return true;
}
@@ -61,6 +60,16 @@ class FreshRSS_Auth {
Minz_Session::_param('currentUser', $current_user);
}
return $login_ok;
+ case 'persona':
+ $email = filter_var(Minz_Session::param('mail'), FILTER_VALIDATE_EMAIL);
+ $persona_file = DATA_PATH . '/persona/' . $email . '.txt';
+ if (($current_user = @file_get_contents($persona_file)) !== false) {
+ $current_user = trim($current_user);
+ Minz_Session::_param('currentUser', $current_user);
+ Minz_Session::_param('mail', $email);
+ return true;
+ }
+ return false;
case 'none':
return true;
default:
@@ -87,6 +96,9 @@ class FreshRSS_Auth {
case 'http_auth':
self::$login_ok = strcasecmp($current_user, httpAuthUser()) === 0;
break;
+ case 'persona':
+ self::$login_ok = strcasecmp(Minz_Session::param('mail'), $conf->mail_login) === 0;
+ break;
case 'none':
self::$login_ok = true;
break;
@@ -131,6 +143,9 @@ class FreshRSS_Auth {
Minz_Session::_param('passwordHash');
FreshRSS_FormAuth::deleteCookie();
break;
+ case 'persona':
+ Minz_Session::_param('mail');
+ break;
case 'http_auth':
case 'none':
// Nothing to do...