Skip to content

Commit

Permalink
feat: port permissions for editor for threads view
Browse files Browse the repository at this point in the history
  • Loading branch information
akinsey committed Nov 10, 2021
1 parent 2ba4832 commit ea9e794
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 8 deletions.
8 changes: 2 additions & 6 deletions src/components/layout/Editor.vue
Original file line number Diff line number Diff line change
Expand Up @@ -239,15 +239,11 @@ import Multiselect from '@vueform/multiselect'
import { usersApi } from '@/api'
export default {
props: ['editorConvoMode', 'threadEditorMode', 'postEditorMode', 'createAction', 'updateAction', 'showEditor', 'thread', 'currentMessage', 'post', 'quote', 'canCreate', 'canUpdate'],
props: ['editorConvoMode', 'threadEditorMode', 'postEditorMode', 'createAction', 'updateAction', 'showEditor', 'thread', 'currentMessage', 'post', 'quote', 'canCreate', 'canUpdate', 'canLock', 'canSticky', 'canModerate', 'canCreatePoll'],
emits: ['close'],
components: { ImageUploader, PollCreator, Multiselect },
setup(props, { emit }) {
/* Internal Methods */
const canLock = () => true
const canSticky = () => true
const canModerate = () => true
const canCreatePoll = () => true
const cancel = () => {
if (props.postEditorMode && (props.post || props.quote)) closeEditor()
else emit('close')
Expand Down Expand Up @@ -343,7 +339,7 @@ export default {
}
})
return { ...toRefs(v), canLock, canSticky, canModerate, canCreatePoll, cancel, closeEditor, onPollValidation }
return { ...toRefs(v), cancel, closeEditor, onPollValidation }
}
}
</script>
Expand Down
26 changes: 24 additions & 2 deletions src/views/Threads.vue
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@
<pagination v-if="threadData.data?.board" :page="threadData.data.page" :limit="threadData.data.limit" :count="threadData.data.board.thread_count"></pagination>
</div>
<set-moderators-modal v-if="threadData.data?.board" :board="threadData.data.board" :show="showSetModerators" @close="showSetModerators = false"></set-moderators-modal>
<editor v-if="threadData.data?.board" :showEditor="showEditor" @close="showEditor = false" :threadEditorMode="true" :thread="{ title: '', board_id: threadData?.data?.board.id }" :createAction="createThread" :canCreate="canCreate" />
<editor v-if="threadData.data?.board" :showEditor="showEditor" @close="showEditor = false" :threadEditorMode="true" :thread="{ title: '', board_id: threadData?.data?.board.id }" :createAction="createThread" :canCreate="canCreate" :canLock="canLock" :canSticky="canSticky" :canModerate="canModerate" :canCreatePoll="canCreatePoll" />
</template>

<script>
Expand Down Expand Up @@ -346,6 +346,28 @@ export default {
return v.threadData.data?.write_access && v.permissionUtils.hasPermission('threads.create.allow')
}
const canLock = () => {
if (v.banned) return false
return v.threadData.data?.write_access && v.permissionUtils.hasPermission('threads.lock.allow')
}
const canSticky = () => {
if (v.banned) return false
return v.threadData.data?.write_access && v.permissionUtils.hasPermission('threads.sticky.allow')
}
const canCreatePoll = () => {
if (v.banned) return false
return v.threadData.data?.write_access && v.permissionUtils.hasPermission('threads.createPoll.allow')
}
const canModerate = () => {
if (v.banned) return false
console.log(v.threadData?.data?.board, v.threadData?.data?.board?.disable_selfmod)
if (v.threadData?.data?.board?.disable_selfmod) return false
return v.threadData.data?.write_access && v.permissionUtils.hasPermission('threads.moderated.allow')
}
const createThread = thread => {
// slugify title
let slug = slugify(slugify(thread.title, { remove: /[*'"~!@)(+.:]/g, lower: true }))
Expand Down Expand Up @@ -401,7 +423,7 @@ export default {
v.banned = BanStore.updateBanNotice(v.threadData.data.banned_from_board)
})) // Update threads on login
return { ...toRefs(v), createThread, canCreate, canSetModerator, watchBoard, setSortField, getSortClass, humanDate, decode, truncate }
return { ...toRefs(v), createThread, canCreate, canSetModerator, canLock, canSticky, canModerate, canCreatePoll, watchBoard, setSortField, getSortClass, humanDate, decode, truncate }
}
}
</script>
Expand Down

0 comments on commit ea9e794

Please sign in to comment.