data, logs, logs-content, story, story-content: Added permission check in UI to hide disallowed actions.
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
module.exports = class {
|
||||
onCreate() {
|
||||
this.state = {
|
||||
permitted: false
|
||||
}
|
||||
}
|
||||
|
||||
onInput(input) {
|
||||
console.log(input.user, input.permission)
|
||||
|
||||
if (!input.user || !input.user.loggedIn) {
|
||||
this.state.permitted = false
|
||||
return
|
||||
}
|
||||
|
||||
if (input.author != null && input.author != "" && input.user.name === input.author) {
|
||||
this.state.permitted = input.user.permissions.includes("member")
|
||||
} else if (Array.isArray(input.permission)) {
|
||||
this.state.permitted = input.user.permissions.find(p => input.permission.includes(p))
|
||||
} else {
|
||||
this.state.permitted = input.user.permissions.includes(input.permission)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
<if(state.permitted)>
|
||||
<include(input.renderBody) />
|
||||
</if>
|
||||
@@ -1,11 +1,13 @@
|
||||
<div class="menu">
|
||||
<include(input.renderBody) />
|
||||
<div class="menu-body">
|
||||
<include(input.renderBody) />
|
||||
</div>
|
||||
<if(input.user != null)>
|
||||
<menu-gap />
|
||||
<menu-header>User</menu-header>
|
||||
<menu-header key="user">User</menu-header>
|
||||
<menu-link if(!input.user.loggedIn) icon="L" href="/auth/login" on-click("loginClicked")>Login</menu-link>
|
||||
<menu-link if(input.user.loggedIn) icon="L" href="/auth/logout" on-click("logoutClicked")>Logout <span class="weak">(${input.user.name})</span></menu-link>
|
||||
</if>
|
||||
</if>
|
||||
<else-if(!input.allowNoUser)>
|
||||
<menu-blurb class="error">input.user is missing!</menu-blurb>
|
||||
</else-if>
|
||||
|
||||
Reference in New Issue
Block a user