Przeglądaj źródła

fix: Make sure to have user conf in hasAccess (#2769)

The `FreshRSS_Auth::hasAccess` method is called during auth
initialization (`app/FreshRSS.php:78`), only for `user#create` action.
However, at this step, the `user` configuration namespace hasn't be
initialized yet, and so users weren't able to register because of the
exception... quite critical!
Marien Fressinaud 6 lat temu
rodzic
commit
d7ac234036
1 zmienionych plików z 4 dodań i 2 usunięć
  1. 4 2
      app/Models/Auth.php

+ 4 - 2
app/Models/Auth.php

@@ -116,14 +116,16 @@ class FreshRSS_Auth {
 	 */
 	public static function hasAccess($scope = 'general') {
 		$systemConfiguration = Minz_Configuration::get('system');
-		$userConfiguration = Minz_Configuration::get('user');
+		$currentUser = Minz_Session::param('currentUser');
+		$userConfiguration = get_user_configuration($currentUser);
+		$isAdmin = $userConfiguration && $userConfiguration->is_admin;
 		$default_user = $systemConfiguration->default_user;
 		$ok = self::$login_ok;
 		switch ($scope) {
 		case 'general':
 			break;
 		case 'admin':
-			$ok &= $default_user === Minz_Session::param('currentUser') || $userConfiguration->is_admin;
+			$ok &= $default_user === $currentUser || $isAdmin;
 			break;
 		default:
 			$ok = false;