@liminalfunctions/framework 1.0.25 → 1.0.26

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.
@@ -60,11 +60,11 @@ export class F_SM_Role_Membership extends F_Security_Model {
60
60
  console.warn(`role collection ${this.role_collection.collection_id} was missing its permissions field`);
61
61
  return false;
62
62
  }
63
- if (!role.permissions[this.collection.collection_id]) {
64
- console.warn(`role collection ${this.role_collection.collection_id} was missing its permissions.${this.collection.collection_id} field`);
63
+ if (!role.permissions[this.collection.collection_name_plural]) {
64
+ console.warn(`role collection ${this.role_collection.collection_id} was missing its permissions.${this.collection.collection_name_plural} field`);
65
65
  return false;
66
66
  }
67
- return role.permissions[this.collection.collection_id].includes(operation_permission_map[operation]);
67
+ return role.permissions[this.collection.collection_name_plural].includes(operation_permission_map[operation]);
68
68
  }
69
69
  async handle_empty_query_results(req, res, operation) {
70
70
  return { data: null };
@@ -1 +1 @@
1
- {"version":3,"file":"F_SM_Role_Membership.js","sourceRoot":"","sources":["../../src/F_Security_Models/F_SM_Role_Membership.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"F_SM_Role_Membership.js","sourceRoot":"","sources":["../../src/F_Security_Models/F_SM_Role_Membership.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@liminalfunctions/framework",
3
- "version": "1.0.25",
3
+ "version": "1.0.26",
4
4
  "main": "./dist/index.js",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -78,8 +78,8 @@ export class F_SM_Role_Membership<Collection_ID extends string, ZodSchema extend
78
78
 
79
79
  if(!role){ return false; }
80
80
  if(!role.permissions){ console.warn(`role collection ${this.role_collection.collection_id} was missing its permissions field`); return false; }
81
- if(!role.permissions[this.collection.collection_id]){ console.warn(`role collection ${this.role_collection.collection_id} was missing its permissions.${this.collection.collection_id} field`); return false; }
82
- return role.permissions[this.collection.collection_id].includes(operation_permission_map[operation]);
81
+ if(!role.permissions[this.collection.collection_name_plural]){ console.warn(`role collection ${this.role_collection.collection_id} was missing its permissions.${this.collection.collection_name_plural} field`); return false; }
82
+ return role.permissions[this.collection.collection_name_plural].includes(operation_permission_map[operation]);
83
83
  }
84
84
 
85
85
  async handle_empty_query_results(req: Request, res: Response, operation: Operation): Promise<Empty_Query_Possibilities> {
@@ -18,7 +18,7 @@ import { Server } from "http";
18
18
  // IF YOU RUN THESE TESTS ON THEIR OWN, THEY WORK FINE
19
19
  // there's something janky going on with the mongodb or express
20
20
  // setup/teardown that's causing the mto fail.
21
- describe.skip('Security Model Role Membership', function () {
21
+ describe.only('Security Model Role Membership', function () {
22
22
  const port = 4601;
23
23
  let express_app: Express;
24
24
  let server: Server;
@@ -48,10 +48,10 @@ describe.skip('Security Model Role Membership', function () {
48
48
  name: z.string(),
49
49
  institution_id: z_mongodb_id,
50
50
  permissions: z.object({
51
- institution: z.array(z.enum(['read', 'create', 'update', 'delete'])),
52
- client: z.array(z.enum(['read', 'create', 'update', 'delete'])),
53
- project: z.array(z.enum(['read', 'create', 'update', 'delete'])),
54
- role: z.array(z.enum(['read', 'create', 'update', 'delete'])),
51
+ institutions: z.array(z.enum(['read', 'create', 'update', 'delete'])),
52
+ clients: z.array(z.enum(['read', 'create', 'update', 'delete'])),
53
+ projects: z.array(z.enum(['read', 'create', 'update', 'delete'])),
54
+ roles: z.array(z.enum(['read', 'create', 'update', 'delete'])),
55
55
  })
56
56
  })
57
57
  let validate_institution_role_membership = z.object({
@@ -280,10 +280,10 @@ describe.skip('Security Model Role Membership', function () {
280
280
  name: 'steve full access',
281
281
  institution_id: steve_institution._id,
282
282
  permissions: {
283
- institution: ['read', 'create', 'update', 'delete'],
284
- client: ['read', 'create', 'update', 'delete'],
285
- project: ['read', 'create', 'update', 'delete'],
286
- role: ['read', 'create', 'update', 'delete'],
283
+ institutions: ['read', 'create', 'update', 'delete'],
284
+ clients: ['read', 'create', 'update', 'delete'],
285
+ projects: ['read', 'create', 'update', 'delete'],
286
+ roles: ['read', 'create', 'update', 'delete'],
287
287
  }
288
288
  });
289
289
 
@@ -291,10 +291,10 @@ describe.skip('Security Model Role Membership', function () {
291
291
  name: 'steve limited access',
292
292
  institution_id: steve_institution._id,
293
293
  permissions: {
294
- institution: ['read'],
295
- client: ['read'],
296
- project: [],
297
- role: ['read'],
294
+ institutions: ['read'],
295
+ clients: ['read'],
296
+ projects: [],
297
+ roles: ['read'],
298
298
  }
299
299
  });
300
300
 
@@ -302,10 +302,10 @@ describe.skip('Security Model Role Membership', function () {
302
302
  name: 'edwin full access',
303
303
  institution_id: edwin_institution._id,
304
304
  permissions: {
305
- institution: ['read', 'create', 'update', 'delete'],
306
- client: ['read', 'create', 'update', 'delete'],
307
- project: ['read', 'create', 'update', 'delete'],
308
- role: ['read', 'create', 'update', 'delete'],
305
+ institutions: ['read', 'create', 'update', 'delete'],
306
+ clients: ['read', 'create', 'update', 'delete'],
307
+ projects: ['read', 'create', 'update', 'delete'],
308
+ roles: ['read', 'create', 'update', 'delete'],
309
309
  }
310
310
  });
311
311
 
@@ -313,10 +313,10 @@ describe.skip('Security Model Role Membership', function () {
313
313
  name: 'edwin limited access',
314
314
  institution_id: edwin_institution._id,
315
315
  permissions: {
316
- institution: ['read'],
317
- client: ['read'],
318
- project: [],
319
- role: ['read'],
316
+ institutions: ['read'],
317
+ clients: ['read'],
318
+ projects: [],
319
+ roles: ['read'],
320
320
  }
321
321
  });
322
322