diff --git a/domain/category/endpoint.go b/domain/category/endpoint.go index 2cb4ea47..117f8218 100644 --- a/domain/category/endpoint.go +++ b/domain/category/endpoint.go @@ -310,8 +310,7 @@ func (h *Handler) GetSummary(w http.ResponseWriter, r *http.Request) { } /* - - category view permission handling - - filter users using new permission + - filter users using account.users = true/false - link/unlink document to category - check print/pdf - filter space documents by category -- URL param? nested route? diff --git a/domain/permission/endpoint.go b/domain/permission/endpoint.go index 21e1e960..4f653c6e 100644 --- a/domain/permission/endpoint.go +++ b/domain/permission/endpoint.go @@ -330,6 +330,12 @@ func (h *Handler) SetCategoryPermissions(w http.ResponseWriter, r *http.Request) return } + spaceID := request.Query(r, "space") + if len(id) == 0 { + response.WriteMissingDataError(w, method, "space") + return + } + defer streamutil.Close(r.Body) body, err := ioutil.ReadAll(r.Body) if err != nil { @@ -346,12 +352,6 @@ func (h *Handler) SetCategoryPermissions(w http.ResponseWriter, r *http.Request) return } - if len(model) == 0 { - response.WriteEmpty(w) - return - } - - spaceID := model[0].SpaceID if !HasPermission(ctx, *h.Store, spaceID, permission.SpaceManage, permission.SpaceOwner) { response.WriteForbiddenError(w) return diff --git a/gui/app/components/folder/category-admin.js b/gui/app/components/folder/category-admin.js index c99c1ae0..9a1ae185 100644 --- a/gui/app/components/folder/category-admin.js +++ b/gui/app/components/folder/category-admin.js @@ -182,6 +182,7 @@ export default Ember.Component.extend(NotifierMixin, TooltipMixin, DropdownMixin }, onGrantAccess() { + let folder = this.get('folder'); let category = this.get('currentCategory'); let users = this.get('categoryUsers').filterBy('selected', true); let viewers = []; @@ -200,7 +201,7 @@ export default Ember.Component.extend(NotifierMixin, TooltipMixin, DropdownMixin viewers.push(v); }); - this.get('categoryService').setViewers(category.get('id'), viewers).then(() => { + this.get('categoryService').setViewers(folder.get('id'), category.get('id'), viewers).then(() => { this.load(); }); diff --git a/gui/app/services/category.js b/gui/app/services/category.js index ccbba2a4..bad37b9b 100644 --- a/gui/app/services/category.js +++ b/gui/app/services/category.js @@ -111,8 +111,8 @@ export default BaseService.extend({ }, // Save list of users who can see given category - setViewers(categoryId, viewers) { - return this.get('ajax').request(`category/${categoryId}/permission`, { + setViewers(spaceId, categoryId, viewers) { + return this.get('ajax').request(`category/${categoryId}/permission?space=${spaceId}`, { method: 'PUT', contentType: 'json', data: JSON.stringify(viewers) diff --git a/gui/app/templates/components/folder/category-admin.hbs b/gui/app/templates/components/folder/category-admin.hbs index cc757b07..3066a71a 100644 --- a/gui/app/templates/components/folder/category-admin.hbs +++ b/gui/app/templates/components/folder/category-admin.hbs @@ -16,7 +16,8 @@ {{else}}