Browse Source
It was possible for Users to grant themselves flags and permissions. These operations now require Admin privileges, and are only implemented by services.user.updateForAdmin. The services.user.update method no longer has any logic to alter flags and/or permissions.pull/1/head
5 changed files with 119 additions and 48 deletions
@ -1,43 +1,74 @@ |
|||
extends ../layouts/main |
|||
block content |
|||
|
|||
.uk-margin |
|||
.uk-text-large= userAccount.displayName || userAccount.email |
|||
div= userAccount.username |
|||
|
|||
form(method="POST", action=`/admin/user/${userAccount._id}`).uk-form |
|||
input(type="hidden", name="username", value= userAccount.username) |
|||
input(type="hidden", name="displayName", value= userAccount.displayName) |
|||
.uk-margin |
|||
div(uk-grid) |
|||
div(class="uk-width-1-1 uk-width-1-2@m") |
|||
fieldset |
|||
legend Flags |
|||
include ../../comment/components/comment-review |
|||
|
|||
div(uk-grid).uk-grid-small |
|||
div(class="uk-width-1-1 uk-width-2-3@l") |
|||
form(method="POST", action=`/admin/user/${userAccount._id}`).uk-form |
|||
input(type="hidden", name="username", value= userAccount.username) |
|||
input(type="hidden", name="displayName", value= userAccount.displayName) |
|||
.uk-card.uk-card-secondary.uk-card-small |
|||
.uk-card-header |
|||
if userAccount.displayName |
|||
.uk-text-large= userAccount.displayName |
|||
div |
|||
a(href=`mailto:${userAccount.email}`)= userAccount.email |
|||
div |
|||
a(href=`/user/${userAccount._id}`) @#{userAccount.username} |
|||
|
|||
.uk-card-body |
|||
.uk-margin |
|||
div(uk-grid).uk-grid-small |
|||
label |
|||
input(id="is-admin", name="isAdmin", type="checkbox", checked= userAccount.flags.isAdmin) |
|||
| Admin |
|||
label |
|||
input(id="is-moderator", name="isModerator", type="checkbox", checked= userAccount.flags.isModerator) |
|||
| Moderator |
|||
|
|||
div(class="uk-width-1-1 uk-width-1-2@m") |
|||
fieldset |
|||
legend Permissions |
|||
label(for="bio").uk-form-label.sr-only Bio |
|||
textarea(id="bio", name="bio", rows="4", placeholder= "Bio is empty", disabled= !userAccount.bio || (userAccount.bio.length === 0)).uk-textarea.uk-resize-vertical= userAccount.bio |
|||
|
|||
.uk-margin |
|||
div(uk-grid).uk-grid-small |
|||
label |
|||
input(id="can-login", name="canLogin", type="checkbox", checked= userAccount.permissions.canLogin) |
|||
| Can Login |
|||
label |
|||
input(id="can-chat", name="canChat", type="checkbox", checked= userAccount.permissions.canChat) |
|||
| Can Chat |
|||
label |
|||
input(id="can-comment", name="canComment", type="checkbox", checked= userAccount.permissions.canComment) |
|||
| Can Comment |
|||
label |
|||
input(id="can-report", name="canReport", type="checkbox", checked= userAccount.permissions.canReport) |
|||
| Can Report |
|||
|
|||
button(type="submit").uk-button.uk-button-primary Update User |
|||
div(uk-grid) |
|||
div(class="uk-width-1-1 uk-width-1-2@m") |
|||
fieldset |
|||
legend Flags |
|||
.uk-margin |
|||
div(uk-grid).uk-grid-small |
|||
label |
|||
input(id="is-admin", name="isAdmin", type="checkbox", checked= userAccount.flags.isAdmin) |
|||
| Admin |
|||
label |
|||
input(id="is-moderator", name="isModerator", type="checkbox", checked= userAccount.flags.isModerator) |
|||
| Moderator |
|||
|
|||
div(class="uk-width-1-1 uk-width-1-2@m") |
|||
fieldset |
|||
legend Permissions |
|||
.uk-margin |
|||
div(uk-grid).uk-grid-small |
|||
label |
|||
input(id="can-login", name="canLogin", type="checkbox", checked= userAccount.permissions.canLogin) |
|||
| Can Login |
|||
label |
|||
input(id="can-chat", name="canChat", type="checkbox", checked= userAccount.permissions.canChat) |
|||
| Can Chat |
|||
label |
|||
input(id="can-comment", name="canComment", type="checkbox", checked= userAccount.permissions.canComment) |
|||
| Can Comment |
|||
label |
|||
input(id="can-report", name="canReport", type="checkbox", checked= userAccount.permissions.canReport) |
|||
| Can Report |
|||
label |
|||
input(id="can-author-pages", name="canAuthorPages", type="checkbox", checked= userAccount.permissions.canAuthorPages) |
|||
| Can Author Pages |
|||
label |
|||
input(id="can-author-posts", name="canAuthorPosts", type="checkbox", checked= userAccount.permissions.canAuthorPosts) |
|||
| Can Author Posts |
|||
|
|||
button(type="submit").uk-button.dtp-button-primary.uk-display-block.uk-width-1-1 Update User |
|||
|
|||
div(class="uk-width-1-1 uk-width-1-3@l") |
|||
|
|||
.uk-card.uk-card-secondary.uk-card-small |
|||
.uk-card-header |
|||
h4.uk-card-title #{userAccount.displayName || userAccount.username}'s Comments |
|||
.uk-card-body |
|||
ul.uk-list.uk-list-divider |
|||
each comment in recentComments |
|||
li |
|||
+renderCommentReview(comment) |
Loading…
Reference in new issue