From 3e1cfefdd98f018c45984cc6b8de6659bac47933 Mon Sep 17 00:00:00 2001 From: Artem VV Date: Fri, 19 May 2023 21:15:28 +0700 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D0=B5=D1=80=D0=B0=D1=82=D0=BE=D1=80=D1=81?= =?UTF-8?q?=D0=BA=D1=83=D1=8E=20=D1=80=D0=BE=D0=BB=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- prisma/schema.prisma | 13 ++++--- src/components/Navbar.astro | 9 ++++- src/components/NewsBlock.astro | 8 ++-- src/db.ts | 12 ++++++ src/pages/articleEditor.astro | 4 +- src/pages/articles/create.ts | 10 ++++- src/pages/articles/delete.ts | 10 ++++- src/pages/timetable.astro | 8 ++-- src/pages/ttapi/createStudyItem.ts | 4 +- src/pages/ttapi/deleteStudyItem.ts | 4 +- src/pages/ttapi/updateTimetable.ts | 4 +- src/pages/user/[user].astro | 6 +-- src/pages/userapi/makeUserModerator.ts | 42 +++++++++++++++++++++ src/pages/userapi/updatePassword.ts | 4 +- src/pages/users.astro | 51 ++++++++++++++++++-------- 15 files changed, 141 insertions(+), 48 deletions(-) create mode 100644 src/pages/userapi/makeUserModerator.ts diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 7a22a2a..df1b789 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -42,12 +42,13 @@ model timetable { } model users { - id Int @id(map: "pk_users") @default(autoincrement()) - login String @unique @db.VarChar(25) - pass String @db.VarChar(100) - fullName String? @db.VarChar(100) - is_admin Boolean @default(false) - lore String? @db.Text() + id Int @id(map: "pk_users") @default(autoincrement()) + login String @unique @db.VarChar(25) + pass String @db.VarChar(100) + fullName String? @db.VarChar(100) + is_admin Boolean @default(false) + is_moderator Boolean @default(false) + lore String? @db.Text() timetable timetable[] user_session user_session[] diff --git a/src/components/Navbar.astro b/src/components/Navbar.astro index b0cb174..2aa70f8 100644 --- a/src/components/Navbar.astro +++ b/src/components/Navbar.astro @@ -1,9 +1,12 @@ --- +import type { users } from "@prisma/client"; + export interface Props { is_user_admin: boolean; + user: users; } -const { is_user_admin } = Astro.props; +const { is_user_admin, user } = Astro.props; const items = [ { @@ -25,6 +28,10 @@ const items = [ ]; const itemsRight = [ + { + href: `/user/${user.login}`, + title: "Профиль", + }, { href: "/logout", title: "Выйти", diff --git a/src/components/NewsBlock.astro b/src/components/NewsBlock.astro index 736f002..3831bfc 100644 --- a/src/components/NewsBlock.astro +++ b/src/components/NewsBlock.astro @@ -22,7 +22,7 @@ const formatDate = (dt: Date) => { ---
- {user.is_admin ? ( + {user.is_admin || user.is_moderator ? ( Новая статья @@ -35,7 +35,7 @@ const formatDate = (dt: Date) => {

{article.title}

{formatDate(article.created_at)}

- {user.is_admin ? ( + {user.is_admin || user.is_moderator ? (


}
-{user.is_admin ? +{user.is_admin || user.is_moderator ?