@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 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
- /*console.log("CLIENT", client)
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.52",
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.52"
24
+ "@live-change/framework": "^0.8.54"
25
25
  },
26
- "gitHead": "d06ad62415cc92e15b5dee87078614d4f883eb83",
26
+ "gitHead": "1558b41fc331424507874c0afd3d149ffb849ca8",
27
27
  "type": "module"
28
28
  }