@live-change/access-control-service
Advanced tools
Comparing version 0.2.44 to 0.2.45
@@ -51,3 +51,3 @@ const { parents, parentsSources } = require('./accessControlParents.js') | ||
return checkRoles(client, { objectType, object, objects }, | ||
(clientRoles) => testRoles(requiredRoles, roles) | ||
(clientRoles) => testRoles(roles, clientRoles) | ||
) | ||
@@ -212,3 +212,3 @@ } | ||
const outputObjectId = `${JSON.stringify(client.session)}:${JSON.stringify(client.user)}:` + | ||
objects.map( obj => `${JSON.stringify(objectType)}:${JSON.stringify(object)}`) | ||
objects.map( obj => `${JSON.stringify(obj.objectType)}:${JSON.stringify(obj.object)}`) | ||
.join(':') | ||
@@ -218,12 +218,11 @@ let oldOutputObject = null | ||
const roots = await Promise.all(rolesTreesRoots) | ||
const accesses = roots.map(root => computeNodeRoles(root)) | ||
const firstAccess = accesses.shift() | ||
let roles = firstAccess.roles | ||
for(const access of accesses) { | ||
roles = roles.filter(role => access.roles.includes(role)) | ||
const accessesRoles = roots.map(root => computeNodeRoles(root)) | ||
const firstAccessRoles = accessesRoles.shift() | ||
let roles = firstAccessRoles | ||
for(const accessRoles of accessesRoles) { | ||
roles = roles.filter(role => accessRoles.includes(role)) | ||
} | ||
const accessControlRoles = computeNodeRoles() | ||
const outputObject = { | ||
id: outputObjectId, | ||
roles: Array.from(new Set([...accessControlRoles, ...client.roles])) | ||
roles: Array.from(new Set([...roles, ...client.roles])) | ||
} | ||
@@ -238,3 +237,3 @@ output.change(outputObject, oldOutputObject) | ||
})`, { | ||
objectType, object, parentsSourcesMap: parentsSources, client, | ||
objects, parentsSourcesMap: parentsSources, client, | ||
accessTableName: Access.tableName, publicAccessTableName: PublicAccess.tableName, | ||
@@ -241,0 +240,0 @@ dbAccessFunctions: `(${dbAccessFunctions})` |
@@ -55,5 +55,6 @@ const definition = require('./definition.js') | ||
if(objects.length == 0) { | ||
throw new Error('no objects for access control to work') | ||
throw new Error('no objects for access control to work in view ' + viewName) | ||
} | ||
const accessible = access.clientHasAccessRoles(client, { objects }, config.roles) | ||
console.log("OBJECTS", objects) | ||
const accessible = await access.clientHasAccessRoles(client, { objects }, config.roles) | ||
if(!accessible) throw 'notAuthorized' | ||
@@ -107,2 +108,3 @@ return oldGet.apply(view, args) | ||
} | ||
return observableProxy | ||
} | ||
@@ -109,0 +111,0 @@ } |
{ | ||
"name": "@live-change/access-control-service", | ||
"version": "0.2.44", | ||
"version": "0.2.45", | ||
"description": "", | ||
@@ -24,5 +24,5 @@ "main": "index.js", | ||
"dependencies": { | ||
"@live-change/framework": "0.6.10" | ||
"@live-change/framework": "0.6.11" | ||
}, | ||
"gitHead": "aded4481299d6f56450603608cf1b0ec199156c5" | ||
"gitHead": "aab9b222492335dda687dcf4a1c2794ec4fa610f" | ||
} |
35324
913
+ Added@live-change/framework@0.6.11(transitive)
- Removed@live-change/framework@0.6.10(transitive)