@sudobility/entity_service 1.0.4 → 1.0.6

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.
Files changed (36) hide show
  1. package/dist/helpers/EntityHelper.cjs +29 -21
  2. package/dist/helpers/EntityHelper.d.ts +12 -4
  3. package/dist/helpers/EntityHelper.d.ts.map +1 -1
  4. package/dist/helpers/EntityHelper.js +29 -21
  5. package/dist/helpers/EntityHelper.js.map +1 -1
  6. package/dist/helpers/EntityMemberHelper.cjs +86 -47
  7. package/dist/helpers/EntityMemberHelper.d.ts +11 -3
  8. package/dist/helpers/EntityMemberHelper.d.ts.map +1 -1
  9. package/dist/helpers/EntityMemberHelper.js +86 -47
  10. package/dist/helpers/EntityMemberHelper.js.map +1 -1
  11. package/dist/helpers/InvitationHelper.cjs +15 -10
  12. package/dist/helpers/InvitationHelper.d.ts +6 -2
  13. package/dist/helpers/InvitationHelper.d.ts.map +1 -1
  14. package/dist/helpers/InvitationHelper.js +15 -10
  15. package/dist/helpers/InvitationHelper.js.map +1 -1
  16. package/dist/helpers/PermissionHelper.cjs +8 -12
  17. package/dist/helpers/PermissionHelper.d.ts +3 -0
  18. package/dist/helpers/PermissionHelper.d.ts.map +1 -1
  19. package/dist/helpers/PermissionHelper.js +8 -12
  20. package/dist/helpers/PermissionHelper.js.map +1 -1
  21. package/dist/middleware/hono.cjs +6 -6
  22. package/dist/middleware/hono.d.ts +3 -3
  23. package/dist/middleware/hono.js +6 -6
  24. package/dist/middleware/hono.js.map +1 -1
  25. package/dist/migrations/001_add_entities.cjs +93 -32
  26. package/dist/migrations/001_add_entities.d.ts.map +1 -1
  27. package/dist/migrations/001_add_entities.js +93 -32
  28. package/dist/migrations/001_add_entities.js.map +1 -1
  29. package/dist/schema/entities.cjs +30 -23
  30. package/dist/schema/entities.d.ts +61 -46
  31. package/dist/schema/entities.d.ts.map +1 -1
  32. package/dist/schema/entities.js +30 -23
  33. package/dist/schema/entities.js.map +1 -1
  34. package/dist/types/index.d.ts +3 -1
  35. package/dist/types/index.d.ts.map +1 -1
  36. package/package.json +3 -3
@@ -16,24 +16,28 @@ class EntityMemberHelper {
16
16
  }
17
17
  /**
18
18
  * Get all members of an entity.
19
+ * By default, only returns active members.
19
20
  */
20
21
  async getMembers(entityId, options) {
21
- // Build conditions
22
+ // Build conditions - default to active members only
22
23
  const conditions = [(0, drizzle_orm_1.eq)(this.config.membersTable.entity_id, entityId)];
23
24
  if (options?.role) {
24
25
  conditions.push((0, drizzle_orm_1.eq)(this.config.membersTable.role, options.role));
25
26
  }
27
+ // Filter by is_active (default to true if not specified)
28
+ const isActive = options?.isActive ?? true;
29
+ conditions.push((0, drizzle_orm_1.eq)(this.config.membersTable.is_active, isActive));
26
30
  let query = this.config.db
27
31
  .select({
28
32
  member: this.config.membersTable,
29
33
  user: {
30
- id: this.config.usersTable.uuid,
34
+ id: this.config.usersTable.firebase_uid,
31
35
  email: this.config.usersTable.email,
32
36
  displayName: this.config.usersTable.display_name,
33
37
  },
34
38
  })
35
39
  .from(this.config.membersTable)
36
- .leftJoin(this.config.usersTable, (0, drizzle_orm_1.eq)(this.config.membersTable.user_id, this.config.usersTable.uuid))
40
+ .leftJoin(this.config.usersTable, (0, drizzle_orm_1.eq)(this.config.membersTable.user_id, this.config.usersTable.firebase_uid))
37
41
  .where((0, drizzle_orm_1.and)(...conditions))
38
42
  .$dynamic();
39
43
  if (options?.limit) {
@@ -47,20 +51,28 @@ class EntityMemberHelper {
47
51
  }
48
52
  /**
49
53
  * Get a specific member by user ID.
54
+ * Only returns active members by default.
50
55
  */
51
- async getMember(entityId, userId) {
56
+ async getMember(entityId, userId, includeInactive = false) {
57
+ const conditions = [
58
+ (0, drizzle_orm_1.eq)(this.config.membersTable.entity_id, entityId),
59
+ (0, drizzle_orm_1.eq)(this.config.membersTable.user_id, userId),
60
+ ];
61
+ if (!includeInactive) {
62
+ conditions.push((0, drizzle_orm_1.eq)(this.config.membersTable.is_active, true));
63
+ }
52
64
  const results = await this.config.db
53
65
  .select({
54
66
  member: this.config.membersTable,
55
67
  user: {
56
- id: this.config.usersTable.uuid,
68
+ id: this.config.usersTable.firebase_uid,
57
69
  email: this.config.usersTable.email,
58
70
  displayName: this.config.usersTable.display_name,
59
71
  },
60
72
  })
61
73
  .from(this.config.membersTable)
62
- .leftJoin(this.config.usersTable, (0, drizzle_orm_1.eq)(this.config.membersTable.user_id, this.config.usersTable.uuid))
63
- .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(this.config.membersTable.entity_id, entityId), (0, drizzle_orm_1.eq)(this.config.membersTable.user_id, userId)))
74
+ .leftJoin(this.config.usersTable, (0, drizzle_orm_1.eq)(this.config.membersTable.user_id, this.config.usersTable.firebase_uid))
75
+ .where((0, drizzle_orm_1.and)(...conditions))
64
76
  .limit(1);
65
77
  if (results.length === 0) {
66
78
  return null;
@@ -69,12 +81,13 @@ class EntityMemberHelper {
69
81
  }
70
82
  /**
71
83
  * Get user's role in an entity.
84
+ * Only returns role for active members.
72
85
  */
73
86
  async getUserRole(entityId, userId) {
74
87
  const results = await this.config.db
75
88
  .select({ role: this.config.membersTable.role })
76
89
  .from(this.config.membersTable)
77
- .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(this.config.membersTable.entity_id, entityId), (0, drizzle_orm_1.eq)(this.config.membersTable.user_id, userId)))
90
+ .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(this.config.membersTable.entity_id, entityId), (0, drizzle_orm_1.eq)(this.config.membersTable.user_id, userId), (0, drizzle_orm_1.eq)(this.config.membersTable.is_active, true)))
78
91
  .limit(1);
79
92
  if (results.length === 0) {
80
93
  return null;
@@ -83,32 +96,61 @@ class EntityMemberHelper {
83
96
  }
84
97
  /**
85
98
  * Add a member to an entity.
99
+ * @param entityId - The entity ID
100
+ * @param firebaseUid - The Firebase UID (used as user_id)
101
+ * @param role - The member's role
86
102
  */
87
- async addMember(entityId, userId, role) {
88
- const [member] = await this.config.db
89
- .insert(this.config.membersTable)
90
- .values({
91
- entity_id: entityId,
92
- user_id: userId,
93
- role,
94
- })
95
- .returning();
103
+ async addMember(entityId, firebaseUid, role) {
104
+ // Check if there's an existing inactive membership to reactivate
105
+ const existing = await this.getMember(entityId, firebaseUid, true);
106
+ let member;
107
+ if (existing && !existing.isActive) {
108
+ // Reactivate existing membership
109
+ const [updated] = await this.config.db
110
+ .update(this.config.membersTable)
111
+ .set({
112
+ role,
113
+ is_active: true,
114
+ updated_at: new Date(),
115
+ })
116
+ .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(this.config.membersTable.entity_id, entityId), (0, drizzle_orm_1.eq)(this.config.membersTable.user_id, firebaseUid)))
117
+ .returning();
118
+ member = updated;
119
+ }
120
+ else {
121
+ // Create new membership
122
+ const [inserted] = await this.config.db
123
+ .insert(this.config.membersTable)
124
+ .values({
125
+ entity_id: entityId,
126
+ user_id: firebaseUid,
127
+ role,
128
+ is_active: true,
129
+ })
130
+ .returning();
131
+ member = inserted;
132
+ }
96
133
  // Fetch user info for response
97
134
  const users = await this.config.db
98
135
  .select({
99
- id: this.config.usersTable.uuid,
136
+ id: this.config.usersTable.firebase_uid,
100
137
  email: this.config.usersTable.email,
101
138
  displayName: this.config.usersTable.display_name,
102
139
  })
103
140
  .from(this.config.usersTable)
104
- .where((0, drizzle_orm_1.eq)(this.config.usersTable.uuid, userId))
141
+ .where((0, drizzle_orm_1.eq)(this.config.usersTable.firebase_uid, firebaseUid))
105
142
  .limit(1);
106
143
  return this.mapRecordToMember(member, users[0] ?? null);
107
144
  }
108
145
  /**
109
146
  * Update a member's role.
147
+ * Cannot change the owner's role. Cannot set anyone to owner (ownership transfer is separate).
110
148
  */
111
149
  async updateMemberRole(entityId, userId, role) {
150
+ // Cannot assign owner role via this method
151
+ if (role === types_1.EntityRole.OWNER) {
152
+ throw new Error('Cannot assign owner role. Use ownership transfer instead.');
153
+ }
112
154
  // Check constraints for personal entities
113
155
  const entity = await this.config.db
114
156
  .select()
@@ -118,16 +160,10 @@ class EntityMemberHelper {
118
160
  if (entity.length > 0 && entity[0].entity_type === types_1.EntityType.PERSONAL) {
119
161
  throw new Error('Cannot change roles in personal entities');
120
162
  }
121
- // Ensure at least one admin remains
122
- if (role !== types_1.EntityRole.ADMIN) {
123
- const admins = await this.config.db
124
- .select()
125
- .from(this.config.membersTable)
126
- .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(this.config.membersTable.entity_id, entityId), (0, drizzle_orm_1.eq)(this.config.membersTable.role, types_1.EntityRole.ADMIN)));
127
- const isOnlyAdmin = admins.length === 1 && admins[0].user_id === userId;
128
- if (isOnlyAdmin) {
129
- throw new Error('Cannot demote the only admin');
130
- }
163
+ // Check if user is the owner - cannot change owner's role
164
+ const currentMember = await this.getMember(entityId, userId);
165
+ if (currentMember?.role === types_1.EntityRole.OWNER) {
166
+ throw new Error('Cannot change the owner\'s role');
131
167
  }
132
168
  const [updated] = await this.config.db
133
169
  .update(this.config.membersTable)
@@ -135,22 +171,26 @@ class EntityMemberHelper {
135
171
  role,
136
172
  updated_at: new Date(),
137
173
  })
138
- .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(this.config.membersTable.entity_id, entityId), (0, drizzle_orm_1.eq)(this.config.membersTable.user_id, userId)))
174
+ .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(this.config.membersTable.entity_id, entityId), (0, drizzle_orm_1.eq)(this.config.membersTable.user_id, userId), (0, drizzle_orm_1.eq)(this.config.membersTable.is_active, true)))
139
175
  .returning();
176
+ if (!updated) {
177
+ throw new Error('Member not found or inactive');
178
+ }
140
179
  // Fetch user info for response
141
180
  const users = await this.config.db
142
181
  .select({
143
- id: this.config.usersTable.uuid,
182
+ id: this.config.usersTable.firebase_uid,
144
183
  email: this.config.usersTable.email,
145
184
  displayName: this.config.usersTable.display_name,
146
185
  })
147
186
  .from(this.config.usersTable)
148
- .where((0, drizzle_orm_1.eq)(this.config.usersTable.uuid, userId))
187
+ .where((0, drizzle_orm_1.eq)(this.config.usersTable.firebase_uid, userId))
149
188
  .limit(1);
150
189
  return this.mapRecordToMember(updated, users[0] ?? null);
151
190
  }
152
191
  /**
153
- * Remove a member from an entity.
192
+ * Remove a member from an entity (soft delete).
193
+ * Sets is_active = false instead of deleting the record.
154
194
  */
155
195
  async removeMember(entityId, userId) {
156
196
  // Check constraints for personal entities
@@ -162,23 +202,21 @@ class EntityMemberHelper {
162
202
  if (entity.length > 0 && entity[0].entity_type === types_1.EntityType.PERSONAL) {
163
203
  throw new Error('Cannot remove members from personal entities');
164
204
  }
165
- // Check if user is the owner
166
- if (entity.length > 0 && entity[0].owner_user_id === userId) {
167
- throw new Error('Cannot remove the entity owner');
168
- }
169
- // Ensure at least one admin remains
205
+ // Check if user is the owner - cannot remove owner
170
206
  const member = await this.getMember(entityId, userId);
171
- if (member?.role === types_1.EntityRole.ADMIN) {
172
- const admins = await this.config.db
173
- .select()
174
- .from(this.config.membersTable)
175
- .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(this.config.membersTable.entity_id, entityId), (0, drizzle_orm_1.eq)(this.config.membersTable.role, types_1.EntityRole.ADMIN)));
176
- if (admins.length === 1) {
177
- throw new Error('Cannot remove the only admin');
178
- }
207
+ if (!member) {
208
+ throw new Error('Member not found');
209
+ }
210
+ if (member.role === types_1.EntityRole.OWNER) {
211
+ throw new Error('Cannot remove the entity owner');
179
212
  }
213
+ // Soft delete - set is_active = false
180
214
  await this.config.db
181
- .delete(this.config.membersTable)
215
+ .update(this.config.membersTable)
216
+ .set({
217
+ is_active: false,
218
+ updated_at: new Date(),
219
+ })
182
220
  .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(this.config.membersTable.entity_id, entityId), (0, drizzle_orm_1.eq)(this.config.membersTable.user_id, userId)));
183
221
  }
184
222
  /**
@@ -197,6 +235,7 @@ class EntityMemberHelper {
197
235
  entityId: record.entity_id,
198
236
  userId: record.user_id,
199
237
  role: record.role,
238
+ isActive: record.is_active ?? true,
200
239
  joinedAt: record.joined_at?.toISOString() ?? new Date().toISOString(),
201
240
  createdAt: record.created_at?.toISOString() ?? new Date().toISOString(),
202
241
  updatedAt: record.updated_at?.toISOString() ?? new Date().toISOString(),
@@ -1 +1 @@
1
- {"version":3,"file":"EntityMemberHelper.js","sourceRoot":"","sources":["../../src/helpers/EntityMemberHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityMemberHelper.js","sourceRoot":"","sources":["../../src/helpers/EntityMemberHelper.ts"],"names":[],"mappings":"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"}
@@ -19,15 +19,16 @@ class InvitationHelper {
19
19
  * Create an invitation to join an entity.
20
20
  */
21
21
  async createInvitation(entityId, invitedByUserId, request) {
22
- // Check if user is already a member
22
+ // Check if user is already an active member
23
+ // Note: We only check active members so previously removed users can be re-invited
23
24
  const existingMember = await this.config.db
24
25
  .select()
25
26
  .from(this.config.membersTable)
26
- .innerJoin(this.config.usersTable, (0, drizzle_orm_1.eq)(this.config.membersTable.user_id, this.config.usersTable.uuid))
27
- .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(this.config.membersTable.entity_id, entityId), (0, drizzle_orm_1.eq)(this.config.usersTable.email, request.email)))
27
+ .innerJoin(this.config.usersTable, (0, drizzle_orm_1.eq)(this.config.membersTable.user_id, this.config.usersTable.firebase_uid))
28
+ .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(this.config.membersTable.entity_id, entityId), (0, drizzle_orm_1.eq)(this.config.usersTable.email, request.email), (0, drizzle_orm_1.eq)(this.config.membersTable.is_active, true)))
28
29
  .limit(1);
29
30
  if (existingMember.length > 0) {
30
- throw new Error('User is already a member of this entity');
31
+ throw new Error('User is already an active member of this entity');
31
32
  }
32
33
  // Check for existing pending invitation
33
34
  const existingInvite = await this.config.db
@@ -126,7 +127,6 @@ class InvitationHelper {
126
127
  displayName: entity.display_name,
127
128
  description: entity.description,
128
129
  avatarUrl: entity.avatar_url,
129
- ownerUserId: entity.owner_user_id,
130
130
  createdAt: entity.created_at?.toISOString() ?? new Date().toISOString(),
131
131
  updatedAt: entity.updated_at?.toISOString() ?? new Date().toISOString(),
132
132
  },
@@ -134,8 +134,10 @@ class InvitationHelper {
134
134
  }
135
135
  /**
136
136
  * Accept an invitation.
137
+ * @param token - The invitation token
138
+ * @param firebaseUid - The Firebase UID of the user accepting
137
139
  */
138
- async acceptInvitation(token, userId) {
140
+ async acceptInvitation(token, firebaseUid) {
139
141
  const invitation = await this.getInvitationByToken(token);
140
142
  if (!invitation) {
141
143
  throw new Error('Invitation not found');
@@ -154,11 +156,12 @@ class InvitationHelper {
154
156
  .where((0, drizzle_orm_1.eq)(this.config.invitationsTable.id, invitation.id));
155
157
  throw new Error('Invitation has expired');
156
158
  }
157
- // Add user as member
159
+ // Add user as member with active status
158
160
  await this.config.db.insert(this.config.membersTable).values({
159
161
  entity_id: invitation.entityId,
160
- user_id: userId,
162
+ user_id: firebaseUid,
161
163
  role: invitation.role,
164
+ is_active: true,
162
165
  });
163
166
  // Mark invitation as accepted
164
167
  await this.config.db
@@ -200,12 +203,14 @@ class InvitationHelper {
200
203
  /**
201
204
  * Process pending invitations for a new user.
202
205
  * Called when a user signs up to auto-accept any pending invitations.
206
+ * @param firebaseUid - The Firebase UID of the new user
207
+ * @param email - The user's email to match invitations
203
208
  */
204
- async processNewUserInvitations(userId, email) {
209
+ async processNewUserInvitations(firebaseUid, email) {
205
210
  const pendingInvitations = await this.getUserPendingInvitations(email);
206
211
  for (const invitation of pendingInvitations) {
207
212
  try {
208
- await this.acceptInvitation(invitation.token, userId);
213
+ await this.acceptInvitation(invitation.token, firebaseUid);
209
214
  }
210
215
  catch (error) {
211
216
  // Log but don't fail - user account creation is more important
@@ -31,8 +31,10 @@ export declare class InvitationHelper {
31
31
  getUserPendingInvitations(email: string): Promise<EntityInvitation[]>;
32
32
  /**
33
33
  * Accept an invitation.
34
+ * @param token - The invitation token
35
+ * @param firebaseUid - The Firebase UID of the user accepting
34
36
  */
35
- acceptInvitation(token: string, userId: string): Promise<void>;
37
+ acceptInvitation(token: string, firebaseUid: string): Promise<void>;
36
38
  /**
37
39
  * Decline an invitation.
38
40
  */
@@ -44,8 +46,10 @@ export declare class InvitationHelper {
44
46
  /**
45
47
  * Process pending invitations for a new user.
46
48
  * Called when a user signs up to auto-accept any pending invitations.
49
+ * @param firebaseUid - The Firebase UID of the new user
50
+ * @param email - The user's email to match invitations
47
51
  */
48
- processNewUserInvitations(userId: string, email: string): Promise<void>;
52
+ processNewUserInvitations(firebaseUid: string, email: string): Promise<void>;
49
53
  /**
50
54
  * Expire old invitations.
51
55
  * Should be called periodically (e.g., by a cron job).
@@ -1 +1 @@
1
- {"version":3,"file":"InvitationHelper.d.ts","sourceRoot":"","sources":["../../src/helpers/InvitationHelper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC5B,MAAM,UAAU,CAAC;AAMlB;;GAEG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,sBAAsB;IAE3D;;OAEG;IACG,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,gBAAgB,CAAC;IAyD5B;;OAEG;IACG,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAc3E;;OAEG;IACG,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAc3E;;OAEG;IACG,oBAAoB,CACxB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAyB9B;;OAEG;IACG,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAkC3E;;OAEG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CpE;;OAEG;IACG,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBrD;;OAEG;IACG,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3D;;;OAGG;IACG,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa7E;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAkB7C;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAe9B"}
1
+ {"version":3,"file":"InvitationHelper.d.ts","sourceRoot":"","sources":["../../src/helpers/InvitationHelper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC5B,MAAM,UAAU,CAAC;AAMlB;;GAEG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,sBAAsB;IAE3D;;OAEG;IACG,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,gBAAgB,CAAC;IA2D5B;;OAEG;IACG,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAc3E;;OAEG;IACG,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAc3E;;OAEG;IACG,oBAAoB,CACxB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAyB9B;;OAEG;IACG,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAiC3E;;;;OAIG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CzE;;OAEG;IACG,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBrD;;OAEG;IACG,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3D;;;;;OAKG;IACG,yBAAyB,CAC7B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAahB;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAkB7C;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAe9B"}
@@ -19,15 +19,16 @@ class InvitationHelper {
19
19
  * Create an invitation to join an entity.
20
20
  */
21
21
  async createInvitation(entityId, invitedByUserId, request) {
22
- // Check if user is already a member
22
+ // Check if user is already an active member
23
+ // Note: We only check active members so previously removed users can be re-invited
23
24
  const existingMember = await this.config.db
24
25
  .select()
25
26
  .from(this.config.membersTable)
26
- .innerJoin(this.config.usersTable, (0, drizzle_orm_1.eq)(this.config.membersTable.user_id, this.config.usersTable.uuid))
27
- .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(this.config.membersTable.entity_id, entityId), (0, drizzle_orm_1.eq)(this.config.usersTable.email, request.email)))
27
+ .innerJoin(this.config.usersTable, (0, drizzle_orm_1.eq)(this.config.membersTable.user_id, this.config.usersTable.firebase_uid))
28
+ .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(this.config.membersTable.entity_id, entityId), (0, drizzle_orm_1.eq)(this.config.usersTable.email, request.email), (0, drizzle_orm_1.eq)(this.config.membersTable.is_active, true)))
28
29
  .limit(1);
29
30
  if (existingMember.length > 0) {
30
- throw new Error('User is already a member of this entity');
31
+ throw new Error('User is already an active member of this entity');
31
32
  }
32
33
  // Check for existing pending invitation
33
34
  const existingInvite = await this.config.db
@@ -126,7 +127,6 @@ class InvitationHelper {
126
127
  displayName: entity.display_name,
127
128
  description: entity.description,
128
129
  avatarUrl: entity.avatar_url,
129
- ownerUserId: entity.owner_user_id,
130
130
  createdAt: entity.created_at?.toISOString() ?? new Date().toISOString(),
131
131
  updatedAt: entity.updated_at?.toISOString() ?? new Date().toISOString(),
132
132
  },
@@ -134,8 +134,10 @@ class InvitationHelper {
134
134
  }
135
135
  /**
136
136
  * Accept an invitation.
137
+ * @param token - The invitation token
138
+ * @param firebaseUid - The Firebase UID of the user accepting
137
139
  */
138
- async acceptInvitation(token, userId) {
140
+ async acceptInvitation(token, firebaseUid) {
139
141
  const invitation = await this.getInvitationByToken(token);
140
142
  if (!invitation) {
141
143
  throw new Error('Invitation not found');
@@ -154,11 +156,12 @@ class InvitationHelper {
154
156
  .where((0, drizzle_orm_1.eq)(this.config.invitationsTable.id, invitation.id));
155
157
  throw new Error('Invitation has expired');
156
158
  }
157
- // Add user as member
159
+ // Add user as member with active status
158
160
  await this.config.db.insert(this.config.membersTable).values({
159
161
  entity_id: invitation.entityId,
160
- user_id: userId,
162
+ user_id: firebaseUid,
161
163
  role: invitation.role,
164
+ is_active: true,
162
165
  });
163
166
  // Mark invitation as accepted
164
167
  await this.config.db
@@ -200,12 +203,14 @@ class InvitationHelper {
200
203
  /**
201
204
  * Process pending invitations for a new user.
202
205
  * Called when a user signs up to auto-accept any pending invitations.
206
+ * @param firebaseUid - The Firebase UID of the new user
207
+ * @param email - The user's email to match invitations
203
208
  */
204
- async processNewUserInvitations(userId, email) {
209
+ async processNewUserInvitations(firebaseUid, email) {
205
210
  const pendingInvitations = await this.getUserPendingInvitations(email);
206
211
  for (const invitation of pendingInvitations) {
207
212
  try {
208
- await this.acceptInvitation(invitation.token, userId);
213
+ await this.acceptInvitation(invitation.token, firebaseUid);
209
214
  }
210
215
  catch (error) {
211
216
  // Log but don't fail - user account creation is more important
@@ -1 +1 @@
1
- {"version":3,"file":"InvitationHelper.js","sourceRoot":"","sources":["../../src/helpers/InvitationHelper.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,6CAA0C;AAC1C,oCAOkB;AAClB,oCAGkB;AAElB;;GAEG;AACH,MAAa,gBAAgB;IAC3B,YAA6B,MAA8B;QAA9B,WAAM,GAAN,MAAM,CAAwB;IAAG,CAAC;IAE/D;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACpB,QAAgB,EAChB,eAAuB,EACvB,OAA4B;QAE5B,oCAAoC;QACpC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE;aACxC,MAAM,EAAE;aACR,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;aAC9B,SAAS,CACR,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,IAAA,gBAAE,EAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAClE;aACA,KAAK,CACJ,IAAA,iBAAG,EACD,IAAA,gBAAE,EAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,EAChD,IAAA,gBAAE,EAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAChD,CACF;aACA,KAAK,CAAC,CAAC,CAAC,CAAC;QAEZ,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAED,wCAAwC;QACxC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE;aACxC,MAAM,EAAE;aACR,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;aAClC,KAAK,CACJ,IAAA,iBAAG,EACD,IAAA,gBAAE,EAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,EACpD,IAAA,gBAAE,EAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EACrD,IAAA,gBAAE,EAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,wBAAgB,CAAC,OAAO,CAAC,CAClE,CACF;aACA,KAAK,CAAC,CAAC,CAAC,CAAC;QAEZ,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,KAAK,GAAG,IAAA,+BAAuB,GAAE,CAAC;QACxC,MAAM,SAAS,GAAG,IAAA,iCAAyB,GAAE,CAAC;QAE9C,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE;aACtC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;aACpC,MAAM,CAAC;YACN,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,wBAAgB,CAAC,OAAO;YAChC,kBAAkB,EAAE,eAAe;YACnC,KAAK;YACL,UAAU,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC;SAChC,CAAC;aACD,SAAS,EAAE,CAAC;QAEf,OAAO,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CAAC,KAAa;QACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE;aACjC,MAAM,EAAE;aACR,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;aAClC,KAAK,CAAC,IAAA,gBAAE,EAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aACpD,KAAK,CAAC,CAAC,CAAC,CAAC;QAEZ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,YAAoB;QACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE;aACjC,MAAM,EAAE;aACR,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;aAClC,KAAK,CAAC,IAAA,gBAAE,EAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;aACxD,KAAK,CAAC,CAAC,CAAC,CAAC;QAEZ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CACxB,QAAgB,EAChB,OAAgC;QAEhC,mBAAmB;QACnB,MAAM,UAAU,GAAG,CAAC,IAAA,gBAAE,EAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1E,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC,IAAA,gBAAE,EAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE;aACvB,MAAM,EAAE;aACR,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;aAClC,KAAK,CAAC,IAAA,iBAAG,EAAC,GAAG,UAAU,CAAC,CAAC;aACzB,QAAQ,EAAE,CAAC;QAEd,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC;QAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,yBAAyB,CAAC,KAAa;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE;aACjC,MAAM,CAAC;YACN,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;YACxC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;SAClC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;aAClC,SAAS,CACR,IAAI,CAAC,MAAM,CAAC,aAAa,EACzB,IAAA,gBAAE,EAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CACzE;aACA,KAAK,CACJ,IAAA,iBAAG,EACD,IAAA,gBAAE,EAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,EAC7C,IAAA,gBAAE,EAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,wBAAgB,CAAC,OAAO,CAAC,CAClE,CACF,CAAC;QAEJ,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9C,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC;YACzC,MAAM,EAAE;gBACN,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,UAAU,EAAE,MAAM,CAAC,WAAW;gBAC9B,UAAU,EAAE,MAAM,CAAC,WAAkB;gBACrC,WAAW,EAAE,MAAM,CAAC,YAAY;gBAChC,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,SAAS,EAAE,MAAM,CAAC,UAAU;gBAC5B,WAAW,EAAE,MAAM,CAAC,aAAa;gBACjC,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACvE,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACxE;SACF,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,MAAc;QAClD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAE1D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,wBAAgB,CAAC,OAAO,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;YAChD,kBAAkB;YAClB,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE;iBACjB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;iBACpC,GAAG,CAAC;gBACH,MAAM,EAAE,wBAAgB,CAAC,OAAO;gBAChC,UAAU,EAAE,IAAI,IAAI,EAAE;aACvB,CAAC;iBACD,KAAK,CAAC,IAAA,gBAAE,EAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;YAE7D,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,qBAAqB;QACrB,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;YAC3D,SAAS,EAAE,UAAU,CAAC,QAAQ;YAC9B,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,UAAU,CAAC,IAAI;SACtB,CAAC,CAAC;QAEH,8BAA8B;QAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE;aACjB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;aACpC,GAAG,CAAC;YACH,MAAM,EAAE,wBAAgB,CAAC,QAAQ;YACjC,WAAW,EAAE,IAAI,IAAI,EAAE;YACvB,UAAU,EAAE,IAAI,IAAI,EAAE;SACvB,CAAC;aACD,KAAK,CAAC,IAAA,gBAAE,EAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,KAAa;QACnC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAE1D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,wBAAgB,CAAC,OAAO,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE;aACjB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;aACpC,GAAG,CAAC;YACH,MAAM,EAAE,wBAAgB,CAAC,QAAQ;YACjC,UAAU,EAAE,IAAI,IAAI,EAAE;SACvB,CAAC;aACD,KAAK,CAAC,IAAA,gBAAE,EAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,YAAoB;QACzC,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE;aACjB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;aACpC,KAAK,CAAC,IAAA,gBAAE,EAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,yBAAyB,CAAC,MAAc,EAAE,KAAa;QAC3D,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAEvE,KAAK,MAAM,UAAU,IAAI,kBAAkB,EAAE,CAAC;YAC5C,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,+DAA+D;gBAC/D,OAAO,CAAC,KAAK,CAAC,oCAAoC,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,oBAAoB;QACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE;aAChC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;aACpC,GAAG,CAAC;YACH,MAAM,EAAE,wBAAgB,CAAC,OAAO;YAChC,UAAU,EAAE,IAAI,IAAI,EAAE;SACvB,CAAC;aACD,KAAK,CACJ,IAAA,iBAAG,EACD,IAAA,gBAAE,EAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,wBAAgB,CAAC,OAAO,CAAC,EACjE,IAAA,gBAAE,EAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,CACxD,CACF;aACA,SAAS,EAAE,CAAC;QAEf,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,MAAW;QACvC,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,QAAQ,EAAE,MAAM,CAAC,SAAS;YAC1B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAkB;YAC/B,MAAM,EAAE,MAAM,CAAC,MAA0B;YACzC,eAAe,EAAE,MAAM,CAAC,kBAAkB;YAC1C,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACvE,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,IAAI;YACrD,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACvE,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACxE,CAAC;IACJ,CAAC;CACF;AA/SD,4CA+SC"}
1
+ {"version":3,"file":"InvitationHelper.js","sourceRoot":"","sources":["../../src/helpers/InvitationHelper.ts"],"names":[],"mappings":"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"}
@@ -16,12 +16,13 @@ class PermissionHelper {
16
16
  }
17
17
  /**
18
18
  * Get a user's role in an entity.
19
+ * Only returns role for active members.
19
20
  */
20
21
  async getUserRole(entityId, userId) {
21
22
  const results = await this.config.db
22
23
  .select({ role: this.config.membersTable.role })
23
24
  .from(this.config.membersTable)
24
- .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(this.config.membersTable.entity_id, entityId), (0, drizzle_orm_1.eq)(this.config.membersTable.user_id, userId)))
25
+ .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(this.config.membersTable.entity_id, entityId), (0, drizzle_orm_1.eq)(this.config.membersTable.user_id, userId), (0, drizzle_orm_1.eq)(this.config.membersTable.is_active, true)))
25
26
  .limit(1);
26
27
  if (results.length === 0) {
27
28
  return null;
@@ -53,24 +54,19 @@ class PermissionHelper {
53
54
  }
54
55
  /**
55
56
  * Check if user is an admin of an entity.
57
+ * Owner also has admin privileges.
56
58
  */
57
59
  async isAdmin(entityId, userId) {
58
60
  const role = await this.getUserRole(entityId, userId);
59
- return role === types_1.EntityRole.ADMIN;
61
+ return role === types_1.EntityRole.ADMIN || role === types_1.EntityRole.OWNER;
60
62
  }
61
63
  /**
62
64
  * Check if user is the owner of an entity.
65
+ * Determined by role = 'owner' in entity_members.
63
66
  */
64
67
  async isOwner(entityId, userId) {
65
- const results = await this.config.db
66
- .select({ ownerUserId: this.config.entitiesTable.owner_user_id })
67
- .from(this.config.entitiesTable)
68
- .where((0, drizzle_orm_1.eq)(this.config.entitiesTable.id, entityId))
69
- .limit(1);
70
- if (results.length === 0) {
71
- return false;
72
- }
73
- return results[0].ownerUserId === userId;
68
+ const role = await this.getUserRole(entityId, userId);
69
+ return role === types_1.EntityRole.OWNER;
74
70
  }
75
71
  /**
76
72
  * Check if user can view an entity.
@@ -184,7 +180,7 @@ class PermissionHelper {
184
180
  */
185
181
  getMinimumRoleForPermission(permission) {
186
182
  // Check from lowest to highest privilege
187
- const roles = [types_1.EntityRole.VIEWER, types_1.EntityRole.MANAGER, types_1.EntityRole.ADMIN];
183
+ const roles = [types_1.EntityRole.MEMBER, types_1.EntityRole.ADMIN, types_1.EntityRole.OWNER];
188
184
  for (const role of roles) {
189
185
  if (types_1.ROLE_PERMISSIONS[role][permission]) {
190
186
  return role;
@@ -11,6 +11,7 @@ export declare class PermissionHelper {
11
11
  constructor(config: EntityHelperConfig);
12
12
  /**
13
13
  * Get a user's role in an entity.
14
+ * Only returns role for active members.
14
15
  */
15
16
  getUserRole(entityId: string, userId: string): Promise<EntityRole | null>;
16
17
  /**
@@ -27,10 +28,12 @@ export declare class PermissionHelper {
27
28
  isMember(entityId: string, userId: string): Promise<boolean>;
28
29
  /**
29
30
  * Check if user is an admin of an entity.
31
+ * Owner also has admin privileges.
30
32
  */
31
33
  isAdmin(entityId: string, userId: string): Promise<boolean>;
32
34
  /**
33
35
  * Check if user is the owner of an entity.
36
+ * Determined by role = 'owner' in entity_members.
34
37
  */
35
38
  isOwner(entityId: string, userId: string): Promise<boolean>;
36
39
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionHelper.d.ts","sourceRoot":"","sources":["../../src/helpers/PermissionHelper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,UAAU,EAGV,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,kBAAkB;IAEvD;;OAEG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAmB7B;;OAEG;IACH,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,iBAAiB;IAI1D;;OAEG;IACG,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAQpC;;OAEG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlE;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKjE;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAcjE;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKvE;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKvE;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBzE;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1E;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB1E;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3E;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3E;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKzE;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1E;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxE;;;OAGG;IACG,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,iBAAiB,EACnC,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;IAchB;;OAEG;IACH,2BAA2B,CACzB,UAAU,EAAE,MAAM,iBAAiB,GAClC,UAAU,GAAG,IAAI;CAYrB"}
1
+ {"version":3,"file":"PermissionHelper.d.ts","sourceRoot":"","sources":["../../src/helpers/PermissionHelper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,UAAU,EAGV,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,kBAAkB;IAEvD;;;OAGG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAoB7B;;OAEG;IACH,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,iBAAiB;IAI1D;;OAEG;IACG,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAQpC;;OAEG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlE;;;OAGG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKjE;;;OAGG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKjE;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKvE;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKvE;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBzE;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1E;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB1E;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3E;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3E;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKzE;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1E;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxE;;;OAGG;IACG,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,iBAAiB,EACnC,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;IAchB;;OAEG;IACH,2BAA2B,CACzB,UAAU,EAAE,MAAM,iBAAiB,GAClC,UAAU,GAAG,IAAI;CAYrB"}