Add permission checks for bmt filters [SCI-6099] (#3622)

Co-authored-by: Anton <anton@scinote.net>
This commit is contained in:
aignatov-bio 2021-11-09 09:28:51 +01:00 committed by GitHub
parent 542d432581
commit c8fd0dce51
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 20 additions and 12 deletions

View file

@ -10,7 +10,8 @@ window.initBMTFilter = () => {
el: '#bmtFilterContainer',
data: () => {
return {
bmtApiBaseUrl: $($('#bmtFilterContainer')).data('bmt-api-base-url'),
bmtApiBaseUrl: $('#bmtFilterContainer').data('bmt-api-base-url'),
canManageFilters: $('#bmtFilterContainer').data('can-manage-filters'),
savedFilters: [],
filters: []
};

View file

@ -11,6 +11,7 @@
v-for="(savedFilter, index) in savedFilters"
:key="savedFilter.id"
:savedFilter.sync="savedFilters[index]"
:canManageFilters="canManageFilters"
@savedFilter:load="loadFilters"
@savedFilter:delete="savedFilters.splice(index, 1)"
/>
@ -61,7 +62,8 @@
props: {
container: Object,
savedFilters: Array,
bmtApiBaseUrl: String
bmtApiBaseUrl: String,
canManageFilters: Boolean
},
created() {
this.fetchAdditionalDataAttributes();

View file

@ -1,7 +1,7 @@
<template>
<div class="saved-filters-element">
<span @click="loadFilters">{{ savedFilter.attributes.name }}</span>
<button class="btn btn-light icon-btn" @click="deleteFilter">
<button v-if="canManageFilters" class="btn btn-light icon-btn" @click="deleteFilter">
<i class="fas fa-trash"></i>
</button>
</div>
@ -11,7 +11,8 @@
export default {
name: 'SavedFilterElement',
props: {
savedFilter: Object
savedFilter: Object,
canManageFilters: Boolean
},
methods: {
loadFilters() {

View file

@ -101,6 +101,7 @@
id="bmtFilterContainer"
data-datatable-id="#repository-table-<%= @repository.id %>"
data-saved-filters-url="<%= bmt_filters_url %>"
data-can-manage-filters="<%= can_manage_bmt_filters?(current_team) %>"
data-bmt-api-base-url="<%= bmt_request_url(path: 'api') %>"
>
<filter-container
@ -108,17 +109,20 @@
@filters:clear="clearFilters"
@cids:update="updateExternalIds"
@cids:error="handleSearchError"
:can-manage-filters="canManageFilters"
:bmt-api-base-url="bmtApiBaseUrl"
:saved-filters.sync="savedFilters"
:filters.sync="filters" />
</div>
</div>
<button
class="btn btn-light open-save-bmt-modal hidden"
type="button"
aria-haspopup="true"
>
<span class="fas fa-save"></span>
<%= t('repositories.show.bmt_search.save_filters') %>
</button>
<% if can_manage_bmt_filters?(current_team) %>
<button
class="btn btn-light open-save-bmt-modal hidden"
type="button"
aria-haspopup="true"
>
<span class="fas fa-save"></span>
<%= t('repositories.show.bmt_search.save_filters') %>
</button>
<% end %>
<% end %>