@live-change/access-control-service 0.8.52 → 0.8.54
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/access.js +12 -5
- package/accessControl.js +3 -3
- package/package.json +3 -3
package/access.js
CHANGED
|
@@ -54,8 +54,6 @@ export default (definition) => {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
async function getUnitClientRoles(client, { objectType, object }, ignorePublic) {
|
|
57
|
-
const [ sessionOrUserType, sessionOrUser ] =
|
|
58
|
-
client.user ? ['user_User', client.user] : ['session_Session', client.session]
|
|
59
57
|
const [
|
|
60
58
|
publicAccessData,
|
|
61
59
|
sessionAccess,
|
|
@@ -74,6 +72,9 @@ export default (definition) => {
|
|
|
74
72
|
}
|
|
75
73
|
if(sessionAccess) roles.push(...sessionAccess.roles)
|
|
76
74
|
if(userAccess) roles.push(...userAccess.roles)
|
|
75
|
+
if(objectType === 'user_User' && object === client.user) roles.push('owner')
|
|
76
|
+
if(objectType === 'session_Session' && object === client.session) roles.push('owner')
|
|
77
|
+
//console.log("GOT UNIT CLIENT:", client, "ROLES:", roles, "IGNORE PUBLIC:", ignorePublic)
|
|
77
78
|
return Array.from(new Set(roles))
|
|
78
79
|
}
|
|
79
80
|
|
|
@@ -105,7 +106,8 @@ export default (definition) => {
|
|
|
105
106
|
async function checkRoles(client, { objectType, object, objects }, callback, ignorePublic) {
|
|
106
107
|
const allObjects = ((objectType && object) ? [{ objectType, object }] : []).concat(objects || [])
|
|
107
108
|
const roles = await getClientObjectsRoles(client, allObjects, ignorePublic)
|
|
108
|
-
console.log('checkRoles', allObjects, roles)
|
|
109
|
+
//console.log('checkRoles', allObjects, roles)
|
|
110
|
+
//console.trace("CHECK ROLES!")
|
|
109
111
|
return await callback(roles, client, { objectType, object })
|
|
110
112
|
}
|
|
111
113
|
|
|
@@ -123,7 +125,8 @@ export default (definition) => {
|
|
|
123
125
|
publicSessionRoles: [],
|
|
124
126
|
publicUserRoles: [],
|
|
125
127
|
sessionRoles: [],
|
|
126
|
-
userRoles: []
|
|
128
|
+
userRoles: [],
|
|
129
|
+
ownerRoles: [],
|
|
127
130
|
}
|
|
128
131
|
let objectObserver, publicAccessObserver, sessionAccessObserver, userAccessObserver
|
|
129
132
|
|
|
@@ -150,6 +153,9 @@ export default (definition) => {
|
|
|
150
153
|
if(isLoaded()) updateRoles()
|
|
151
154
|
})
|
|
152
155
|
|
|
156
|
+
if(objectType === 'user_User' && object === client.user) node.ownerRoles.push('owner')
|
|
157
|
+
if(objectType === 'session_Session' && object === client.session) node.ownerRoles.push('owner')
|
|
158
|
+
|
|
153
159
|
async function disposeParents() {
|
|
154
160
|
const oldParents = node.parents
|
|
155
161
|
return Promise.all(oldParents.map(parent => parent.dispose()))
|
|
@@ -186,7 +192,8 @@ export default (definition) => {
|
|
|
186
192
|
...node.publicUserRoles,
|
|
187
193
|
...node.publicSessionRoles,
|
|
188
194
|
...node.userRoles,
|
|
189
|
-
...node.sessionRoles
|
|
195
|
+
...node.sessionRoles,
|
|
196
|
+
...node.ownerRoles,
|
|
190
197
|
]))
|
|
191
198
|
}
|
|
192
199
|
return { treeNode, computeNodeRoles }
|
package/accessControl.js
CHANGED
|
@@ -43,7 +43,7 @@ definition.processor({
|
|
|
43
43
|
if(!view.accessControl) continue
|
|
44
44
|
const config = view.accessControl
|
|
45
45
|
|
|
46
|
-
console.log("ACCESS CONTROL", service.name, "VIEW", view.name)
|
|
46
|
+
//console.log("ACCESS CONTROL", service.name, "VIEW", view.name, "CONFIG", config)
|
|
47
47
|
|
|
48
48
|
const oldGet = view.get
|
|
49
49
|
const oldObservable = view.observable
|
|
@@ -58,8 +58,8 @@ definition.processor({
|
|
|
58
58
|
if(objects.length === 0) {
|
|
59
59
|
throw new Error('no objects for access control to work in view ' + viewName)
|
|
60
60
|
}
|
|
61
|
-
console.log("OBJECTS", objects)
|
|
62
|
-
|
|
61
|
+
/*console.log("OBJECTS", objects)
|
|
62
|
+
console.log("CLIENT", client)
|
|
63
63
|
console.log("ROLES", config.roles)*/
|
|
64
64
|
const accessible = await access.clientHasAccessRoles(client, { objects }, config.roles)
|
|
65
65
|
if(!accessible) throw 'notAuthorized'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@live-change/access-control-service",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.54",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"url": "https://www.viamage.com/"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@live-change/framework": "^0.8.
|
|
24
|
+
"@live-change/framework": "^0.8.54"
|
|
25
25
|
},
|
|
26
|
-
"gitHead": "
|
|
26
|
+
"gitHead": "1558b41fc331424507874c0afd3d149ffb849ca8",
|
|
27
27
|
"type": "module"
|
|
28
28
|
}
|