kempo 4.2.16 → 4.2.18
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/bin/cli.js +21 -4
- package/dist/admin/components/AddGroupControl.js +2 -2
- package/dist/admin/components/AddGroupControl.js.map +1 -1
- package/dist/admin/components/ClearExpiredSessionsControl.js +2 -2
- package/dist/admin/components/ClearExpiredSessionsControl.js.map +1 -1
- package/dist/admin/components/FragmentEditor.js +15 -15
- package/dist/admin/components/FragmentEditor.js.map +1 -1
- package/dist/admin/components/GlobalContentEditor.js +12 -12
- package/dist/admin/components/GlobalContentEditor.js.map +1 -1
- package/dist/admin/components/GroupDeleteSelected.js +2 -2
- package/dist/admin/components/GroupDeleteSelected.js.map +1 -1
- package/dist/admin/components/GroupRemoveRecord.js +2 -2
- package/dist/admin/components/GroupRemoveRecord.js.map +1 -1
- package/dist/admin/components/Monaco.js +1 -1
- package/dist/admin/components/Monaco.js.map +1 -1
- package/dist/admin/components/PageEditor.js +42 -28
- package/dist/admin/components/PageEditor.js.map +1 -1
- package/dist/admin/components/TableRowDelete.js +2 -2
- package/dist/admin/components/TableRowDelete.js.map +1 -1
- package/dist/admin/components/TableRowLink.js +2 -2
- package/dist/admin/components/TableRowLink.js.map +1 -1
- package/dist/admin/components/TemplateEditor.js +18 -18
- package/dist/admin/components/TemplateEditor.js.map +1 -1
- package/dist/admin/components/ValueEditor.js +17 -17
- package/dist/admin/components/ValueEditor.js.map +1 -1
- package/dist/admin/components/tableControls/AddMember.js +2 -2
- package/dist/admin/components/tableControls/AddMember.js.map +1 -1
- package/dist/admin/components/tableControls/AddPermission.js +2 -2
- package/dist/admin/components/tableControls/AddPermission.js.map +1 -1
- package/dist/admin/components/tableControls/InstallExtension.js +2 -2
- package/dist/admin/components/tableControls/InstallExtension.js.map +1 -1
- package/dist/admin/components/tableControls/UninstallExtension.js +2 -2
- package/dist/admin/components/tableControls/UninstallExtension.js.map +1 -1
- package/dist/admin/extensions/index.page.html +49 -15
- package/dist/admin/icons/open_in_new.svg +1 -0
- package/dist/admin/nav.fragment.html +1 -1
- package/dist/kempo/api/admin-globals/DELETE.js +1 -1
- package/dist/kempo/api/admin-globals/DELETE.js.map +1 -1
- package/dist/kempo/api/admin-globals/GET.js +1 -1
- package/dist/kempo/api/admin-globals/GET.js.map +1 -1
- package/dist/kempo/api/admin-globals/POST.js +1 -1
- package/dist/kempo/api/admin-globals/POST.js.map +1 -1
- package/dist/kempo/api/admin-globals/[id]/GET.js +1 -1
- package/dist/kempo/api/admin-globals/[id]/GET.js.map +1 -1
- package/dist/kempo/api/admin-globals/[id]/PUT.js +1 -1
- package/dist/kempo/api/admin-globals/[id]/PUT.js.map +1 -1
- package/dist/kempo/api/admin-globals/[id]/disable/PUT.js +1 -1
- package/dist/kempo/api/admin-globals/[id]/disable/PUT.js.map +1 -1
- package/dist/kempo/api/admin-globals/[id]/enable/PUT.js +1 -1
- package/dist/kempo/api/admin-globals/[id]/enable/PUT.js.map +1 -1
- package/dist/kempo/api/auth/change-password/POST.js +1 -1
- package/dist/kempo/api/auth/change-password/POST.js.map +1 -1
- package/dist/kempo/api/auth/login/email/POST.js +1 -1
- package/dist/kempo/api/auth/login/email/POST.js.map +1 -1
- package/dist/kempo/api/auth/logout/POST.js +1 -1
- package/dist/kempo/api/auth/logout/POST.js.map +1 -1
- package/dist/kempo/api/auth/register/email/POST.js +1 -1
- package/dist/kempo/api/auth/register/email/POST.js.map +1 -1
- package/dist/kempo/api/auth/reset-password/POST.js +1 -1
- package/dist/kempo/api/auth/reset-password/POST.js.map +1 -1
- package/dist/kempo/api/auth/session/GET.js +1 -1
- package/dist/kempo/api/auth/session/GET.js.map +1 -1
- package/dist/kempo/api/auth/verify-email/POST.js +1 -1
- package/dist/kempo/api/auth/verify-email/POST.js.map +1 -1
- package/dist/kempo/api/extensions/DELETE.js +1 -1
- package/dist/kempo/api/extensions/DELETE.js.map +1 -1
- package/dist/kempo/api/extensions/GET.js +1 -1
- package/dist/kempo/api/extensions/GET.js.map +1 -1
- package/dist/kempo/api/extensions/POST.js +1 -1
- package/dist/kempo/api/extensions/POST.js.map +1 -1
- package/dist/kempo/api/extensions/[name]/disable/POST.js +1 -1
- package/dist/kempo/api/extensions/[name]/disable/POST.js.map +1 -1
- package/dist/kempo/api/extensions/[name]/enable/POST.js +1 -1
- package/dist/kempo/api/extensions/[name]/enable/POST.js.map +1 -1
- package/dist/kempo/api/extensions/[name]/update/POST.js +1 -1
- package/dist/kempo/api/extensions/[name]/update/POST.js.map +1 -1
- package/dist/kempo/api/extensions/[name]/update-check/GET.js +1 -1
- package/dist/kempo/api/extensions/[name]/update-check/GET.js.map +1 -1
- package/dist/kempo/api/extensions/available/GET.js +1 -1
- package/dist/kempo/api/extensions/available/GET.js.map +1 -1
- package/dist/kempo/api/extensions/known/GET.js +1 -1
- package/dist/kempo/api/extensions/known/GET.js.map +1 -1
- package/dist/kempo/api/forgot-password/POST.js +1 -1
- package/dist/kempo/api/forgot-password/POST.js.map +1 -1
- package/dist/kempo/api/fragments/DELETE.js +1 -1
- package/dist/kempo/api/fragments/DELETE.js.map +1 -1
- package/dist/kempo/api/fragments/GET.js +1 -1
- package/dist/kempo/api/fragments/GET.js.map +1 -1
- package/dist/kempo/api/fragments/POST.js +1 -1
- package/dist/kempo/api/fragments/POST.js.map +1 -1
- package/dist/kempo/api/fragments/disable/PUT.js +1 -1
- package/dist/kempo/api/fragments/disable/PUT.js.map +1 -1
- package/dist/kempo/api/fragments/enable/PUT.js +1 -1
- package/dist/kempo/api/fragments/enable/PUT.js.map +1 -1
- package/dist/kempo/api/fragments/file/GET.js +1 -1
- package/dist/kempo/api/fragments/file/GET.js.map +1 -1
- package/dist/kempo/api/fragments/file/PATCH.js +1 -1
- package/dist/kempo/api/fragments/file/PATCH.js.map +1 -1
- package/dist/kempo/api/fragments/file/PUT.js +1 -1
- package/dist/kempo/api/fragments/file/PUT.js.map +1 -1
- package/dist/kempo/api/fragments/lock/PUT.js +2 -2
- package/dist/kempo/api/fragments/lock/PUT.js.map +1 -1
- package/dist/kempo/api/globals/DELETE.js +1 -1
- package/dist/kempo/api/globals/DELETE.js.map +1 -1
- package/dist/kempo/api/globals/GET.js +1 -1
- package/dist/kempo/api/globals/GET.js.map +1 -1
- package/dist/kempo/api/globals/POST.js +1 -1
- package/dist/kempo/api/globals/POST.js.map +1 -1
- package/dist/kempo/api/globals/disable/PUT.js +1 -1
- package/dist/kempo/api/globals/disable/PUT.js.map +1 -1
- package/dist/kempo/api/globals/enable/PUT.js +1 -1
- package/dist/kempo/api/globals/enable/PUT.js.map +1 -1
- package/dist/kempo/api/globals/entry/GET.js +1 -1
- package/dist/kempo/api/globals/entry/GET.js.map +1 -1
- package/dist/kempo/api/globals/entry/PUT.js +1 -1
- package/dist/kempo/api/globals/entry/PUT.js.map +1 -1
- package/dist/kempo/api/globals/lock/PUT.js +2 -2
- package/dist/kempo/api/globals/lock/PUT.js.map +1 -1
- package/dist/kempo/api/groups/DELETE.js +1 -1
- package/dist/kempo/api/groups/DELETE.js.map +1 -1
- package/dist/kempo/api/groups/GET.js +1 -1
- package/dist/kempo/api/groups/GET.js.map +1 -1
- package/dist/kempo/api/groups/PATCH.js +1 -1
- package/dist/kempo/api/groups/PATCH.js.map +1 -1
- package/dist/kempo/api/groups/POST.js +1 -1
- package/dist/kempo/api/groups/POST.js.map +1 -1
- package/dist/kempo/api/groups/[name]/GET.js +1 -1
- package/dist/kempo/api/groups/[name]/GET.js.map +1 -1
- package/dist/kempo/api/groups/[name]/members/DELETE.js +1 -1
- package/dist/kempo/api/groups/[name]/members/DELETE.js.map +1 -1
- package/dist/kempo/api/groups/[name]/members/GET.js +1 -1
- package/dist/kempo/api/groups/[name]/members/GET.js.map +1 -1
- package/dist/kempo/api/groups/[name]/members/POST.js +1 -1
- package/dist/kempo/api/groups/[name]/members/POST.js.map +1 -1
- package/dist/kempo/api/groups/[name]/permissions/DELETE.js +1 -1
- package/dist/kempo/api/groups/[name]/permissions/DELETE.js.map +1 -1
- package/dist/kempo/api/groups/[name]/permissions/GET.js +1 -1
- package/dist/kempo/api/groups/[name]/permissions/GET.js.map +1 -1
- package/dist/kempo/api/groups/[name]/permissions/POST.js +1 -1
- package/dist/kempo/api/groups/[name]/permissions/POST.js.map +1 -1
- package/dist/kempo/api/pages/DELETE.js +1 -1
- package/dist/kempo/api/pages/DELETE.js.map +1 -1
- package/dist/kempo/api/pages/GET.js +1 -1
- package/dist/kempo/api/pages/GET.js.map +1 -1
- package/dist/kempo/api/pages/POST.js +1 -1
- package/dist/kempo/api/pages/POST.js.map +1 -1
- package/dist/kempo/api/pages/directories/GET.js +1 -1
- package/dist/kempo/api/pages/directories/GET.js.map +1 -1
- package/dist/kempo/api/pages/disable/PUT.js +1 -1
- package/dist/kempo/api/pages/disable/PUT.js.map +1 -1
- package/dist/kempo/api/pages/enable/PUT.js +1 -1
- package/dist/kempo/api/pages/enable/PUT.js.map +1 -1
- package/dist/kempo/api/pages/file/GET.js +1 -1
- package/dist/kempo/api/pages/file/GET.js.map +1 -1
- package/dist/kempo/api/pages/file/PATCH.js +1 -1
- package/dist/kempo/api/pages/file/PATCH.js.map +1 -1
- package/dist/kempo/api/pages/file/PUT.js +1 -1
- package/dist/kempo/api/pages/file/PUT.js.map +1 -1
- package/dist/kempo/api/pages/lock/PUT.js +2 -2
- package/dist/kempo/api/pages/lock/PUT.js.map +1 -1
- package/dist/kempo/api/pages/search/GET.js +2 -2
- package/dist/kempo/api/pages/search/GET.js.map +1 -1
- package/dist/kempo/api/pages/templates/GET.js +1 -1
- package/dist/kempo/api/pages/templates/GET.js.map +1 -1
- package/dist/kempo/api/permissions/DELETE.js +1 -1
- package/dist/kempo/api/permissions/DELETE.js.map +1 -1
- package/dist/kempo/api/permissions/GET.js +1 -1
- package/dist/kempo/api/permissions/GET.js.map +1 -1
- package/dist/kempo/api/permissions/PATCH.js +1 -1
- package/dist/kempo/api/permissions/PATCH.js.map +1 -1
- package/dist/kempo/api/permissions/POST.js +1 -1
- package/dist/kempo/api/permissions/POST.js.map +1 -1
- package/dist/kempo/api/settings/[owner]/GET.js +1 -1
- package/dist/kempo/api/settings/[owner]/GET.js.map +1 -1
- package/dist/kempo/api/settings/[owner]/[name]/DELETE.js +1 -1
- package/dist/kempo/api/settings/[owner]/[name]/DELETE.js.map +1 -1
- package/dist/kempo/api/settings/[owner]/[name]/GET.js +1 -1
- package/dist/kempo/api/settings/[owner]/[name]/GET.js.map +1 -1
- package/dist/kempo/api/settings/[owner]/[name]/POST.js +1 -1
- package/dist/kempo/api/settings/[owner]/[name]/POST.js.map +1 -1
- package/dist/kempo/api/settings/public/GET.js +1 -1
- package/dist/kempo/api/settings/public/GET.js.map +1 -1
- package/dist/kempo/api/templates/DELETE.js +1 -1
- package/dist/kempo/api/templates/DELETE.js.map +1 -1
- package/dist/kempo/api/templates/GET.js +1 -1
- package/dist/kempo/api/templates/GET.js.map +1 -1
- package/dist/kempo/api/templates/POST.js +1 -1
- package/dist/kempo/api/templates/POST.js.map +1 -1
- package/dist/kempo/api/templates/disable/PUT.js +1 -1
- package/dist/kempo/api/templates/disable/PUT.js.map +1 -1
- package/dist/kempo/api/templates/enable/PUT.js +1 -1
- package/dist/kempo/api/templates/enable/PUT.js.map +1 -1
- package/dist/kempo/api/templates/file/GET.js +1 -1
- package/dist/kempo/api/templates/file/GET.js.map +1 -1
- package/dist/kempo/api/templates/file/PATCH.js +1 -1
- package/dist/kempo/api/templates/file/PATCH.js.map +1 -1
- package/dist/kempo/api/templates/file/PUT.js +1 -1
- package/dist/kempo/api/templates/file/PUT.js.map +1 -1
- package/dist/kempo/api/templates/lock/PUT.js +2 -2
- package/dist/kempo/api/templates/lock/PUT.js.map +1 -1
- package/dist/kempo/api/user/DELETE.js +1 -1
- package/dist/kempo/api/user/DELETE.js.map +1 -1
- package/dist/kempo/api/user/GET.js +1 -1
- package/dist/kempo/api/user/GET.js.map +1 -1
- package/dist/kempo/api/user/PATCH.js +1 -1
- package/dist/kempo/api/user/PATCH.js.map +1 -1
- package/dist/kempo/api/user/[userid]/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/GET.js.map +1 -1
- package/dist/kempo/api/user/[userid]/groups/DELETE.js +1 -1
- package/dist/kempo/api/user/[userid]/groups/DELETE.js.map +1 -1
- package/dist/kempo/api/user/[userid]/groups/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/groups/GET.js.map +1 -1
- package/dist/kempo/api/user/[userid]/groups/POST.js +1 -1
- package/dist/kempo/api/user/[userid]/groups/POST.js.map +1 -1
- package/dist/kempo/api/user/[userid]/permissions/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/permissions/GET.js.map +1 -1
- package/dist/kempo/api/user/[userid]/permissions/all/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/permissions/all/GET.js.map +1 -1
- package/dist/kempo/api/user/[userid]/permissions/list/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/permissions/list/GET.js.map +1 -1
- package/dist/kempo/api/user/[userid]/permissions/some/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/permissions/some/GET.js.map +1 -1
- package/dist/kempo/api/user/[userid]/sessions/DELETE.js +1 -1
- package/dist/kempo/api/user/[userid]/sessions/DELETE.js.map +1 -1
- package/dist/kempo/api/user/[userid]/sessions/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/sessions/GET.js.map +1 -1
- package/dist/kempo/api/user/[userid]/sessions/expired/DELETE.js +1 -1
- package/dist/kempo/api/user/[userid]/sessions/expired/DELETE.js.map +1 -1
- package/dist/kempo/api/user/create/POST.js +1 -1
- package/dist/kempo/api/user/create/POST.js.map +1 -1
- package/dist/kempo/api/user/search/GET.js +1 -1
- package/dist/kempo/api/user/search/GET.js.map +1 -1
- package/dist/kempo/components/LogoutBtn.js +1 -1
- package/dist/kempo/components/LogoutBtn.js.map +1 -1
- package/dist/kempo/components/Menu.js +9 -9
- package/dist/kempo/components/Menu.js.map +1 -1
- package/dist/kempo/components/Permission.js +1 -1
- package/dist/kempo/components/Permission.js.map +1 -1
- package/dist/kempo/components/Role.js +1 -1
- package/dist/kempo/components/Role.js.map +1 -1
- package/dist/kempo/components/UserCreatedAt.js +1 -1
- package/dist/kempo/components/UserCreatedAt.js.map +1 -1
- package/dist/kempo/components/UserEmail.js +1 -1
- package/dist/kempo/components/UserEmail.js.map +1 -1
- package/dist/kempo/components/UserEmailVerified.js +1 -1
- package/dist/kempo/components/UserEmailVerified.js.map +1 -1
- package/dist/kempo/components/UserName.js +1 -1
- package/dist/kempo/components/UserName.js.map +1 -1
- package/dist/kempo/fetch.js +1 -1
- package/dist/kempo/fetch.js.map +1 -1
- package/dist/kempo/sdk.js +1 -1
- package/dist/kempo/sdk.js.map +1 -1
- package/middleware/kempo.js +36 -6
- package/package.json +2 -2
- package/server/utils/extensions/installExtension.js +19 -13
- package/server/utils/extensions/uninstallExtension.js +6 -10
- package/server/utils/pages/deletePage.js +2 -10
- package/dist/admin/accounts/groups/[name]/index.html +0 -518
- package/dist/admin/accounts/groups/index.html +0 -378
- package/dist/admin/accounts/permissions/index.html +0 -397
- package/dist/admin/accounts/users/[id]/index.html +0 -541
- package/dist/admin/accounts/users/index.html +0 -396
- package/dist/admin/content/fragments/edit/index.html +0 -132
- package/dist/admin/content/fragments/index.html +0 -375
- package/dist/admin/content/globals/edit/index.html +0 -132
- package/dist/admin/content/globals/index.html +0 -358
- package/dist/admin/content/pages/edit/index.html +0 -132
- package/dist/admin/content/pages/index.html +0 -509
- package/dist/admin/content/templates/edit/index.html +0 -132
- package/dist/admin/content/templates/index.html +0 -429
- package/dist/admin/extensions/index.html +0 -222
- package/dist/admin/index.html +0 -130
- package/dist/admin/settings/[owner]/[name]/index.html +0 -449
- package/dist/admin/settings/index.html +0 -410
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../server/utils/permissions/updatePermission.js";export default async(e,i)=>{const o=e.cookies.session_token,{name:t,description:n}=e.body;if(!t)return i.status(400).json({error:"Permission name is required"});if(t.startsWith("system:"))return i.status(403).json({error:"System permissions cannot be modified"});const[m,a]=await s(o,"system:permissions:manage");if(m)return i.status(m.code).json({error:m.msg});if(!a)return i.status(403).json({error:"Insufficient permissions"});const u={};void 0!==n&&(u.description=n);const[c,d]=await r(t,u);if(c)return i.status(c.code).json({error:c.msg});i.json(d)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\permissions\PATCH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\permissions\\PATCH.js","names":["currentUserHasPermission","updatePermission","async","request","response","token","cookies","session_token","name","description","body","status","json","error","startsWith","permError","hasPermission","code","msg","updates","undefined","result"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport updatePermission from '../../../../server/utils/permissions/updatePermission.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { name, description } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Permission name is required' });\r\n\t}\r\n\r\n\tif(name.startsWith('system:')){\r\n\t\treturn response.status(403).json({ error: 'System permissions cannot be modified' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:manage');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst updates = {};\r\n\tif(description !== undefined) updates.description = description;\r\n\r\n\tconst [error, result] = await updatePermission(name, updates);\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\permissions\\PATCH.js","names":["currentUserHasPermission","updatePermission","async","request","response","token","cookies","session_token","name","description","body","status","json","error","startsWith","permError","hasPermission","code","msg","updates","undefined","result"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport updatePermission from '../../../../server/utils/permissions/updatePermission.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { name, description } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Permission name is required' });\r\n\t}\r\n\r\n\tif(name.startsWith('system:')){\r\n\t\treturn response.status(403).json({ error: 'System permissions cannot be modified' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:manage');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst updates = {};\r\n\tif(description !== undefined) updates.description = description;\r\n\r\n\tconst [error, result] = await updatePermission(name, updates);\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,0EAC9BC,MAAsB,0EAEdC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,KAAEA,EAAIC,YAAEA,GAAgBN,EAAQO,KAEtC,IAAIF,EACH,OAAOJ,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,gCAG3C,GAAGL,EAAKM,WAAW,WAClB,OAAOV,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,0CAG3C,MAAOE,EAAWC,SAAuBhB,EAAyBK,EAAO,6BAEzE,GAAGU,EACF,OAAOX,EAASO,OAAOI,EAAUE,MAAML,KAAK,CAAEC,MAAOE,EAAUG,MAGhE,IAAIF,EACH,OAAOZ,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMM,EAAU,CAAC,OACEC,IAAhBX,IAA2BU,EAAQV,YAAcA,GAEpD,MAAOI,EAAOQ,SAAgBpB,EAAiBO,EAAMW,GAErD,GAAGN,EACF,OAAOT,EAASO,OAAOE,EAAMI,MAAML,KAAK,CAAEC,MAAOA,EAAMK,MAGxDd,EAASQ,KAAKS","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import r from"../../../../server/utils/permissions/currentUserHasPermission.js";import s from"../../../../server/utils/permissions/createPermission.js";export default async(e,o)=>{const n=e.cookies.session_token,{permissions:t}=e.body;if(!t||!Array.isArray(t)||0===t.length)return o.status(400).json({error:"Permissions array is required"});for(const r of t){if(!r.resource||r.resource.includes(":"))return o.status(400).json({error:`Invalid resource name: "${r.resource}". Cannot be empty or contain ":"`});if(!r.action||r.action.includes(":"))return o.status(400).json({error:`Invalid action: "${r.action}". Cannot be empty or contain ":"`})}const[i,a]=await r(n,"system:permissions:manage");if(i)return o.status(i.code).json({error:i.msg});if(!a)return o.status(403).json({error:"Insufficient permissions"});const c=[],u=[];for(const r of t){const[e,o]=await s({resource:r.resource,action:r.action,description:r.description,owner:"custom"});e?u.push({resource:r.resource,action:r.action,error:e.msg}):c.push(o)}if(u.length>0)return o.status(207).json({created:c,errors:u});o.json({created:c})};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\permissions\POST.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\permissions\\POST.js","names":["currentUserHasPermission","createPermission","async","request","response","token","cookies","session_token","permissions","body","Array","isArray","length","status","json","error","p","resource","includes","action","permError","hasPermission","code","msg","created","errors","result","description","owner","push"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport createPermission from '../../../../server/utils/permissions/createPermission.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { permissions } = request.body;\r\n\r\n\tif(!permissions || !Array.isArray(permissions) || permissions.length === 0){\r\n\t\treturn response.status(400).json({ error: 'Permissions array is required' });\r\n\t}\r\n\r\n\tfor(const p of permissions){\r\n\t\tif(!p.resource || p.resource.includes(':')){\r\n\t\t\treturn response.status(400).json({ error: `Invalid resource name: \"${p.resource}\". Cannot be empty or contain \":\"` });\r\n\t\t}\r\n\t\tif(!p.action || p.action.includes(':')){\r\n\t\t\treturn response.status(400).json({ error: `Invalid action: \"${p.action}\". Cannot be empty or contain \":\"` });\r\n\t\t}\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:manage');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst created = [];\r\n\tconst errors = [];\r\n\r\n\tfor(const p of permissions){\r\n\t\tconst [error, result] = await createPermission({ resource: p.resource, action: p.action, description: p.description, owner: 'custom' });\r\n\t\tif(error){\r\n\t\t\terrors.push({ resource: p.resource, action: p.action, error: error.msg });\r\n\t\t} else {\r\n\t\t\tcreated.push(result);\r\n\t\t}\r\n\t}\r\n\r\n\tif(errors.length > 0){\r\n\t\treturn response.status(207).json({ created, errors });\r\n\t}\r\n\r\n\tresponse.json({ created });\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\permissions\\POST.js","names":["currentUserHasPermission","createPermission","async","request","response","token","cookies","session_token","permissions","body","Array","isArray","length","status","json","error","p","resource","includes","action","permError","hasPermission","code","msg","created","errors","result","description","owner","push"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport createPermission from '../../../../server/utils/permissions/createPermission.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { permissions } = request.body;\r\n\r\n\tif(!permissions || !Array.isArray(permissions) || permissions.length === 0){\r\n\t\treturn response.status(400).json({ error: 'Permissions array is required' });\r\n\t}\r\n\r\n\tfor(const p of permissions){\r\n\t\tif(!p.resource || p.resource.includes(':')){\r\n\t\t\treturn response.status(400).json({ error: `Invalid resource name: \"${p.resource}\". Cannot be empty or contain \":\"` });\r\n\t\t}\r\n\t\tif(!p.action || p.action.includes(':')){\r\n\t\t\treturn response.status(400).json({ error: `Invalid action: \"${p.action}\". Cannot be empty or contain \":\"` });\r\n\t\t}\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:manage');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst created = [];\r\n\tconst errors = [];\r\n\r\n\tfor(const p of permissions){\r\n\t\tconst [error, result] = await createPermission({ resource: p.resource, action: p.action, description: p.description, owner: 'custom' });\r\n\t\tif(error){\r\n\t\t\terrors.push({ resource: p.resource, action: p.action, error: error.msg });\r\n\t\t} else {\r\n\t\t\tcreated.push(result);\r\n\t\t}\r\n\t}\r\n\r\n\tif(errors.length > 0){\r\n\t\treturn response.status(207).json({ created, errors });\r\n\t}\r\n\r\n\tresponse.json({ created });\r\n};\r\n"],"mappings":"OAAOA,MAA8B,0EAC9BC,MAAsB,0EAEdC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,YAAEA,GAAgBL,EAAQM,KAEhC,IAAID,IAAgBE,MAAMC,QAAQH,IAAuC,IAAvBA,EAAYI,OAC7D,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,kCAG3C,IAAI,MAAMC,KAAKR,EAAY,CAC1B,IAAIQ,EAAEC,UAAYD,EAAEC,SAASC,SAAS,KACrC,OAAOd,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,2BAA2BC,EAAEC,8CAExE,IAAID,EAAEG,QAAUH,EAAEG,OAAOD,SAAS,KACjC,OAAOd,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,oBAAoBC,EAAEG,2CAElE,CAEA,MAAOC,EAAWC,SAAuBrB,EAAyBK,EAAO,6BAEzE,GAAGe,EACF,OAAOhB,EAASS,OAAOO,EAAUE,MAAMR,KAAK,CAAEC,MAAOK,EAAUG,MAGhE,IAAIF,EACH,OAAOjB,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMS,EAAU,GACVC,EAAS,GAEf,IAAI,MAAMT,KAAKR,EAAY,CAC1B,MAAOO,EAAOW,SAAgBzB,EAAiB,CAAEgB,SAAUD,EAAEC,SAAUE,OAAQH,EAAEG,OAAQQ,YAAaX,EAAEW,YAAaC,MAAO,WACzHb,EACFU,EAAOI,KAAK,CAAEZ,SAAUD,EAAEC,SAAUE,OAAQH,EAAEG,OAAQJ,MAAOA,EAAMQ,MAEnEC,EAAQK,KAAKH,EAEf,CAEA,GAAGD,EAAOb,OAAS,EAClB,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEU,UAASC,WAG7CrB,EAASU,KAAK,CAAEU","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../server/utils/settings/listSettings.js";export default async(e,t)=>{const i=e.cookies.session_token,[o,n]=await s(i,"system:settings:read");if(o)return t.status(o.code).json({error:o.msg});if(!n)return t.status(403).json({error:"Insufficient permissions"});const{owner:a}=e.params,m=parseInt(e.query.limit)||50,u=parseInt(e.query.offset)||0,[f,c]=await r({owner:a,limit:m,offset:u});if(f)return t.status(f.code).json({error:f.msg});t.json(c)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\settings\[owner]\GET.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\settings\\[owner]\\GET.js","names":["currentUserHasPermission","listSettings","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","owner","params","limit","parseInt","query","offset","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listSettings from '../../../../../server/utils/settings/listSettings.js';\r\n\r\nexport default async (request, response) => {\r\n const token = request.cookies.session_token;\r\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:settings:read');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n\r\n const { owner } = request.params;\r\n const limit = parseInt(request.query.limit) || 50;\r\n const offset = parseInt(request.query.offset) || 0;\r\n const [error, data] = await listSettings({ owner, limit, offset });\r\n\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n response.json(data);\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\settings\\[owner]\\GET.js","names":["currentUserHasPermission","listSettings","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","owner","params","limit","parseInt","query","offset","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listSettings from '../../../../../server/utils/settings/listSettings.js';\r\n\r\nexport default async (request, response) => {\r\n const token = request.cookies.session_token;\r\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:settings:read');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n\r\n const { owner } = request.params;\r\n const limit = parseInt(request.query.limit) || 50;\r\n const offset = parseInt(request.query.offset) || 0;\r\n const [error, data] = await listSettings({ owner, limit, offset });\r\n\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n response.json(data);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,6EAC9BC,MAAkB,sEAEVC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,EAAyBK,EAAO,wBAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,MAAEA,GAAUZ,EAAQa,OACpBC,EAAQC,SAASf,EAAQgB,MAAMF,QAAU,GACzCG,EAASF,SAASf,EAAQgB,MAAMC,SAAW,GAC1CP,EAAOQ,SAAcpB,EAAa,CAAEc,QAAOE,QAAOG,WAEzD,GAAGP,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKS","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../../../server/utils/auth/getSession.js";import t from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../../server/utils/settings/deleteSetting.js";export default async(r,o)=>{const n=r.cookies.session_token,[i,a]=await s({token:n});if(i||!a)return o.status(401).json({error:"Unauthorized"});const[m,u]=await t(n,"system:custom-settings:manage");if(m||!u)return o.status(403).json({error:"Forbidden: Cannot delete settings"});const{owner:c,name:d}=r.params,[f,g]=await e(c,d);if(f)return o.status(f.code).json({error:f.msg});o.json(g)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\settings\[owner]\[name]\DELETE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\settings\\[owner]\\[name]\\DELETE.js","names":["getSession","currentUserHasPermission","deleteSetting","async","request","response","sessionToken","cookies","session_token","sessionError","session","token","status","json","error","permError","hasPermission","owner","name","params","result","code","msg"],"sources":["0"],"sourcesContent":["import getSession from '../../../../../../server/utils/auth/getSession.js';\r\nimport currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport deleteSetting from '../../../../../../server/utils/settings/deleteSetting.js';\r\n\r\nexport default async (request, response) => {\r\n const sessionToken = request.cookies.session_token;\r\n const [sessionError, session] = await getSession({ token: sessionToken });\r\n if(sessionError || !session){\r\n return response.status(401).json({ error: 'Unauthorized' });\r\n }\r\n\r\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:custom-settings:manage');\r\n if(permError || !hasPermission){\r\n return response.status(403).json({ error: 'Forbidden: Cannot delete settings' });\r\n }\r\n\r\n const { owner, name } = request.params;\r\n\r\n const [error, result] = await deleteSetting(owner, name);\r\n\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n response.json(result);\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\settings\\[owner]\\[name]\\DELETE.js","names":["getSession","currentUserHasPermission","deleteSetting","async","request","response","sessionToken","cookies","session_token","sessionError","session","token","status","json","error","permError","hasPermission","owner","name","params","result","code","msg"],"sources":["0"],"sourcesContent":["import getSession from '../../../../../../server/utils/auth/getSession.js';\r\nimport currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport deleteSetting from '../../../../../../server/utils/settings/deleteSetting.js';\r\n\r\nexport default async (request, response) => {\r\n const sessionToken = request.cookies.session_token;\r\n const [sessionError, session] = await getSession({ token: sessionToken });\r\n if(sessionError || !session){\r\n return response.status(401).json({ error: 'Unauthorized' });\r\n }\r\n\r\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:custom-settings:manage');\r\n if(permError || !hasPermission){\r\n return response.status(403).json({ error: 'Forbidden: Cannot delete settings' });\r\n }\r\n\r\n const { owner, name } = request.params;\r\n\r\n const [error, result] = await deleteSetting(owner, name);\r\n\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n response.json(result);\r\n};\r\n"],"mappings":"OAAOA,MAAgB,2DAChBC,MAA8B,gFAC9BC,MAAmB,0EAEXC,MAAOC,EAASC,KAC7B,MAAMC,EAAeF,EAAQG,QAAQC,eAC9BC,EAAcC,SAAiBV,EAAW,CAAEW,MAAOL,IAC1D,GAAGG,IAAiBC,EAClB,OAAOL,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,iBAG5C,MAAOC,EAAWC,SAAuBf,EAAyBK,EAAc,iCAChF,GAAGS,IAAcC,EACf,OAAOX,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,sCAG5C,MAAMG,MAAEA,EAAKC,KAAEA,GAASd,EAAQe,QAEzBL,EAAOM,SAAgBlB,EAAce,EAAOC,GAEnD,GAAGJ,EACD,OAAOT,EAASO,OAAOE,EAAMO,MAAMR,KAAK,CAAEC,MAAOA,EAAMQ,MAGzDjB,EAASQ,KAAKO","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../../../server/utils/auth/getSession.js";import t from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../../server/utils/settings/getSettingWithMetadata.js";export default async(e,o)=>{const{owner:i,name:n}=e.params,[a,u]=await r(i,n);if(a)return o.status(a.code).json({error:a.msg});if(!u.isPublic){const r=e.cookies.session_token,[i,n]=await s({token:r});if(i||!n)return o.status(401).json({error:"Unauthorized"});const[a,u]=await t(r,"system:settings:read");if(a||!u)return o.status(403).json({error:"Forbidden"})}o.json(u)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\settings\[owner]\[name]\GET.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\settings\\[owner]\\[name]\\GET.js","names":["getSession","currentUserHasPermission","getSettingWithMetadata","async","request","response","owner","name","params","error","setting","status","code","json","msg","isPublic","sessionToken","cookies","session_token","sessionError","session","token","permError","hasPermission"],"sources":["0"],"sourcesContent":["import getSession from '../../../../../../server/utils/auth/getSession.js';\r\nimport currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getSettingWithMetadata from '../../../../../../server/utils/settings/getSettingWithMetadata.js';\r\n\r\nexport default async (request, response) => {\r\n const { owner, name } = request.params;\r\n\r\n const [error, setting] = await getSettingWithMetadata(owner, name);\r\n\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n if(!setting.isPublic){\r\n const sessionToken = request.cookies.session_token;\r\n const [sessionError, session] = await getSession({ token: sessionToken });\r\n if(sessionError || !session){\r\n return response.status(401).json({ error: 'Unauthorized' });\r\n }\r\n\r\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:settings:read');\r\n if(permError || !hasPermission){\r\n return response.status(403).json({ error: 'Forbidden' });\r\n }\r\n }\r\n\r\n response.json(setting);\r\n};\r\n\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\settings\\[owner]\\[name]\\GET.js","names":["getSession","currentUserHasPermission","getSettingWithMetadata","async","request","response","owner","name","params","error","setting","status","code","json","msg","isPublic","sessionToken","cookies","session_token","sessionError","session","token","permError","hasPermission"],"sources":["0"],"sourcesContent":["import getSession from '../../../../../../server/utils/auth/getSession.js';\r\nimport currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getSettingWithMetadata from '../../../../../../server/utils/settings/getSettingWithMetadata.js';\r\n\r\nexport default async (request, response) => {\r\n const { owner, name } = request.params;\r\n\r\n const [error, setting] = await getSettingWithMetadata(owner, name);\r\n\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n if(!setting.isPublic){\r\n const sessionToken = request.cookies.session_token;\r\n const [sessionError, session] = await getSession({ token: sessionToken });\r\n if(sessionError || !session){\r\n return response.status(401).json({ error: 'Unauthorized' });\r\n }\r\n\r\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:settings:read');\r\n if(permError || !hasPermission){\r\n return response.status(403).json({ error: 'Forbidden' });\r\n }\r\n }\r\n\r\n response.json(setting);\r\n};\r\n\r\n"],"mappings":"OAAOA,MAAgB,2DAChBC,MAA8B,gFAC9BC,MAA4B,mFAEpBC,MAAOC,EAASC,KAC7B,MAAMC,MAAEA,EAAKC,KAAEA,GAASH,EAAQI,QAEzBC,EAAOC,SAAiBR,EAAuBI,EAAOC,GAE7D,GAAGE,EACD,OAAOJ,EAASM,OAAOF,EAAMG,MAAMC,KAAK,CAAEJ,MAAOA,EAAMK,MAGzD,IAAIJ,EAAQK,SAAS,CACnB,MAAMC,EAAeZ,EAAQa,QAAQC,eAC9BC,EAAcC,SAAiBpB,EAAW,CAAEqB,MAAOL,IAC1D,GAAGG,IAAiBC,EAClB,OAAOf,EAASM,OAAO,KAAKE,KAAK,CAAEJ,MAAO,iBAG5C,MAAOa,EAAWC,SAAuBtB,EAAyBe,EAAc,wBAChF,GAAGM,IAAcC,EACf,OAAOlB,EAASM,OAAO,KAAKE,KAAK,CAAEJ,MAAO,aAE9C,CAEAJ,EAASQ,KAAKH","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../../../server/utils/auth/getSession.js";import t from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../../server/utils/settings/setSetting.js";import r from"../../../../../../server/utils/settings/getSettingWithMetadata.js";export default async(o,n)=>{const i=o.cookies.session_token,[a,u]=await s({token:i});if(a||!u)return n.status(401).json({error:"Unauthorized"});const{owner:m,name:c}=o.params;if("system"===m){const[s,e]=await t(i,"system:settings:update");if(s||!e)return n.status(403).json({error:"Forbidden: Cannot modify system settings"})}else if("custom"===m){const[s,e]=await t(i,"system:custom-settings:manage");if(s||!e)return n.status(403).json({error:"Forbidden: Cannot manage custom settings"})}else{const[s,e]=await t(i,"system:extension:configure");if(s||!e)return n.status(403).json({error:"Forbidden: Cannot modify extension settings"})}const{value:d,type:f,isPublic:g,description:j}=o.body;if(void 0===d)return n.status(400).json({error:"Value is required"});if("custom"!==m){const[s,t]=await r(m,c);if(s)return n.status(s.code).json({error:s.msg});const[o,i]=await e(m,c,d,t.type,t.isPublic,t.description);return o?n.status(o.code).json({error:o.msg}):n.json(i)}const[p,l]=await e(m,c,d,f,g,j);if(p)return n.status(p.code).json({error:p.msg});n.json(l)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\settings\[owner]\[name]\POST.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\settings\\[owner]\\[name]\\POST.js","names":["getSession","currentUserHasPermission","setSetting","getSettingWithMetadata","async","request","response","sessionToken","cookies","session_token","sessionError","session","token","status","json","error","owner","name","params","permError","hasPermission","value","type","isPublic","description","body","undefined","existingError","existing","code","msg","result"],"sources":["0"],"sourcesContent":["import getSession from '../../../../../../server/utils/auth/getSession.js';\r\nimport currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport setSetting from '../../../../../../server/utils/settings/setSetting.js';\r\nimport getSettingWithMetadata from '../../../../../../server/utils/settings/getSettingWithMetadata.js';\r\n\r\nexport default async (request, response) => {\r\n const sessionToken = request.cookies.session_token;\r\n const [sessionError, session] = await getSession({ token: sessionToken });\r\n if(sessionError || !session){\r\n return response.status(401).json({ error: 'Unauthorized' });\r\n }\r\n\r\n const { owner, name } = request.params;\r\n\r\n if(owner === 'system'){\r\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:settings:update');\r\n if(permError || !hasPermission){\r\n return response.status(403).json({ error: 'Forbidden: Cannot modify system settings' });\r\n }\r\n } else if(owner === 'custom'){\r\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:custom-settings:manage');\r\n if(permError || !hasPermission){\r\n return response.status(403).json({ error: 'Forbidden: Cannot manage custom settings' });\r\n }\r\n } else {\r\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:extension:configure');\r\n if(permError || !hasPermission){\r\n return response.status(403).json({ error: 'Forbidden: Cannot modify extension settings' });\r\n }\r\n }\r\n\r\n const { value, type, isPublic, description } = request.body;\r\n\r\n if(value === undefined){\r\n return response.status(400).json({ error: 'Value is required' });\r\n }\r\n\r\n /*\r\n System and extension settings: only value can change, metadata is preserved\r\n */\r\n\r\n if(owner !== 'custom'){\r\n const [existingError, existing] = await getSettingWithMetadata(owner, name);\r\n if(existingError){\r\n return response.status(existingError.code).json({ error: existingError.msg });\r\n }\r\n const [error, result] = await setSetting(owner, name, value, existing.type, existing.isPublic, existing.description);\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n return response.json(result);\r\n }\r\n\r\n const [error, result] = await setSetting(owner, name, value, type, isPublic, description);\r\n\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n response.json(result);\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\settings\\[owner]\\[name]\\POST.js","names":["getSession","currentUserHasPermission","setSetting","getSettingWithMetadata","async","request","response","sessionToken","cookies","session_token","sessionError","session","token","status","json","error","owner","name","params","permError","hasPermission","value","type","isPublic","description","body","undefined","existingError","existing","code","msg","result"],"sources":["0"],"sourcesContent":["import getSession from '../../../../../../server/utils/auth/getSession.js';\r\nimport currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport setSetting from '../../../../../../server/utils/settings/setSetting.js';\r\nimport getSettingWithMetadata from '../../../../../../server/utils/settings/getSettingWithMetadata.js';\r\n\r\nexport default async (request, response) => {\r\n const sessionToken = request.cookies.session_token;\r\n const [sessionError, session] = await getSession({ token: sessionToken });\r\n if(sessionError || !session){\r\n return response.status(401).json({ error: 'Unauthorized' });\r\n }\r\n\r\n const { owner, name } = request.params;\r\n\r\n if(owner === 'system'){\r\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:settings:update');\r\n if(permError || !hasPermission){\r\n return response.status(403).json({ error: 'Forbidden: Cannot modify system settings' });\r\n }\r\n } else if(owner === 'custom'){\r\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:custom-settings:manage');\r\n if(permError || !hasPermission){\r\n return response.status(403).json({ error: 'Forbidden: Cannot manage custom settings' });\r\n }\r\n } else {\r\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:extension:configure');\r\n if(permError || !hasPermission){\r\n return response.status(403).json({ error: 'Forbidden: Cannot modify extension settings' });\r\n }\r\n }\r\n\r\n const { value, type, isPublic, description } = request.body;\r\n\r\n if(value === undefined){\r\n return response.status(400).json({ error: 'Value is required' });\r\n }\r\n\r\n /*\r\n System and extension settings: only value can change, metadata is preserved\r\n */\r\n\r\n if(owner !== 'custom'){\r\n const [existingError, existing] = await getSettingWithMetadata(owner, name);\r\n if(existingError){\r\n return response.status(existingError.code).json({ error: existingError.msg });\r\n }\r\n const [error, result] = await setSetting(owner, name, value, existing.type, existing.isPublic, existing.description);\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n return response.json(result);\r\n }\r\n\r\n const [error, result] = await setSetting(owner, name, value, type, isPublic, description);\r\n\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n response.json(result);\r\n};\r\n"],"mappings":"OAAOA,MAAgB,2DAChBC,MAA8B,gFAC9BC,MAAgB,+DAChBC,MAA4B,mFAEpBC,MAAOC,EAASC,KAC7B,MAAMC,EAAeF,EAAQG,QAAQC,eAC9BC,EAAcC,SAAiBX,EAAW,CAAEY,MAAOL,IAC1D,GAAGG,IAAiBC,EAClB,OAAOL,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,iBAG5C,MAAMC,MAAEA,EAAKC,KAAEA,GAASZ,EAAQa,OAEhC,GAAa,WAAVF,EAAmB,CACpB,MAAOG,EAAWC,SAAuBnB,EAAyBM,EAAc,0BAChF,GAAGY,IAAcC,EACf,OAAOd,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,4CAE9C,MAAO,GAAa,WAAVC,EAAmB,CAC3B,MAAOG,EAAWC,SAAuBnB,EAAyBM,EAAc,iCAChF,GAAGY,IAAcC,EACf,OAAOd,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,4CAE9C,KAAO,CACL,MAAOI,EAAWC,SAAuBnB,EAAyBM,EAAc,8BAChF,GAAGY,IAAcC,EACf,OAAOd,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,+CAE9C,CAEA,MAAMM,MAAEA,EAAKC,KAAEA,EAAIC,SAAEA,EAAQC,YAAEA,GAAgBnB,EAAQoB,KAEvD,QAAaC,IAAVL,EACD,OAAOf,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,sBAO5C,GAAa,WAAVC,EAAmB,CACpB,MAAOW,EAAeC,SAAkBzB,EAAuBa,EAAOC,GACtE,GAAGU,EACD,OAAOrB,EAASO,OAAOc,EAAcE,MAAMf,KAAK,CAAEC,MAAOY,EAAcG,MAEzE,MAAOf,EAAOgB,SAAgB7B,EAAWc,EAAOC,EAAMI,EAAOO,EAASN,KAAMM,EAASL,SAAUK,EAASJ,aACxG,OAAGT,EACMT,EAASO,OAAOE,EAAMc,MAAMf,KAAK,CAAEC,MAAOA,EAAMe,MAElDxB,EAASQ,KAAKiB,EACvB,CAEA,MAAOhB,EAAOgB,SAAgB7B,EAAWc,EAAOC,EAAMI,EAAOC,EAAMC,EAAUC,GAE7E,GAAGT,EACD,OAAOT,EAASO,OAAOE,EAAMc,MAAMf,KAAK,CAAEC,MAAOA,EAAMe,MAGzDxB,EAASQ,KAAKiB","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import e from"../../../../../server/utils/settings/getPublicSettings.js";export default async t=>{const[s,n]=await e();return s?new Response(JSON.stringify({error:s.msg}),{status:s.code,headers:{"Content-Type":"application/json"}}):new Response(JSON.stringify(n),{headers:{"Content-Type":"application/json"}})};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\settings\public\GET.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\settings\\public\\GET.js","names":["getPublicSettings","async","request","error","settings","Response","JSON","stringify","msg","status","code","headers"],"sources":["0"],"sourcesContent":["import getPublicSettings from '../../../../../server/utils/settings/getPublicSettings.js';\r\n\r\nexport default async (request) => {\r\n const [error, settings] = await getPublicSettings();\r\n\r\n if(error){\r\n return new Response(JSON.stringify({ error: error.msg }), {\r\n status: error.code,\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n }\r\n\r\n return new Response(JSON.stringify(settings), {\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\settings\\public\\GET.js","names":["getPublicSettings","async","request","error","settings","Response","JSON","stringify","msg","status","code","headers"],"sources":["0"],"sourcesContent":["import getPublicSettings from '../../../../../server/utils/settings/getPublicSettings.js';\r\n\r\nexport default async (request) => {\r\n const [error, settings] = await getPublicSettings();\r\n\r\n if(error){\r\n return new Response(JSON.stringify({ error: error.msg }), {\r\n status: error.code,\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n }\r\n\r\n return new Response(JSON.stringify(settings), {\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n};\r\n"],"mappings":"OAAOA,MAAuB,2EAEfC,MAAOC,IACpB,MAAOC,EAAOC,SAAkBJ,IAEhC,OAAGG,EACM,IAAIE,SAASC,KAAKC,UAAU,CAAEJ,MAAOA,EAAMK,MAAQ,CACxDC,OAAQN,EAAMO,KACdC,QAAS,CAAE,eAAgB,sBAIxB,IAAIN,SAASC,KAAKC,UAAUH,GAAW,CAC5CO,QAAS,CAAE,eAAgB","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{resolve}from"path";import
|
|
1
|
+
import{resolve as e}from"path";import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../server/utils/templates/getTemplateMetadata.js";import r from"../../../../server/utils/templates/deleteTemplate.js";const o=e(import.meta.dirname,"../../../../app-public");export default async(e,i)=>{const n=e.cookies.session_token,[a,m]=await s(n,"system:pages:delete");if(a)return i.status(a.code).json({error:a.msg});if(!m)return i.status(403).json({error:"Insufficient permissions"});const{files:l}=e.body;if(!l?.length)return i.status(400).json({error:"No files specified"});for(const e of l){const[s,r]=await t({rootDir:o,file:e});if(!s&&r.locked)return i.status(403).json({error:`Cannot delete locked template: ${e}`})}const[f,p]=await r({rootDir:o,files:l});if(f)return i.status(f.code).json({error:f.msg});i.json(p)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\DELETE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\templates\\DELETE.js","names":["resolve","currentUserHasPermission","deleteTemplate","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","files","body","length","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport deleteTemplate from '../../../../server/utils/templates/deleteTemplate.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:delete');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { files } = request.body;\r\n\r\n\tif(!files?.length){\r\n\t\treturn response.status(400).json({ error: 'No files specified' });\r\n\t}\r\n\r\n\tconst [error, data] = await deleteTemplate({ rootDir, files });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\templates\\DELETE.js","names":["resolve","currentUserHasPermission","getTemplateMetadata","deleteTemplate","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","files","body","length","file","metaError","metadata","locked","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getTemplateMetadata from '../../../../server/utils/templates/getTemplateMetadata.js';\r\nimport deleteTemplate from '../../../../server/utils/templates/deleteTemplate.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:delete');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { files } = request.body;\r\n\r\n\tif(!files?.length){\r\n\t\treturn response.status(400).json({ error: 'No files specified' });\r\n\t}\r\n\r\n\tfor(const file of files){\r\n\t\tconst [metaError, metadata] = await getTemplateMetadata({ rootDir, file });\r\n\t\tif(!metaError && metadata.locked){\r\n\t\t\treturn response.status(403).json({ error: `Cannot delete locked template: ${file}` });\r\n\t\t}\r\n\t}\r\n\r\n\tconst [error, data] = await deleteTemplate({ rootDir, files });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,0EAC9BC,MAAyB,mEACzBC,MAAoB,uDAE3B,MAAMC,EAAUJ,cAAoBK,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBZ,EAAyBQ,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,MAAEA,GAAUZ,EAAQa,KAE1B,IAAID,GAAOE,OACV,OAAOb,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,uBAG3C,IAAI,MAAMK,KAAQH,EAAM,CACvB,MAAOI,EAAWC,SAAkBtB,EAAoB,CAAEE,UAASkB,SACnE,IAAIC,GAAaC,EAASC,OACzB,OAAOjB,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAAkCK,KAE9E,CAEA,MAAOL,EAAOS,SAAcvB,EAAe,CAAEC,UAASe,UAEtD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKU","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{resolve}from"path";import
|
|
1
|
+
import{resolve as s}from"path";import r from"../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../server/utils/pages/listTemplates.js";const t=s(import.meta.dirname,"../../../../app-public");export default async(s,o)=>{const i=s.cookies.session_token,[n,a]=await r(i,"system:pages:read");if(n)return o.status(n.code).json({error:n.msg});if(!a)return o.status(403).json({error:"Insufficient permissions"});const[m,p]=await e({rootDir:t});if(m)return o.status(m.code).json({error:m.msg});o.json(p)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\GET.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\templates\\GET.js","names":["resolve","currentUserHasPermission","listTemplates","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listTemplates from '../../../../server/utils/pages/listTemplates.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, data] = await listTemplates({ rootDir });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\templates\\GET.js","names":["resolve","currentUserHasPermission","listTemplates","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listTemplates from '../../../../server/utils/pages/listTemplates.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, data] = await listTemplates({ rootDir });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,0EAC9BC,MAAmB,kDAE1B,MAAMC,EAAUH,cAAoBI,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOE,SAAchB,EAAc,CAAEC,YAE5C,GAAGa,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKG","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{resolve}from"path";import
|
|
1
|
+
import{resolve as r}from"path";import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../server/utils/auth/getSession.js";import t from"../../../../server/utils/templates/createTemplate.js";const o=r(import.meta.dirname,"../../../../app-public");export default async(r,i)=>{const a=r.cookies.session_token,[n,m]=await s(a,"system:pages:create");if(n)return i.status(n.code).json({error:n.msg});if(!m)return i.status(403).json({error:"Insufficient permissions"});const{directory:u,name:p,copyFrom:c}=r.body;if(!p)return i.status(400).json({error:"Template name is required"});const[,f]=await e({token:a}),d=f?.user?.name||"",[j,l]=await t({rootDir:o,directory:u,name:p,author:d,copyFrom:c});if(j)return i.status(j.code).json({error:j.msg});i.status(201).json(l)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\POST.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\templates\\POST.js","names":["resolve","currentUserHasPermission","getSession","createTemplate","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","directory","name","copyFrom","body","sessionData","author","user","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getSession from '../../../../server/utils/auth/getSession.js';\r\nimport createTemplate from '../../../../server/utils/templates/createTemplate.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:create');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { directory, name, copyFrom } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Template name is required' });\r\n\t}\r\n\r\n\tconst [, sessionData] = await getSession({ token });\r\n\tconst author = sessionData?.user?.name || '';\r\n\r\n\tconst [error, data] = await createTemplate({ rootDir, directory, name, author, copyFrom });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.status(201).json(data);\r\n};\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\templates\\POST.js","names":["resolve","currentUserHasPermission","getSession","createTemplate","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","directory","name","copyFrom","body","sessionData","author","user","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getSession from '../../../../server/utils/auth/getSession.js';\r\nimport createTemplate from '../../../../server/utils/templates/createTemplate.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:create');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { directory, name, copyFrom } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Template name is required' });\r\n\t}\r\n\r\n\tconst [, sessionData] = await getSession({ token });\r\n\tconst author = sessionData?.user?.name || '';\r\n\r\n\tconst [error, data] = await createTemplate({ rootDir, directory, name, author, copyFrom });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.status(201).json(data);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,0EAC9BC,MAAgB,qDAChBC,MAAoB,uDAE3B,MAAMC,EAAUJ,cAAoBK,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBZ,EAAyBQ,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,UAAEA,EAASC,KAAEA,EAAIC,SAAEA,GAAad,EAAQe,KAE9C,IAAIF,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,8BAG3C,MAAO,CAAEM,SAAqBrB,EAAW,CAAEO,UACrCe,EAASD,GAAaE,MAAML,MAAQ,IAEnCH,EAAOS,SAAcvB,EAAe,CAAEC,UAASe,YAAWC,OAAMI,SAAQH,aAE/E,GAAGJ,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASM,OAAO,KAAKE,KAAKU","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{resolve}from"path";import
|
|
1
|
+
import{resolve as e}from"path";import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../server/utils/templates/getTemplateMetadata.js";import r from"../../../../../server/utils/templates/disableTemplate.js";const o=e(import.meta.dirname,"../../../../../app-public");export default async(e,i)=>{const a=e.cookies.session_token,[n,m]=await s(a,"system:pages:update");if(n)return i.status(n.code).json({error:n.msg});if(!m)return i.status(403).json({error:"Insufficient permissions"});const{file:p}=e.body||{};if(!p)return i.status(400).json({error:"File path is required"});const[u,l]=await t({rootDir:o,file:p});if(!u&&l.locked)return i.status(403).json({error:"Cannot disable a locked template"});const[f,c]=await r({rootDir:o,file:p});if(f)return i.status(f.code).json({error:f.msg});i.json(c)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\disable\PUT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\templates\\disable\\PUT.js","names":["resolve","currentUserHasPermission","disableTemplate","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","body","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport disableTemplate from '../../../../../server/utils/templates/disableTemplate.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.body || {};\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, result] = await disableTemplate({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\templates\\disable\\PUT.js","names":["resolve","currentUserHasPermission","getTemplateMetadata","disableTemplate","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","body","metaError","metadata","locked","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getTemplateMetadata from '../../../../../server/utils/templates/getTemplateMetadata.js';\r\nimport disableTemplate from '../../../../../server/utils/templates/disableTemplate.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.body || {};\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [metaError, metadata] = await getTemplateMetadata({ rootDir, file });\r\n\tif(!metaError && metadata.locked){\r\n\t\treturn response.status(403).json({ error: 'Cannot disable a locked template' });\r\n\t}\r\n\r\n\tconst [error, result] = await disableTemplate({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,6EAC9BC,MAAyB,sEACzBC,MAAqB,2DAE5B,MAAMC,EAAUJ,cAAoBK,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBZ,EAAyBQ,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAAQ,CAAC,EAElC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOI,EAAWC,SAAkBpB,EAAoB,CAAEE,UAASe,SACnE,IAAIE,GAAaC,EAASC,OACzB,OAAOf,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,qCAG3C,MAAOA,EAAOO,SAAgBrB,EAAgB,CAAEC,UAASe,SAEzD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKQ","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{resolve}from"path";import
|
|
1
|
+
import{resolve as s}from"path";import r from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/templates/enableTemplate.js";const t=s(import.meta.dirname,"../../../../../app-public");export default async(s,o)=>{const i=s.cookies.session_token,[n,a]=await r(i,"system:pages:update");if(n)return o.status(n.code).json({error:n.msg});if(!a)return o.status(403).json({error:"Insufficient permissions"});const{file:m}=s.body||{};if(!m)return o.status(400).json({error:"File path is required"});const[p,u]=await e({rootDir:t,file:m});if(p)return o.status(p.code).json({error:p.msg});o.json(u)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\enable\PUT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\templates\\enable\\PUT.js","names":["resolve","currentUserHasPermission","enableTemplate","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","body","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport enableTemplate from '../../../../../server/utils/templates/enableTemplate.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.body || {};\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, result] = await enableTemplate({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\templates\\enable\\PUT.js","names":["resolve","currentUserHasPermission","enableTemplate","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","body","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport enableTemplate from '../../../../../server/utils/templates/enableTemplate.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.body || {};\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, result] = await enableTemplate({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,6EAC9BC,MAAoB,0DAE3B,MAAMC,EAAUH,cAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAAQ,CAAC,EAElC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOI,SAAgBlB,EAAe,CAAEC,UAASe,SAExD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{resolve}from"path";import
|
|
1
|
+
import{resolve as s}from"path";import r from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/templates/getTemplate.js";const t=s(import.meta.dirname,"../../../../../app-public");export default async(s,o)=>{const i=s.cookies.session_token,[n,a]=await r(i,"system:pages:read");if(n)return o.status(n.code).json({error:n.msg});if(!a)return o.status(403).json({error:"Insufficient permissions"});const{file:m}=s.query;if(!m)return o.status(400).json({error:"File path is required"});const[u,p]=await e({rootDir:t,file:m});if(u)return o.status(u.code).json({error:u.msg});o.json(p)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\file\GET.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\templates\\file\\GET.js","names":["resolve","currentUserHasPermission","getTemplate","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","query","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getTemplate from '../../../../../server/utils/templates/getTemplate.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.query;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await getTemplate({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\templates\\file\\GET.js","names":["resolve","currentUserHasPermission","getTemplate","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","query","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getTemplate from '../../../../../server/utils/templates/getTemplate.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.query;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await getTemplate({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,6EAC9BC,MAAiB,uDAExB,MAAMC,EAAUH,cAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAEzB,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOI,SAAclB,EAAY,CAAEC,UAASe,SAEnD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{resolve}from"path";import
|
|
1
|
+
import{resolve as e}from"path";import r from"../../../../../server/utils/permissions/currentUserHasPermission.js";import s from"../../../../../server/utils/templates/moveTemplate.js";const t=e(import.meta.dirname,"../../../../../app-public");export default async(e,i)=>{const o=e.cookies.session_token,[n,a]=await r(o,"system:pages:update");if(n)return i.status(n.code).json({error:n.msg});if(!a)return i.status(403).json({error:"Insufficient permissions"});const{file:u,newFile:m}=e.body;if(!u)return i.status(400).json({error:"File path is required"});if(!m)return i.status(400).json({error:"New file path is required"});const[p,f]=await s({rootDir:t,file:u,newFile:m});if(p)return i.status(p.code).json({error:p.msg});i.json(f)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\file\PATCH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\templates\\file\\PATCH.js","names":["resolve","currentUserHasPermission","moveTemplate","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","newFile","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport moveTemplate from '../../../../../server/utils/templates/moveTemplate.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file, newFile } = request.body;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tif(!newFile){\r\n\t\treturn response.status(400).json({ error: 'New file path is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await moveTemplate({ rootDir, file, newFile });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\templates\\file\\PATCH.js","names":["resolve","currentUserHasPermission","moveTemplate","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","newFile","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport moveTemplate from '../../../../../server/utils/templates/moveTemplate.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file, newFile } = request.body;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tif(!newFile){\r\n\t\treturn response.status(400).json({ error: 'New file path is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await moveTemplate({ rootDir, file, newFile });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,6EAC9BC,MAAkB,wDAEzB,MAAMC,EAAUH,cAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,QAAEA,GAAYb,EAAQc,KAElC,IAAIF,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,IAAIG,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,8BAG3C,MAAOA,EAAOK,SAAcnB,EAAa,CAAEC,UAASe,OAAMC,YAE1D,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{resolve}from"path";import
|
|
1
|
+
import{resolve as e}from"path";import t from"../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../server/utils/templates/getTemplateMetadata.js";import s from"../../../../../server/utils/templates/updateTemplate.js";const o=e(import.meta.dirname,"../../../../../app-public");export default async(e,i)=>{const a=e.cookies.session_token,[n,m]=await t(a,"system:pages:update");if(n)return i.status(n.code).json({error:n.msg});if(!m)return i.status(403).json({error:"Insufficient permissions"});const{file:u,name:p,author:l,markup:c}=e.body;if(!u)return i.status(400).json({error:"File path is required"});const[f,d]=await r({rootDir:o,file:u});if(!f&&d.locked)return i.status(403).json({error:"This template is locked and cannot be edited"});const[j,k]=await s({rootDir:o,file:u,name:p,author:l,markup:c});if(j)return i.status(j.code).json({error:j.msg});i.json(k)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\file\PUT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\templates\\file\\PUT.js","names":["resolve","currentUserHasPermission","updateTemplate","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","name","author","markup","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport updateTemplate from '../../../../../server/utils/templates/updateTemplate.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file, name, author, markup } = request.body;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await updateTemplate({ rootDir, file, name, author, markup });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\templates\\file\\PUT.js","names":["resolve","currentUserHasPermission","getTemplateMetadata","updateTemplate","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","name","author","markup","body","metaError","metadata","locked","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getTemplateMetadata from '../../../../../server/utils/templates/getTemplateMetadata.js';\r\nimport updateTemplate from '../../../../../server/utils/templates/updateTemplate.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file, name, author, markup } = request.body;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [metaError, metadata] = await getTemplateMetadata({ rootDir, file });\r\n\tif(!metaError && metadata.locked){\r\n\t\treturn response.status(403).json({ error: 'This template is locked and cannot be edited' });\r\n\t}\r\n\r\n\tconst [error, data] = await updateTemplate({ rootDir, file, name, author, markup });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,6EAC9BC,MAAyB,sEACzBC,MAAoB,0DAE3B,MAAMC,EAAUJ,cAAoBK,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBZ,EAAyBQ,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,KAAEA,EAAIC,OAAEA,EAAMC,OAAEA,GAAWf,EAAQgB,KAE/C,IAAIJ,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOO,EAAWC,SAAkBvB,EAAoB,CAAEE,UAASe,SACnE,IAAIK,GAAaC,EAASC,OACzB,OAAOlB,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,iDAG3C,MAAOA,EAAOU,SAAcxB,EAAe,CAAEC,UAASe,OAAMC,OAAMC,SAAQC,WAE1E,GAAGL,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKW","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{resolve}from"path";import
|
|
2
|
-
//# sourceMappingURL=PUT.js.map
|
|
1
|
+
import{resolve as s}from"path";import e from"../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../server/utils/templates/setTemplateLocked.js";const o=s(import.meta.dirname,"../../../../../app-public");export default async(s,t)=>{const i=s.cookies.session_token,[n,a]=await e(i,"system:pages:update");if(n)return t.status(n.code).json({error:n.msg});if(!a)return t.status(403).json({error:"Insufficient permissions"});const{file:u,locked:m}=s.body;if(!u)return t.status(400).json({error:"File path is required"});if("boolean"!=typeof m)return t.status(400).json({error:"locked must be a boolean"});const[p,c]=await r({rootDir:o,file:u,locked:m});if(p)return t.status(p.code).json({error:p.msg});t.json(c)};
|
|
2
|
+
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\lock\PUT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\templates\\lock\\PUT.js","names":["resolve","currentUserHasPermission","setTemplateLocked","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","locked","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport setTemplateLocked from '../../../../../server/utils/templates/setTemplateLocked.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file, locked } = request.body;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tif(typeof locked !== 'boolean'){\r\n\t\treturn response.status(400).json({ error: 'locked must be a boolean' });\r\n\t}\r\n\r\n\tconst [error, data] = await setTemplateLocked({ rootDir, file, locked });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,6EAC9BC,MAAuB,6DAE9B,MAAMC,EAAUH,cAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,OAAEA,GAAWb,EAAQc,KAEjC,IAAIF,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,GAAqB,kBAAXG,EACT,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOK,SAAcnB,EAAkB,CAAEC,UAASe,OAAMC,WAE/D,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../server/utils/users/deleteUser.js";export default async(e,t)=>{try{const o=e.cookies.session_token,{ids:n}=e.body;if(!n||!Array.isArray(n)||0===n.length)return t.status(400).json({error:"IDs array is required"});const[i,u]=await s(o,"system:user:delete");if(i)return t.status(i.code).json({error:i.msg});if(!u)return t.status(403).json({error:"Insufficient permissions"});const a=[],c=[];for(const s of n){const[e,t]=await r(s);e?c.push({id:s,error:e.msg}):a.push(t)}if(c.length>0)return t.status(207).json({deleted:a,errors:c});t.json({deleted:a})}catch(s){t.status(500).json({error:s.message})}};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\user\DELETE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\user\\DELETE.js","names":["currentUserHasPermission","deleteUser","async","request","response","token","cookies","session_token","ids","body","Array","isArray","length","status","json","error","permError","hasPermission","code","msg","results","errors","id","result","push","deleted","message"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport deleteUser from '../../../../server/utils/users/deleteUser.js';\r\n\r\nexport default async (request, response) => {\r\n try {\r\n const token = request.cookies.session_token;\r\n const { ids } = request.body;\r\n\r\n if(!ids || !Array.isArray(ids) || ids.length === 0){\r\n return response.status(400).json({ error: 'IDs array is required' });\r\n }\r\n\r\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:user:delete');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n\r\n const results = [];\r\n const errors = [];\r\n\r\n for(const id of ids){\r\n const [error, result] = await deleteUser(id);\r\n\r\n if(error){\r\n errors.push({ id, error: error.msg });\r\n } else {\r\n results.push(result);\r\n }\r\n }\r\n\r\n if(errors.length > 0){\r\n return response.status(207).json({ deleted: results, errors });\r\n }\r\n\r\n response.json({ deleted: results });\r\n } catch(error) {\r\n response.status(500).json({ error: error.message });\r\n }\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\user\\DELETE.js","names":["currentUserHasPermission","deleteUser","async","request","response","token","cookies","session_token","ids","body","Array","isArray","length","status","json","error","permError","hasPermission","code","msg","results","errors","id","result","push","deleted","message"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport deleteUser from '../../../../server/utils/users/deleteUser.js';\r\n\r\nexport default async (request, response) => {\r\n try {\r\n const token = request.cookies.session_token;\r\n const { ids } = request.body;\r\n\r\n if(!ids || !Array.isArray(ids) || ids.length === 0){\r\n return response.status(400).json({ error: 'IDs array is required' });\r\n }\r\n\r\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:user:delete');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n\r\n const results = [];\r\n const errors = [];\r\n\r\n for(const id of ids){\r\n const [error, result] = await deleteUser(id);\r\n\r\n if(error){\r\n errors.push({ id, error: error.msg });\r\n } else {\r\n results.push(result);\r\n }\r\n }\r\n\r\n if(errors.length > 0){\r\n return response.status(207).json({ deleted: results, errors });\r\n }\r\n\r\n response.json({ deleted: results });\r\n } catch(error) {\r\n response.status(500).json({ error: error.message });\r\n }\r\n};\r\n"],"mappings":"OAAOA,MAA8B,0EAC9BC,MAAgB,8DAERC,MAAOC,EAASC,KAC7B,IACE,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,IAAEA,GAAQL,EAAQM,KAExB,IAAID,IAAQE,MAAMC,QAAQH,IAAuB,IAAfA,EAAII,OACpC,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,0BAG5C,MAAOC,EAAWC,SAAuBjB,EAAyBK,EAAO,sBAEzE,GAAGW,EACD,OAAOZ,EAASS,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGjE,IAAIF,EACF,OAAOb,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG5C,MAAMK,EAAU,GACVC,EAAS,GAEf,IAAI,MAAMC,KAAMd,EAAI,CAClB,MAAOO,EAAOQ,SAAgBtB,EAAWqB,GAEtCP,EACDM,EAAOG,KAAK,CAAEF,KAAIP,MAAOA,EAAMI,MAE/BC,EAAQI,KAAKD,EAEjB,CAEA,GAAGF,EAAOT,OAAS,EACjB,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEW,QAASL,EAASC,WAGvDjB,EAASU,KAAK,CAAEW,QAASL,GAC3B,CAAE,MAAML,GACNX,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAOA,EAAMW,SAC3C","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../server/utils/users/getUsers.js";export default async(e,t)=>{const o=e.cookies.session_token,[i,n]=await s(o,"system:user:read");if(i)return t.status(i.code).json({error:i.msg});if(!n)return t.status(403).json({error:"You do not have permission to view users"});const u=parseInt(e.query.limit)||50,a=parseInt(e.query.offset)||0,[m,f]=await r({limit:u,offset:a});if(m)return t.status(m.code).json({error:m.msg});t.json(f)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\user\GET.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\user\\GET.js","names":["currentUserHasPermission","getUsers","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","limit","parseInt","query","offset","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getUsers from '../../../../server/utils/users/getUsers.js';\r\n\r\nexport default async (request, response) => {\r\n const token = request.cookies.session_token;\r\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:user:read');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'You do not have permission to view users' });\r\n }\r\n\r\n const limit = parseInt(request.query.limit) || 50;\r\n const offset = parseInt(request.query.offset) || 0;\r\n const [error, data] = await getUsers({ limit, offset });\r\n\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n response.json(data);\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\user\\GET.js","names":["currentUserHasPermission","getUsers","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","limit","parseInt","query","offset","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getUsers from '../../../../server/utils/users/getUsers.js';\r\n\r\nexport default async (request, response) => {\r\n const token = request.cookies.session_token;\r\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:user:read');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'You do not have permission to view users' });\r\n }\r\n\r\n const limit = parseInt(request.query.limit) || 50;\r\n const offset = parseInt(request.query.offset) || 0;\r\n const [error, data] = await getUsers({ limit, offset });\r\n\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n response.json(data);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,0EAC9BC,MAAc,4DAENC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,EAAyBK,EAAO,oBAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6CAG5C,MAAME,EAAQC,SAASb,EAAQc,MAAMF,QAAU,GACzCG,EAASF,SAASb,EAAQc,MAAMC,SAAW,GAC1CL,EAAOM,SAAclB,EAAS,CAAEc,QAAOG,WAE9C,GAAGL,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKO","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import e from"../../../../server/utils/permissions/currentUserHasPermission.js";import s from"../../../../server/utils/users/updateUser.js";export default async(r,i)=>{const t=r.cookies.session_token,{id:o,name:n,email:a,emailVerified:u,createdAt:d}=r.body;if(!o)return i.status(400).json({error:"User ID is required"});const[m,c]=await e(t,"system:user:update");if(m)return i.status(m.code).json({error:m.msg});if(!c)return i.status(403).json({error:"Insufficient permissions"});const f={};void 0!==n&&(f.name=n),void 0!==a&&(f.email=a),void 0!==u&&(f.emailVerified=u),void 0!==d&&(f.createdAt=new Date(d));const[j,l]=await s(o,f);if(j)return i.status(j.code).json({error:j.msg});i.json(l)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\user\PATCH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\user\\PATCH.js","names":["currentUserHasPermission","updateUser","async","request","response","token","cookies","session_token","id","name","email","emailVerified","createdAt","body","status","json","error","permError","hasPermission","code","msg","updates","undefined","Date","result"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport updateUser from '../../../../server/utils/users/updateUser.js';\r\n\r\nexport default async (request, response) => {\r\n const token = request.cookies.session_token;\r\n const { id, name, email, emailVerified, createdAt } = request.body;\r\n \r\n if(!id){\r\n return response.status(400).json({ error: 'User ID is required' });\r\n }\r\n\r\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:user:update');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n \r\n const updates = {};\r\n if(name !== undefined) updates.name = name;\r\n if(email !== undefined) updates.email = email;\r\n if(emailVerified !== undefined) updates.emailVerified = emailVerified;\r\n if(createdAt !== undefined) updates.createdAt = new Date(createdAt);\r\n \r\n const [error, result] = await updateUser(id, updates);\r\n \r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n \r\n response.json(result);\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\user\\PATCH.js","names":["currentUserHasPermission","updateUser","async","request","response","token","cookies","session_token","id","name","email","emailVerified","createdAt","body","status","json","error","permError","hasPermission","code","msg","updates","undefined","Date","result"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport updateUser from '../../../../server/utils/users/updateUser.js';\r\n\r\nexport default async (request, response) => {\r\n const token = request.cookies.session_token;\r\n const { id, name, email, emailVerified, createdAt } = request.body;\r\n \r\n if(!id){\r\n return response.status(400).json({ error: 'User ID is required' });\r\n }\r\n\r\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:user:update');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n \r\n const updates = {};\r\n if(name !== undefined) updates.name = name;\r\n if(email !== undefined) updates.email = email;\r\n if(emailVerified !== undefined) updates.emailVerified = emailVerified;\r\n if(createdAt !== undefined) updates.createdAt = new Date(createdAt);\r\n \r\n const [error, result] = await updateUser(id, updates);\r\n \r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n \r\n response.json(result);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,0EAC9BC,MAAgB,8DAERC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,GAAEA,EAAEC,KAAEA,EAAIC,MAAEA,EAAKC,cAAEA,EAAaC,UAAEA,GAAcT,EAAQU,KAE9D,IAAIL,EACF,OAAOJ,EAASU,OAAO,KAAKC,KAAK,CAAEC,MAAO,wBAG5C,MAAOC,EAAWC,SAAuBlB,EAAyBK,EAAO,sBAEzE,GAAGY,EACD,OAAOb,EAASU,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGjE,IAAIF,EACF,OAAOd,EAASU,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG5C,MAAMK,EAAU,CAAC,OACLC,IAATb,IAAoBY,EAAQZ,KAAOA,QACzBa,IAAVZ,IAAqBW,EAAQX,MAAQA,QACnBY,IAAlBX,IAA6BU,EAAQV,cAAgBA,QACvCW,IAAdV,IAAyBS,EAAQT,UAAY,IAAIW,KAAKX,IAEzD,MAAOI,EAAOQ,SAAgBvB,EAAWO,EAAIa,GAE7C,GAAGL,EACD,OAAOZ,EAASU,OAAOE,EAAMG,MAAMJ,KAAK,CAAEC,MAAOA,EAAMI,MAGzDhB,EAASW,KAAKS","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../server/utils/users/getUserById.js";export default async(e,t)=>{const o=e.cookies.session_token,[i,n]=await s(o,"system:user:read");if(i)return t.status(i.code).json({error:i.msg});if(!n)return t.status(403).json({error:"Insufficient permissions"});const{userid:u}=e.params,[a,m]=await r(u);if(a)return t.status(a.code).json({error:a.msg});t.json(m)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\user\[userid]\GET.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\user\\[userid]\\GET.js","names":["currentUserHasPermission","getUserById","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","userid","params","user"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getUserById from '../../../../../server/utils/users/getUserById.js';\r\n\r\nexport default async (request, response) => {\r\n const token = request.cookies.session_token;\r\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:user:read');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n\r\n const { userid } = request.params;\r\n const [error, user] = await getUserById(userid);\r\n\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n response.json(user);\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\user\\[userid]\\GET.js","names":["currentUserHasPermission","getUserById","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","userid","params","user"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getUserById from '../../../../../server/utils/users/getUserById.js';\r\n\r\nexport default async (request, response) => {\r\n const token = request.cookies.session_token;\r\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:user:read');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n\r\n const { userid } = request.params;\r\n const [error, user] = await getUserById(userid);\r\n\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n response.json(user);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,6EAC9BC,MAAiB,kEAETC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,EAAyBK,EAAO,oBAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,OAAEA,GAAWZ,EAAQa,QACpBH,EAAOI,SAAchB,EAAYc,GAExC,GAAGF,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKK","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import r from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import s from"../../../../../../server/utils/groups/removeUserFromGroup.js";export default async(e,o)=>{const t=e.cookies.session_token,[i,n]=await r(t,"system:group:update");if(i)return o.status(i.code).json({error:i.msg});if(!n)return o.status(403).json({error:"Insufficient permissions"});const{userid:u}=e.params,{groupName:a}=e.body;if(!a)return o.status(400).json({error:"Group name is required"});const[m,p]=await s(u,a);if(m)return o.status(m.code).json({error:m.msg});o.json(p)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\user\[userid]\groups\DELETE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\user\\[userid]\\groups\\DELETE.js","names":["currentUserHasPermission","removeUserFromGroup","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","userid","params","groupName","body","result"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport removeUserFromGroup from '../../../../../../server/utils/groups/removeUserFromGroup.js';\r\n\r\nexport default async (request, response) => {\r\n const token = request.cookies.session_token;\r\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:update');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n\r\n const { userid } = request.params;\r\n const { groupName } = request.body;\r\n\r\n if(!groupName){\r\n return response.status(400).json({ error: 'Group name is required' });\r\n }\r\n\r\n const [error, result] = await removeUserFromGroup(userid, groupName);\r\n\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n response.json(result);\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\user\\[userid]\\groups\\DELETE.js","names":["currentUserHasPermission","removeUserFromGroup","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","userid","params","groupName","body","result"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport removeUserFromGroup from '../../../../../../server/utils/groups/removeUserFromGroup.js';\r\n\r\nexport default async (request, response) => {\r\n const token = request.cookies.session_token;\r\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:update');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n\r\n const { userid } = request.params;\r\n const { groupName } = request.body;\r\n\r\n if(!groupName){\r\n return response.status(400).json({ error: 'Group name is required' });\r\n }\r\n\r\n const [error, result] = await removeUserFromGroup(userid, groupName);\r\n\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n response.json(result);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,gFAC9BC,MAAyB,8EAEjBC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,EAAyBK,EAAO,uBAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,OAAEA,GAAWZ,EAAQa,QACrBC,UAAEA,GAAcd,EAAQe,KAE9B,IAAID,EACF,OAAOb,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,2BAG5C,MAAOA,EAAOM,SAAgBlB,EAAoBc,EAAQE,GAE1D,GAAGJ,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKO","ignoreList":[]}
|