configureGroup
This commit is contained in:
parent
17778e1736
commit
4afcb84e08
2 changed files with 30 additions and 4 deletions
|
|
@ -71,7 +71,7 @@
|
||||||
<input type="hidden" name="groupId" value={currentEntityId} />
|
<input type="hidden" name="groupId" value={currentEntityId} />
|
||||||
|
|
||||||
<div class="flex items-center justify-between">
|
<div class="flex items-center justify-between">
|
||||||
<label for="addUsers">Allow everyone to add users</label>
|
<label for="addMembers">Allow everyone to add users</label>
|
||||||
<input
|
<input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
id="addMembers"
|
id="addMembers"
|
||||||
|
|
@ -82,11 +82,11 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex items-center justify-between">
|
<div class="flex items-center justify-between">
|
||||||
<label for="removeUsers">Allow everyone to remove users</label>
|
<label for="removeMembers">Allow everyone to remove users</label>
|
||||||
<input
|
<input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
id="removeUsers"
|
id="removeMembers"
|
||||||
name="removeUsers"
|
name="removeMembers"
|
||||||
checked={(currentEntity as OverviewGroup).permissions.removeMembers}
|
checked={(currentEntity as OverviewGroup).permissions.removeMembers}
|
||||||
class="h-4 w-4 rounded border-gray-300 text-indigo-600 focus:ring-indigo-500"
|
class="h-4 w-4 rounded border-gray-300 text-indigo-600 focus:ring-indigo-500"
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -426,6 +426,32 @@ export const actions = {
|
||||||
_sendToSubscribers(groupId, { type: 'group', status: 'name-changed' });
|
_sendToSubscribers(groupId, { type: 'group', status: 'name-changed' });
|
||||||
return { success: true };
|
return { success: true };
|
||||||
},
|
},
|
||||||
|
configureGroup: async ({ request, locals }) => {
|
||||||
|
const data = await request.formData();
|
||||||
|
const groupId = data.get('groupId');
|
||||||
|
|
||||||
|
if (typeof groupId !== 'string') {
|
||||||
|
return fail(400, { error: 'Invalid group ID' });
|
||||||
|
}
|
||||||
|
|
||||||
|
const group = await db.select().from(table.group).where(eq(table.group.id, groupId)).limit(1);
|
||||||
|
if (!group.length) return fail(404, { error: 'Group not found' });
|
||||||
|
|
||||||
|
if (group[0].owner !== locals.user!.id) {
|
||||||
|
return fail(403, { error: 'Only owner can configure group' });
|
||||||
|
}
|
||||||
|
await db
|
||||||
|
.update(table.group)
|
||||||
|
.set({
|
||||||
|
addMembers: data.has('addMembers') ? 1 : 0,
|
||||||
|
removeMembers: data.has('removeMembers') ? 1 : 0,
|
||||||
|
changeTitle: data.has('changeTitle') ? 1 : 0
|
||||||
|
})
|
||||||
|
.where(eq(table.group.id, groupId));
|
||||||
|
_sendToSubscribers(group[0].id, { type: 'group', status: 'permission-change' });
|
||||||
|
|
||||||
|
return { success: true };
|
||||||
|
},
|
||||||
|
|
||||||
createServer: async ({ request, locals }) => {
|
createServer: async ({ request, locals }) => {
|
||||||
const data = await request.formData();
|
const data = await request.formData();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue