This repository has been archived by the owner on Aug 19, 2022. It is now read-only.
/
index.js
93 lines (83 loc) · 3.22 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
'use strict'
const buildUserOps = require('./lib/ops/userOps')
const buildOrganizationOps = require('./lib/ops/organizationOps')
const buildAuthorizeOps = require('./lib/ops/authorizeOps')
const buildTeamOps = require('./lib/ops/teamOps')
const buildPolicyOps = require('./lib/ops/policyOps')
const buildDb = require('./lib/db')
const buildConfig = require('../config')
const defaultConfig = require('../config/default.core')
function buildUdaruCore (dbPool, config) {
const fullConfig = buildConfig(defaultConfig, config || {})
const db = buildDb(dbPool, fullConfig)
const userOps = buildUserOps(db, fullConfig)
const organizationOps = buildOrganizationOps(db, fullConfig)
const authorizeOps = buildAuthorizeOps(db, fullConfig)
const teamOps = buildTeamOps(db, fullConfig)
const policyOps = buildPolicyOps(db, fullConfig)
return {
config,
getUserOrganizationId: userOps.getUserOrganizationId,
authorize: {
isUserAuthorized: authorizeOps.isUserAuthorized,
listActions: authorizeOps.listAuthorizations,
listAuthorizationsOnResources: authorizeOps.listAuthorizationsOnResources
},
organizations: {
list: organizationOps.list,
create: organizationOps.create,
read: organizationOps.readById,
delete: organizationOps.deleteById,
update: organizationOps.update,
addPolicies: organizationOps.addOrganizationPolicies,
replacePolicies: organizationOps.replaceOrganizationPolicies,
deletePolicies: organizationOps.deleteOrganizationAttachedPolicies,
deletePolicy: organizationOps.deleteOrganizationAttachedPolicy
},
policies: {
list: policyOps.listByOrganization,
read: policyOps.readPolicy,
create: policyOps.createPolicy,
update: policyOps.updatePolicy,
delete: policyOps.deletePolicy,
listShared: policyOps.listSharedPolicies,
createShared: policyOps.createSharedPolicy,
updateShared: policyOps.updateSharedPolicy,
deleteShared: policyOps.deleteSharedPolicy,
readShared: policyOps.readSharedPolicy
},
teams: {
list: teamOps.listOrgTeams,
create: teamOps.createTeam,
read: teamOps.readTeam,
update: teamOps.updateTeam,
delete: teamOps.deleteTeam,
move: teamOps.moveTeam,
listUsers: teamOps.readTeamUsers,
replacePolicies: teamOps.replaceTeamPolicies,
addPolicies: teamOps.addTeamPolicies,
deletePolicies: teamOps.deleteTeamPolicies,
deletePolicy: teamOps.deleteTeamPolicy,
addUsers: teamOps.addUsersToTeam,
replaceUsers: teamOps.replaceUsersInTeam,
deleteMembers: teamOps.deleteTeamMembers,
deleteMember: teamOps.deleteTeamMember
},
users: {
list: userOps.listOrgUsers,
create: userOps.createUser,
read: userOps.readUser,
update: userOps.updateUser,
delete: userOps.deleteUser,
replacePolicies: userOps.replaceUserPolicies,
addPolicies: userOps.addUserPolicies,
deletePolicies: userOps.deleteUserPolicies,
deletePolicy: userOps.deleteUserPolicy,
listUserTeams: userOps.listUserTeams,
replaceTeams: userOps.replaceUserTeams,
deleteTeams: userOps.deleteUserFromTeams,
search: userOps.search
}
}
}
module.exports = buildUdaruCore