From e6ce1251f74fa469adbf464c8dd629addd0b8793 Mon Sep 17 00:00:00 2001 From: kolaente Date: Tue, 2 Jul 2024 12:36:08 +0200 Subject: [PATCH] fix(filters): allow managing views for saved filters --- .../project/ProjectSettingsDropdown.vue | 7 ++++++ pkg/models/project_view_rights.go | 24 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/frontend/src/components/project/ProjectSettingsDropdown.vue b/frontend/src/components/project/ProjectSettingsDropdown.vue index 7abfaa54f..4ce76144f 100644 --- a/frontend/src/components/project/ProjectSettingsDropdown.vue +++ b/frontend/src/components/project/ProjectSettingsDropdown.vue @@ -24,9 +24,16 @@ > {{ $t('menu.edit') }} + + {{ $t('menu.views') }} + {{ $t('misc.delete') }} diff --git a/pkg/models/project_view_rights.go b/pkg/models/project_view_rights.go index 6e222807e..7e071464d 100644 --- a/pkg/models/project_view_rights.go +++ b/pkg/models/project_view_rights.go @@ -22,21 +22,45 @@ import ( ) func (p *ProjectView) CanRead(s *xorm.Session, a web.Auth) (bool, int, error) { + filterID := getSavedFilterIDFromProjectID(p.ProjectID) + if filterID > 0 { + sf := &SavedFilter{ID: filterID} + return sf.CanRead(s, a) + } + pp := p.getProject() return pp.CanRead(s, a) } func (p *ProjectView) CanDelete(s *xorm.Session, a web.Auth) (bool, error) { + filterID := getSavedFilterIDFromProjectID(p.ProjectID) + if filterID > 0 { + sf := &SavedFilter{ID: filterID} + return sf.CanDelete(s, a) + } + pp := p.getProject() return pp.IsAdmin(s, a) } func (p *ProjectView) CanUpdate(s *xorm.Session, a web.Auth) (bool, error) { + filterID := getSavedFilterIDFromProjectID(p.ProjectID) + if filterID > 0 { + sf := &SavedFilter{ID: filterID} + return sf.CanUpdate(s, a) + } + pp := p.getProject() return pp.IsAdmin(s, a) } func (p *ProjectView) CanCreate(s *xorm.Session, a web.Auth) (bool, error) { + filterID := getSavedFilterIDFromProjectID(p.ProjectID) + if filterID > 0 { + sf := &SavedFilter{ID: filterID} + return sf.CanUpdate(s, a) + } + pp := p.getProject() return pp.IsAdmin(s, a) }