aboutsummaryrefslogtreecommitdiff
path: root/src/permissions/user.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/permissions/user.ts')
-rw-r--r--src/permissions/user.ts29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/permissions/user.ts b/src/permissions/user.ts
new file mode 100644
index 0000000..2ed8f27
--- /dev/null
+++ b/src/permissions/user.ts
@@ -0,0 +1,29 @@
+import type { Auth } from '@/lib/types';
+
+export async function canCreateUser({ user }: Auth) {
+ return user.isAdmin;
+}
+
+export async function canViewUser({ user }: Auth, viewedUserId: string) {
+ if (user.isAdmin) {
+ return true;
+ }
+
+ return user.id === viewedUserId;
+}
+
+export async function canViewUsers({ user }: Auth) {
+ return user.isAdmin;
+}
+
+export async function canUpdateUser({ user }: Auth, viewedUserId: string) {
+ if (user.isAdmin) {
+ return true;
+ }
+
+ return user.id === viewedUserId;
+}
+
+export async function canDeleteUser({ user }: Auth) {
+ return user.isAdmin;
+}