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 ?