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';
|