From 8345d1fc91f01853483d2aba6032662e5cb2b69d Mon Sep 17 00:00:00 2001 From: Gisle Aune Date: Sat, 13 Oct 2018 12:31:05 +0200 Subject: [PATCH] data, logs, logs-content, story, story-content: Added permission check in UI to hide disallowed actions. --- marko/components/if-permitted/component.js | 24 +++++++++++++ marko/components/if-permitted/index.marko | 3 ++ marko/components/menu/index.marko | 8 +++-- .../add-character-modal/index.marko | 12 ++++--- .../data/components/channel-list/index.marko | 2 +- .../page/data/components/channel/index.marko | 4 ++- .../data/components/channels-page/index.marko | 2 +- .../components/character-list/index.marko | 1 + .../data/components/character/index.marko | 8 +++-- .../components/characters-page/index.marko | 2 +- .../data/components/data-menu/index.marko | 12 +++++-- .../components/logs-content-menu/index.marko | 9 ++--- .../logs-content/components/page/index.marko | 9 +++-- .../logs-content/components/post/index.marko | 14 +++++--- .../logs/components/logs-menu/index.marko | 13 ++++--- .../components/chapter/index.marko | 8 +++-- .../story-content/components/page/index.marko | 14 +++++--- .../components/story-content-menu/index.marko | 11 +++++- .../components/story-tags/index.marko | 4 ++- .../components/story-tags/style.less | 2 ++ .../story/components/story-menu/index.marko | 4 ++- middleware/locals.js | 35 +++++++++++++++++++ 22 files changed, 158 insertions(+), 43 deletions(-) create mode 100644 marko/components/if-permitted/component.js create mode 100644 marko/components/if-permitted/index.marko diff --git a/marko/components/if-permitted/component.js b/marko/components/if-permitted/component.js new file mode 100644 index 0000000..ff70e80 --- /dev/null +++ b/marko/components/if-permitted/component.js @@ -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) + } + } +} \ No newline at end of file diff --git a/marko/components/if-permitted/index.marko b/marko/components/if-permitted/index.marko new file mode 100644 index 0000000..5a72aab --- /dev/null +++ b/marko/components/if-permitted/index.marko @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/marko/components/menu/index.marko b/marko/components/menu/index.marko index 84dc66e..5315f53 100644 --- a/marko/components/menu/index.marko +++ b/marko/components/menu/index.marko @@ -1,11 +1,13 @@