From 7a15a590ed7afed7af9bc20add79f6d2c9690a1e Mon Sep 17 00:00:00 2001 From: Marcin Kurczewski Date: Sun, 12 Oct 2014 11:45:09 +0200 Subject: [PATCH] Changed viewing access ranks to require privilege --- data/config.ini | 1 + public_html/js/Auth.js | 1 + public_html/templates/user.tpl | 17 +++++++++++++++++ src/Controllers/ViewProxies/UserViewProxy.php | 7 ++++++- src/Privilege.php | 1 + 5 files changed, 26 insertions(+), 1 deletion(-) diff --git a/data/config.ini b/data/config.ini index 9d627cb0..a9327bcc 100644 --- a/data/config.ini +++ b/data/config.ini @@ -40,6 +40,7 @@ changeAllNames = moderator, administrator changeAllPasswords = moderator, administrator changeAccessRank = administrator viewAllEmailAddresses = moderator, administrator +viewAllAccessRanks = moderator, administrator ban = moderator, administrator listPosts = regularUser, powerUser, moderator, administrator diff --git a/public_html/js/Auth.js b/public_html/js/Auth.js index 04535268..8079d33b 100644 --- a/public_html/js/Auth.js +++ b/public_html/js/Auth.js @@ -6,6 +6,7 @@ App.Auth = function(_, jQuery, util, api, appState, promise) { register: 'register', listUsers: 'listUsers', viewUsers: 'viewUsers', + viewAllAccessRanks: 'viewAllAccessRanks', viewAllEmailAddresses: 'viewAllEmailAddresses', changeAccessRank: 'changeAccessRank', changeOwnAvatarStyle: 'changeOwnAvatarStyle', diff --git a/public_html/templates/user.tpl b/public_html/templates/user.tpl index c11c5368..d1dd2f80 100644 --- a/public_html/templates/user.tpl +++ b/public_html/templates/user.tpl @@ -59,6 +59,23 @@ <%= formatRelativeTime(user.lastLoginTime) %> + <% if (user.accessRank) { %> + + Access rank: + <% + var accessRanks = { + anonymous: 'anonymous', + restrictedUser: 'restricted user', + regularUser: 'regular user', + powerUser: 'power user', + moderator: 'moderator', + administrator: 'administrator' + }; + %> + <%= accessRanks[user.accessRank] %> + + <% } %> + Quick links: diff --git a/src/Controllers/ViewProxies/UserViewProxy.php b/src/Controllers/ViewProxies/UserViewProxy.php index c41615ba..7b0c4ec5 100644 --- a/src/Controllers/ViewProxies/UserViewProxy.php +++ b/src/Controllers/ViewProxies/UserViewProxy.php @@ -20,7 +20,6 @@ class UserViewProxy extends AbstractViewProxy { $result->id = $user->getId(); $result->name = $user->getName(); - $result->accessRank = EnumHelper::accessRankToString($user->getAccessRank()); $result->registrationTime = $user->getRegistrationTime(); $result->lastLoginTime = $user->getLastLoginTime(); $result->avatarStyle = EnumHelper::avatarStyleToString($user->getAvatarStyle()); @@ -31,6 +30,12 @@ class UserViewProxy extends AbstractViewProxy $result->browsingSettings = $user->getBrowsingSettings(); } + if ($this->privilegeService->hasPrivilege(Privilege::VIEW_ALL_ACCESS_RANKS) or + $this->privilegeService->isLoggedin($user)) + { + $result->accessRank = EnumHelper::accessRankToString($user->getAccessRank()); + } + if ($this->privilegeService->hasPrivilege(Privilege::VIEW_ALL_EMAIL_ADDRESSES) or $this->privilegeService->isLoggedIn($user)) { diff --git a/src/Privilege.php b/src/Privilege.php index 4a76505b..5b9525c5 100644 --- a/src/Privilege.php +++ b/src/Privilege.php @@ -7,6 +7,7 @@ class Privilege const LIST_USERS = 'listUsers'; const VIEW_USERS = 'viewUsers'; const VIEW_ALL_EMAIL_ADDRESSES = 'viewAllEmailAddresses'; + const VIEW_ALL_ACCESS_RANKS = 'viewAllAccessRanks'; const CHANGE_ACCESS_RANK = 'changeAccessRank'; const CHANGE_OWN_AVATAR_STYLE = 'changeOwnAvatarStyle'; const CHANGE_OWN_EMAIL_ADDRESS = 'changeOwnEmailAddress';