Fixed user banning privilege

This commit is contained in:
Marcin Kurczewski 2014-10-14 22:38:02 +02:00
parent d6b05e5968
commit 35b893db9d
6 changed files with 11 additions and 5 deletions

View file

@ -41,7 +41,7 @@ changeAllPasswords = moderator, administrator
changeAccessRank = administrator changeAccessRank = administrator
viewAllEmailAddresses = moderator, administrator viewAllEmailAddresses = moderator, administrator
viewAllAccessRanks = moderator, administrator viewAllAccessRanks = moderator, administrator
ban = moderator, administrator banUsers = moderator, administrator
listPosts = regularUser, powerUser, moderator, administrator listPosts = regularUser, powerUser, moderator, administrator
viewPosts = regularUser, powerUser, moderator, administrator viewPosts = regularUser, powerUser, moderator, administrator

View file

@ -19,7 +19,7 @@ App.Auth = function(_, jQuery, util, api, appState, promise) {
changeAllPasswords: 'changeAllPasswords', changeAllPasswords: 'changeAllPasswords',
deleteOwnAccount: 'deleteOwnAccount', deleteOwnAccount: 'deleteOwnAccount',
deleteAllAccounts: 'deleteAllAccounts', deleteAllAccounts: 'deleteAllAccounts',
ban: 'ban', banUsers: 'banUsers',
listPosts: 'listPosts', listPosts: 'listPosts',
viewPosts: 'viewPosts', viewPosts: 'viewPosts',

View file

@ -23,7 +23,7 @@ App.Presenters.UserAccountSettingsPresenter = function(
privileges = { privileges = {
canBan: canBan:
auth.hasPrivilege(auth.privileges.ban), auth.hasPrivilege(auth.privileges.banUsers),
canChangeAccessRank: canChangeAccessRank:
auth.hasPrivilege(auth.privileges.changeAccessRank), auth.hasPrivilege(auth.privileges.changeAccessRank),
canChangeAvatarStyle: canChangeAvatarStyle:

View file

@ -130,6 +130,11 @@ final class UserController extends AbstractController
$this->privilegeService->assertLoggedIn($userNameOrEmail); $this->privilegeService->assertLoggedIn($userNameOrEmail);
} }
if ($formData->banned !== null)
{
$this->privilegeService->assertPrivilege(Privilege::BAN_USERS);
}
$user = $this->userService->updateUser($user, $formData); $user = $this->userService->updateUser($user, $formData);
return $this->userViewProxy->fromEntity($user); return $this->userViewProxy->fromEntity($user);
} }

View file

@ -29,7 +29,8 @@ class UserEditFormData implements IValidatable
$this->avatarStyle = EnumHelper::avatarStyleFromString($inputReader->avatarStyle); $this->avatarStyle = EnumHelper::avatarStyleFromString($inputReader->avatarStyle);
$this->avatarContent = $inputReader->decodeBase64($inputReader->avatarContent); $this->avatarContent = $inputReader->decodeBase64($inputReader->avatarContent);
$this->browsingSettings = json_decode($inputReader->browsingSettings); $this->browsingSettings = json_decode($inputReader->browsingSettings);
$this->banned = boolval($inputReader->banned); if ($inputReader->banned !== null)
$this->banned = boolval($inputReader->banned);
} }
} }

View file

@ -19,7 +19,7 @@ class Privilege
const CHANGE_ALL_PASSWORDS = 'changeAllPasswords'; const CHANGE_ALL_PASSWORDS = 'changeAllPasswords';
const DELETE_OWN_ACCOUNT = 'deleteOwnAccount'; const DELETE_OWN_ACCOUNT = 'deleteOwnAccount';
const DELETE_ALL_ACCOUNTS = 'deleteAllAccounts'; const DELETE_ALL_ACCOUNTS = 'deleteAllAccounts';
const BAN = 'ban'; const BAN_USERS = 'banUsers';
const LIST_POSTS = 'listPosts'; const LIST_POSTS = 'listPosts';
const VIEW_POSTS = 'viewPosts'; const VIEW_POSTS = 'viewPosts';