@things-factory/auth-base 6.1.177 → 6.1.180

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/auth-base",
3
- "version": "6.1.177",
3
+ "version": "6.1.180",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "things-factory": true,
@@ -30,10 +30,10 @@
30
30
  "migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
31
31
  },
32
32
  "dependencies": {
33
- "@things-factory/email-base": "^6.1.175",
33
+ "@things-factory/email-base": "^6.1.180",
34
34
  "@things-factory/env": "^6.1.175",
35
- "@things-factory/i18n-base": "^6.1.175",
36
- "@things-factory/shell": "^6.1.175",
35
+ "@things-factory/i18n-base": "^6.1.180",
36
+ "@things-factory/shell": "^6.1.180",
37
37
  "@things-factory/utils": "^6.1.175",
38
38
  "jsonwebtoken": "^9.0.0",
39
39
  "koa-passport": "^6.0.0",
@@ -42,5 +42,5 @@
42
42
  "passport-jwt": "^4.0.0",
43
43
  "passport-local": "^1.0.0"
44
44
  },
45
- "gitHead": "56be53aa39648efa47618fb4cbb7a7034c17e9a5"
45
+ "gitHead": "b4d716cf67de9e105cf0feb18f75849745b09f8e"
46
46
  }
@@ -77,7 +77,8 @@ authPrivateProcessRouter
77
77
  name: user.name,
78
78
  userType: user.userType,
79
79
  owner: await process.domainOwnerGranted(domain, user),
80
- super: await process.superUserGranted(domain, user)
80
+ super: await process.superUserGranted(domain, user),
81
+ privileges: await User.getPrivilegesByDomain(user, domain)
81
82
  },
82
83
  domains: domains.map((d: Domain) => {
83
84
  return {
@@ -28,6 +28,15 @@ export class PrivilegeQuery {
28
28
  return { items, total }
29
29
  }
30
30
 
31
+ @Query(returns => [Privilege], {
32
+ description: 'To fetch current users privileges for current domain'
33
+ })
34
+ async myPrivileges(@Ctx() context: ResolverContext): Promise<Privilege[]> {
35
+ const { user, domain } = context.state
36
+
37
+ return User.getPrivilegesByDomain(user, domain)
38
+ }
39
+
31
40
  @Query(returns => Boolean, { description: 'To query whether I have the given permission' })
32
41
  async hasPrivilege(
33
42
  @Arg('name') name: string,
@@ -321,6 +321,21 @@ export class User {
321
321
  return result[0].has_privilege > 0
322
322
  }
323
323
 
324
+ static async getPrivilegesByDomain(user: User, domain: Domain) {
325
+ const result = await getRepository(User).query(`
326
+ SELECT name, category FROM "privileges" "PRIVILEGES"
327
+ WHERE "PRIVILEGES"."id" IN (
328
+ SELECT "RP"."privileges_id"
329
+ FROM "users_roles" "UR"
330
+ INNER JOIN "roles_privileges" "RP" ON "UR"."roles_id" = "RP"."roles_id"
331
+ LEFT JOIN "roles" "R" ON "R"."id" = "UR"."roles_id"
332
+ WHERE "UR"."users_id" = '78363c56-f0de-42bb-b17d-5188131cbaed'
333
+ AND "R"."domain_id" = 'f51615aa-7093-40d4-898d-534a03f4428c'
334
+ )`)
335
+
336
+ return result
337
+ }
338
+
324
339
  static async getDomainsWithPrivilege(name: string, category: string, user: User) {
325
340
  return getDomainsWithPrivilege(user, name, category)
326
341
  }