- 1
+
+
@@ -76,10 +76,10 @@ import PermissionsInputField from "./PermissionsInputField.vue";
import LibraryPermissionsWarning from "components/LibraryFolder/LibraryFolderPermissions/LibraryPermissionsWarning.vue";
import { extractRoles } from "./utils";
-import { initManageFolderIcons } from "components/LibraryFolder/icons";
+import { initPermissionsIcons } from "components/LibraryFolder/icons";
Vue.use(BootstrapVue);
-initManageFolderIcons();
+initPermissionsIcons();
export default {
props: {
@@ -101,9 +101,9 @@ export default {
add_library_item_role_list: undefined,
modify_folder_role_list: undefined,
manage_folder_role_list: undefined,
- add_type: "add_type",
- manage_type: "manage_type",
- modify_type: "modify_type",
+ add_type: "add_library_item_role_list",
+ manage_type: "manage_folder_role_list",
+ modify_type: "modify_folder_role_list",
apiRootUrl: `${getAppRoot()}api/folders`,
};
},
@@ -127,24 +127,17 @@ export default {
return `${this.root}library/folders/${this.folder.parent_id}`;
},
setUserPermissionsPreferences(ids, permission_type) {
- switch (permission_type) {
- case "manage_type":
- this.manage_folder_role_list = ids;
- break;
- case "add_type":
- this.add_library_item_role_list = ids;
- break;
- case "modify_type":
- this.modify_folder_role_list = ids;
- break;
- }
+ this[permission_type] = ids;
},
postPermissions() {
this.services.setPermissions(
+ this.apiRootUrl,
this.folder_id,
- this.add_library_item_role_list,
- this.manage_folder_role_list,
- this.modify_folder_role_list,
+ [
+ { "add_ids[]": this.add_library_item_role_list },
+ { "manage_ids[]": this.manage_folder_role_list },
+ { "modify_ids[]": this.modify_folder_role_list },
+ ],
(fetched_permissions) => {
Toast.success("Permissions saved.");
this.permissions = fetched_permissions;
diff --git a/client/src/components/LibraryFolder/LibraryFolderPermissions/services.js b/client/src/components/LibraryFolder/LibraryFolderPermissions/services.js
index 478c6cd4db7..30cdf881d22 100644
--- a/client/src/components/LibraryFolder/LibraryFolderPermissions/services.js
+++ b/client/src/components/LibraryFolder/LibraryFolderPermissions/services.js
@@ -54,24 +54,18 @@ export class Services {
}
}
- async setPermissions(id, add_ids, manage_ids, modify_ids, onSuccess, onError) {
+ async setPermissions(apiRootUrl, id, new_roles_ids, onSuccess, onError) {
var formData = new FormData();
- formData.append(
- "add_ids[]",
- add_ids.map((a) => a.id)
- );
- formData.append(
- "manage_ids[]",
- manage_ids.map((a) => a.id)
- );
- formData.append(
- "modify_ids[]",
- modify_ids.map((a) => a.id)
- );
+ new_roles_ids.forEach((permissionType) => {
+ Object.keys(permissionType).map(function (k) {
+ const ids = permissionType[k].map((a) => a.id);
+ formData.append(k, ids);
+ });
+ });
axios({
method: "post",
- url: `${getAppRoot()}api/folders/${id}/permissions?action=set_permissions`,
+ url: `${apiRootUrl}/${id}/permissions?action=set_permissions`,
data: formData,
headers: { "Content-Type": "multipart/form-data" },
})
diff --git a/client/src/components/LibraryFolder/icons.js b/client/src/components/LibraryFolder/icons.js
index 3255459ffe5..5e4b08504d8 100644
--- a/client/src/components/LibraryFolder/icons.js
+++ b/client/src/components/LibraryFolder/icons.js
@@ -38,7 +38,7 @@ const tableIcons = [
faMinusSquare,
];
-const manageIcons = [faAngleDoubleLeft, faSave];
+const manageIcons = [faAngleDoubleLeft, faSave, faFile];
const topBarIcons = [faHome, faPlus, faInfoCircle, faTrash, faDownload, faBook];
export function initFolderTableIcons() {
@@ -47,7 +47,7 @@ export function initFolderTableIcons() {
});
}
-export function initManageFolderIcons() {
+export function initPermissionsIcons() {
manageIcons.forEach((icon) => {
library.add(icon);
});