diff --git a/ayanova/src/api/authorizationroles.js b/ayanova/src/api/authorizationroles.js
index 3ef2a878..9b3cf6f7 100644
--- a/ayanova/src/api/authorizationroles.js
+++ b/ayanova/src/api/authorizationroles.js
@@ -1,6 +1,30 @@
+/* eslint-disable */
+import _ from "../libs/lodash.min.js";
import store from "../store";
-import ayatype from "./ayatype";
+
export default {
+ AYATYPE: {
+ NoType: 0,
+ Global: 1,
+ Widget: 2,
+ User: 3,
+ ServerState: 4,
+ License: 5,
+ LogFile: 6,
+ DEPRECATED_REUSELATER_7: 7,
+ DEPRECATED_REUSELATER_8: 8,
+ JobOperations: 9,
+ AyaNova7Import: 10,
+ TrialSeeder: 11,
+ Metrics: 12,
+ Locale: 13,
+ UserOptions: 14,
+ DEPRECATED_REUSELATER_15: 15,
+ DEPRECATED_REUSELATER_16: 16,
+ FileAttachment: 17,
+ DataFilter: 18,
+ FormCustom: 19
+ },
AUTHORIZATION_ROLES: {
///No role set
NoRole: 0,
@@ -41,7 +65,7 @@ export default {
}
return role === (store.state.roles & role);
},
- rights(objType, objId) {
+ rights(userRole, oType, oId) {
//NOTE: this is to mirror the functionality of BizRoles.cs where all rights by role are specified in server project
//any change there needs to be mirrored here
@@ -60,31 +84,92 @@ export default {
readFull: false,
delete: false
};
+ // var AYANOVA_RIGHTS = JSON.parse(
+ // '{"User":{"Change":2,"EditOwn":0,"ReadFullRecord":1},"UserOptions":{"Change":2,"EditOwn":0,"ReadFullRecord":1},"Widget":{"Change":34,"EditOwn":256,"ReadFullRecord":17},"ServerState":{"Change":16384,"EditOwn":0,"ReadFullRecord":32767},"License":{"Change":16386,"EditOwn":0,"ReadFullRecord":8193},"LogFile":{"Change":0,"EditOwn":0,"ReadFullRecord":24576},"JobOperations":{"Change":16384,"EditOwn":0,"ReadFullRecord":8195},"AyaNova7Import":{"Change":16384,"EditOwn":0,"ReadFullRecord":0},"Metrics":{"Change":0,"EditOwn":0,"ReadFullRecord":24576},"Locale":{"Change":16386,"EditOwn":0,"ReadFullRecord":32767},"DataFilter":{"Change":2,"EditOwn":32767,"ReadFullRecord":32767},"FormCustom":{"Change":2,"EditOwn":0,"ReadFullRecord":32767}}'
+ // );
+ var typeName = _.findKey(this.AYATYPE, function(o) {
+ return o == oType;
+ });
+
- switch (objType) {
- case ayatype.Widget:
- //WIDGET
- // Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.InventoryFull,
- // EditOwn = AuthorizationRoles.TechFull,
- // ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.InventoryLimited
- ret.change =
- this.hasrole(this.AUTHORIZATION_ROLES.BizAdminFull) ||
- this.hasrole(this.AUTHORIZATION_ROLES.InventoryFull);
- ret.editOwn =
- objId == store.state.userId &&
- this.hasrole(this.AUTHORIZATION_ROLES.TechFull);
- ret.readFull =
- this.hasrole(this.AUTHORIZATION_ROLES.BizAdminLimited) ||
- this.hasRole(this.AUTHORIZATION_ROLES.InventoryLimited);
- ret.delete = ret.change || ret.editOwn;
+ // var theType = _.find(this.AYATYPE, function(o) {
+ // return o.value == oType;
+ // });
- // ////////////////////////////////////////////////////////////
+ var temp = typeName;
- break;
- default:
- throw new "authorizationroles::rights - not coded for object type "() +
- objType;
- }
+ /**
+ *
+ * What to do:
+ * Object is to return ret fully set as per rights
+ *
+ * Look up AyaType key name from value (i.e. 2="Widget")
+ * Use the type key name to find the object in AYANOVA_RIGHTS by key name
+ * Error if not found of course
+ * Using the object found check if can do each thing in RET and return RET
+ *
+ * To check need to do just like HasRole, i.e. this: role === (store.state.roles & role);
+ *
+ * AyaNova7Import: Object { Change: 16384, EditOwn: 0, ReadFullRecord: 0 }
+
+DataFilter: Object { Change: 2, EditOwn: 32767, ReadFullRecord: 32767 }
+
+FormCustom: Object { Change: 2, EditOwn: 0, ReadFullRecord: 32767 }
+
+JobOperations: Object { Change: 16384, EditOwn: 0, ReadFullRecord: 8195 }
+
+License: Object { Change: 16386, EditOwn: 0, ReadFullRecord: 8193 }
+
+Locale: Object { Change: 16386, EditOwn: 0, ReadFullRecord: 32767 }
+
+LogFile: Object { Change: 0, EditOwn: 0, ReadFullRecord: 24576 }
+
+Metrics: Object { Change: 0, EditOwn: 0, ReadFullRecord: 24576 }
+
+ServerState: Object { Change: 16384, EditOwn: 0, ReadFullRecord: 32767 }
+
+User: Object { Change: 2, EditOwn: 0, ReadFullRecord: 1 }
+
+UserOptions: Object { Change: 2, EditOwn: 0, ReadFullRecord: 1 }
+
+Widget: Object { Change: 34, EditOwn: 256, ReadFullRecord: 17 }
+
+: Object { … }
+authorizationroles.js:72
+userRole
+"32767"
+objType
+2
+ *
+ */
+
+ // switch (objType) {
+ // case ayatype.Widget:
+ // //WIDGET
+ // // Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.InventoryFull,
+ // // EditOwn = AuthorizationRoles.TechFull,
+ // // ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.InventoryLimited
+ // ret.change =
+ // this.hasrole(this.AUTHORIZATION_ROLES.BizAdminFull) ||
+ // this.hasrole(this.AUTHORIZATION_ROLES.InventoryFull);
+ // ret.editOwn =
+ // objId == store.state.userId &&
+ // this.hasrole(this.AUTHORIZATION_ROLES.TechFull);
+ // ret.readFull =
+ // this.hasrole(this.AUTHORIZATION_ROLES.BizAdminLimited) ||
+ // this.hasRole(this.AUTHORIZATION_ROLES.InventoryLimited);
+ // ret.delete = ret.change || ret.editOwn;
+
+ // // ////////////////////////////////////////////////////////////
+
+ // break;
+ // default:
+ // throw new "authorizationroles::rights - not coded for object type "() +
+ // objType;
+ // }
return ret;
}
};
+/*
+{"User":{"Change":2,"EditOwn":0,"ReadFullRecord":1},"UserOptions":{"Change":2,"EditOwn":0,"ReadFullRecord":1},"Widget":{"Change":34,"EditOwn":256,"ReadFullRecord":17},"ServerState":{"Change":16384,"EditOwn":0,"ReadFullRecord":32767},"License":{"Change":16386,"EditOwn":0,"ReadFullRecord":8193},"LogFile":{"Change":0,"EditOwn":0,"ReadFullRecord":24576},"JobOperations":{"Change":16384,"EditOwn":0,"ReadFullRecord":8195},"AyaNova7Import":{"Change":16384,"EditOwn":0,"ReadFullRecord":0},"Metrics":{"Change":0,"EditOwn":0,"ReadFullRecord":24576},"Locale":{"Change":16386,"EditOwn":0,"ReadFullRecord":32767},"DataFilter":{"Change":2,"EditOwn":32767,"ReadFullRecord":32767},"FormCustom":{"Change":2,"EditOwn":0,"ReadFullRecord":32767}}
+*/
diff --git a/ayanova/src/views/inventory-widget-edit.vue b/ayanova/src/views/inventory-widget-edit.vue
index bd6c817d..8f525b42 100644
--- a/ayanova/src/views/inventory-widget-edit.vue
+++ b/ayanova/src/views/inventory-widget-edit.vue
@@ -147,6 +147,7 @@