@things-factory/auth-base 10.1.181 → 10.1.188
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/dist-server/service/role/role-query.d.ts +1 -4
- package/dist-server/service/role/role-query.js +1 -5
- package/dist-server/service/role/role-query.js.map +1 -1
- package/dist-server/service/role/role.js +1 -0
- package/dist-server/service/role/role.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/tests/role-users-gate.test.ts +22 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/auth-base",
|
|
3
|
-
"version": "10.1.
|
|
3
|
+
"version": "10.1.188",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "dist-client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
"@reduxjs/toolkit": "^2.2.5",
|
|
36
36
|
"@simplewebauthn/browser": "^13.0.0",
|
|
37
37
|
"@simplewebauthn/server": "^13.0.0",
|
|
38
|
-
"@things-factory/email-base": "^10.1.
|
|
38
|
+
"@things-factory/email-base": "^10.1.188",
|
|
39
39
|
"@things-factory/env": "^10.1.149",
|
|
40
|
-
"@things-factory/shell": "^10.1.
|
|
40
|
+
"@things-factory/shell": "^10.1.188",
|
|
41
41
|
"@things-factory/utils": "^10.1.179",
|
|
42
42
|
"@types/webappsec-credential-management": "^0.6.9",
|
|
43
43
|
"jsonwebtoken": "^9.0.0",
|
|
@@ -49,5 +49,5 @@
|
|
|
49
49
|
"passport-jwt": "^4.0.0",
|
|
50
50
|
"passport-local": "^1.0.0"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "c5e75e2e0b565e0666472bc835f5f1538fb18f48"
|
|
53
53
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { buildSchema } from 'type-graphql'
|
|
2
|
+
|
|
3
|
+
import { loadCompiled } from './compiled'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Reading roles does not list who holds them (ADR-0139).
|
|
7
|
+
*
|
|
8
|
+
* The `user:query` gate stood on `RoleQuery.users`, a field resolver, while `Role` declared `users` itself - and
|
|
9
|
+
* type-graphql keeps the declaration's directives, so the gate was never in the served schema: `role:query` alone listed
|
|
10
|
+
* every role's people. It now stands on the declaration; this reads the schema that is served, not the source.
|
|
11
|
+
*/
|
|
12
|
+
const { schema: declared } = loadCompiled('service/index')
|
|
13
|
+
const { privilegeDirectiveResolver, privilegeOfField } = loadCompiled('service/privilege/privilege-directive')
|
|
14
|
+
|
|
15
|
+
describe("a role's people", () => {
|
|
16
|
+
it('★ Role.users asks user:query in the served schema', async () => {
|
|
17
|
+
const schema = await buildSchema({ resolvers: declared.resolverClasses, validate: false })
|
|
18
|
+
privilegeDirectiveResolver(schema, { modules: [] })
|
|
19
|
+
const gate = privilegeOfField('Role', 'users')
|
|
20
|
+
expect([gate.known, gate['gate']?.category, gate['gate']?.privilege]).toEqual([true, 'user', 'query'])
|
|
21
|
+
})
|
|
22
|
+
})
|