Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/UsersManager/UserAccessFilter.php')
-rw-r--r--plugins/UsersManager/UserAccessFilter.php12
1 files changed, 9 insertions, 3 deletions
diff --git a/plugins/UsersManager/UserAccessFilter.php b/plugins/UsersManager/UserAccessFilter.php
index ae94c70ffe..9378b8a3d1 100644
--- a/plugins/UsersManager/UserAccessFilter.php
+++ b/plugins/UsersManager/UserAccessFilter.php
@@ -49,6 +49,12 @@ class UserAccessFilter
private $usersWithAdminAccess;
/**
+ * Holds a list of all user logins that have write access. Only used for caching
+ * @var array Array ('loginName' => array(idsites...))
+ */
+ private $usersWithWriteAccess;
+
+ /**
* Holds a list of all user logins that have view access. Only used for caching
* @var array Array ('loginName' => array(idsites...))
*/
@@ -104,7 +110,6 @@ class UserAccessFilter
return array_values(array_filter($users, function ($user) {
return $this->isNonSuperUserAllowedToSeeThisLogin($user['login']);
}));
-
}
/**
@@ -171,13 +176,14 @@ class UserAccessFilter
if (!isset($this->idSitesWithAdmin)) {
$this->idSitesWithAdmin = $this->access->getSitesIdWithAdminAccess();
$this->usersWithAdminAccess = $this->model->getUsersSitesFromAccess('admin');
+ $this->usersWithWriteAccess = $this->model->getUsersSitesFromAccess('write');
$this->usersWithViewAccess = $this->model->getUsersSitesFromAccess('view');
}
return (
(isset($this->usersWithViewAccess[$login]) && array_intersect($this->idSitesWithAdmin, $this->usersWithViewAccess[$login]))
- ||
- (isset($this->usersWithAdminAccess[$login]) && array_intersect($this->idSitesWithAdmin, $this->usersWithAdminAccess[$login]))
+ || (isset($this->usersWithWriteAccess[$login]) && array_intersect($this->idSitesWithAdmin, $this->usersWithWriteAccess[$login]))
+ || (isset($this->usersWithAdminAccess[$login]) && array_intersect($this->idSitesWithAdmin, $this->usersWithAdminAccess[$login]))
);
}
}