@liminalfunctions/framework 1.0.51 → 1.0.52

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.
@@ -6,12 +6,12 @@ import { Authenticated_Request, Empty_Query_Possibilities, F_Security_Model, Ope
6
6
  export declare class F_SM_Role_Membership<Collection_ID extends string, ZodSchema extends z.ZodObject> extends F_Security_Model<Collection_ID, ZodSchema> {
7
7
  user_id_field: string;
8
8
  role_id_field: string;
9
- layer_collection_id: string;
9
+ layer_collection_id?: string;
10
10
  role_membership_collection: F_Collection<string, any>;
11
11
  role_membership_cache: Cache<any>;
12
12
  role_collection: F_Collection<string, any>;
13
13
  role_cache: Cache<any>;
14
- constructor(collection: F_Collection<Collection_ID, ZodSchema>, layer_collection: F_Collection<string, any>, role_membership_collection: F_Collection<string, any>, role_collection: F_Collection<string, any>, role_membership_cache?: Cache<any>, role_cache?: Cache<any>, user_id_field?: string, role_id_field?: string);
14
+ constructor(collection: F_Collection<Collection_ID, ZodSchema>, layer_collection: F_Collection<string, any> | undefined, role_membership_collection: F_Collection<string, any>, role_collection: F_Collection<string, any>, role_membership_cache?: Cache<any>, role_cache?: Cache<any>, user_id_field?: string, role_id_field?: string);
15
15
  has_permission(req: Authenticated_Request, res: Response, find: {
16
16
  [key: string]: any;
17
17
  }, operation: Operation): Promise<boolean>;
@@ -20,7 +20,7 @@ export class F_SM_Role_Membership extends F_Security_Model {
20
20
  this.needs_auth_user = true;
21
21
  this.user_id_field = user_id_field;
22
22
  this.role_id_field = role_id_field;
23
- this.layer_collection_id = layer_collection.collection_id;
23
+ this.layer_collection_id = layer_collection?.collection_id;
24
24
  this.role_membership_collection = role_membership_collection;
25
25
  this.role_membership_cache = role_membership_cache ?? new Cache(60);
26
26
  this.role_collection = role_collection;
@@ -31,12 +31,16 @@ export class F_SM_Role_Membership extends F_Security_Model {
31
31
  }
32
32
  async has_permission(req, res, find, operation) {
33
33
  let user_id = req.auth.user_id;
34
- let layer_document_id = req.params[this.layer_collection_id] ?? req.params.document_id;
35
- let role_membership = await this.role_membership_cache.first_fetch_then_refresh(`${user_id}-${layer_document_id}`, async () => {
36
- let role_memberships = await this.role_membership_collection.mongoose_model.find({
34
+ let layer_document_id = this.layer_collection_id ? (req.params[this.layer_collection_id] ?? req.params.document_id) : undefined;
35
+ let cache_key = this.layer_collection_id ? `${user_id}-${layer_document_id}` : user_id;
36
+ let role_membership = await this.role_membership_cache.first_fetch_then_refresh(cache_key, async () => {
37
+ let find = {
37
38
  [this.user_id_field]: user_id,
38
- [`${this.layer_collection_id}_id`]: new mongoose.Types.ObjectId(layer_document_id)
39
- }, {}, { lean: true });
39
+ };
40
+ if (this.layer_collection_id) {
41
+ find[`${this.layer_collection_id}_id`] = new mongoose.Types.ObjectId(layer_document_id);
42
+ }
43
+ let role_memberships = await this.role_membership_collection.mongoose_model.find(find, {}, { lean: true });
40
44
  if (role_memberships.length > 1) {
41
45
  console.warn(`in F_SM_Role_Membership, more than one role membership for user ${user_id} at layer ${this.layer_collection_id} found.`);
42
46
  }
@@ -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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"}
@@ -49,7 +49,7 @@ export const z_mongodb_id_nullable = z.custom((val) => {
49
49
  }).meta({ framework_override_type: 'mongodb_id', nullable: true });
50
50
  export function mongoose_from_zod(schema_name, zod_definition, database = mongoose) {
51
51
  let mongoose_schema = schema_from_zod(zod_definition);
52
- return database.model(schema_name, new Schema(mongoose_schema, { typeKey: 'mongoose_type' }));
52
+ return database.model(schema_name, new Schema(mongoose_schema, { typeKey: 'mongoose_type', minimize: false }));
53
53
  }
54
54
  export function schema_from_zod(zod_definition) {
55
55
  let loops = find_loops(zod_definition);
@@ -1 +1 @@
1
- {"version":3,"file":"mongoose_from_zod.js","sourceRoot":"","sources":["../../src/utils/mongoose_from_zod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongoose_from_zod.js","sourceRoot":"","sources":["../../src/utils/mongoose_from_zod.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.51",
3
+ "version": "1.0.52",
4
4
  "main": "./dist/index.js",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -15,14 +15,14 @@ let operation_permission_map = {
15
15
  export class F_SM_Role_Membership<Collection_ID extends string, ZodSchema extends z.ZodObject> extends F_Security_Model<Collection_ID, ZodSchema> {
16
16
  user_id_field: string;
17
17
  role_id_field: string;
18
- layer_collection_id: string;
18
+ layer_collection_id?: string;
19
19
  role_membership_collection: F_Collection<string, any>;
20
20
  role_membership_cache: Cache<any>;
21
21
  role_collection: F_Collection<string, any>;
22
22
  role_cache: Cache<any>;
23
23
 
24
24
  constructor(collection: F_Collection<Collection_ID, ZodSchema>,
25
- layer_collection: F_Collection<string, any>,
25
+ layer_collection: F_Collection<string, any> | undefined,
26
26
  role_membership_collection: F_Collection<string, any>,
27
27
  role_collection: F_Collection<string, any>,
28
28
  role_membership_cache?: Cache<any>,
@@ -34,7 +34,7 @@ export class F_SM_Role_Membership<Collection_ID extends string, ZodSchema extend
34
34
  this.needs_auth_user = true;
35
35
  this.user_id_field = user_id_field;
36
36
  this.role_id_field = role_id_field;
37
- this.layer_collection_id = layer_collection.collection_id;
37
+ this.layer_collection_id = layer_collection?.collection_id;
38
38
  this.role_membership_collection = role_membership_collection;
39
39
  this.role_membership_cache = role_membership_cache ?? new Cache(60);
40
40
  this.role_collection = role_collection;
@@ -49,16 +49,20 @@ export class F_SM_Role_Membership<Collection_ID extends string, ZodSchema extend
49
49
  let user_id = req.auth.user_id;
50
50
  // the only way the layer ID is undefined is if the layer is the document being accessed
51
51
  // eg the institution id or the client id
52
- let layer_document_id = req.params[this.layer_collection_id] ?? req.params.document_id;
52
+ let layer_document_id = this.layer_collection_id ? (req.params[this.layer_collection_id] ?? req.params.document_id) : undefined;
53
+ let cache_key = this.layer_collection_id ? `${user_id}-${layer_document_id}` : user_id;
53
54
 
54
55
  // return the role membership associated with the layer. This uses the cache heavily, so it should be
55
56
  // a cheap operation even though it makes an extra database query. Use the cache's first_fetch_then_refresh
56
57
  // method so that we aren't keeping out-of-date auth data in the cache.
57
- let role_membership = await this.role_membership_cache.first_fetch_then_refresh(`${user_id}-${layer_document_id}`, async () => {
58
- let role_memberships = await this.role_membership_collection.mongoose_model.find({
58
+ let role_membership = await this.role_membership_cache.first_fetch_then_refresh(cache_key, async () => {
59
+ let find: {[key: string]: any} = {
59
60
  [this.user_id_field]: user_id,
60
- [`${this.layer_collection_id}_id`]: new mongoose.Types.ObjectId(layer_document_id)
61
- }, {}, {lean: true})
61
+ };
62
+ if(this.layer_collection_id){
63
+ find[`${this.layer_collection_id}_id`] = new mongoose.Types.ObjectId(layer_document_id)
64
+ }
65
+ let role_memberships = await this.role_membership_collection.mongoose_model.find(find, {}, {lean: true})
62
66
 
63
67
  if(role_memberships.length > 1){
64
68
  console.warn(`in F_SM_Role_Membership, more than one role membership for user ${user_id} at layer ${this.layer_collection_id} found.`)