mirror of
https://codeberg.org/MarkusThielker/next-ory.git
synced 2025-04-19 09:01:18 +00:00
NORY-59: replace 'force-admin-role' with new permission
This commit is contained in:
parent
6b80e93bf0
commit
eff751996c
4 changed files with 13 additions and 11 deletions
|
@ -1,14 +1,15 @@
|
||||||
import { StatusCard } from '@/components/status-card';
|
import { StatusCard } from '@/components/status-card';
|
||||||
import { hydraMetadata, ketoMetadata, kratosMetadata } from '@/lib/action/metadata';
|
import { hydraMetadata, ketoMetadata, kratosMetadata } from '@/lib/action/metadata';
|
||||||
import { checkPermission, requireRole, requireSession } from '@/lib/action/authentication';
|
import { checkPermission, requirePermission, requireSession } from '@/lib/action/authentication';
|
||||||
import InsufficientPermission from '@/components/insufficient-permission';
|
import InsufficientPermission from '@/components/insufficient-permission';
|
||||||
|
import { permission, relation } from '@/lib/permission';
|
||||||
|
|
||||||
export default async function RootPage() {
|
export default async function RootPage() {
|
||||||
|
|
||||||
const session = await requireSession();
|
const session = await requireSession();
|
||||||
const identityId = session.identity!.id;
|
const identityId = session.identity!.id;
|
||||||
|
|
||||||
await requireRole('admin', identityId);
|
await requirePermission(permission.stack.dashboard, relation.access, identityId);
|
||||||
|
|
||||||
const pmAccessStackStatus = await checkPermission(permission.stack.status, relation.access, identityId);
|
const pmAccessStackStatus = await checkPermission(permission.stack.status, relation.access, identityId);
|
||||||
|
|
||||||
|
|
|
@ -3,8 +3,9 @@ import { IdentityDataTable } from '@/app/(inside)/user/data-table';
|
||||||
import { SearchInput } from '@/components/search-input';
|
import { SearchInput } from '@/components/search-input';
|
||||||
import { queryIdentities } from '@/lib/action/identity';
|
import { queryIdentities } from '@/lib/action/identity';
|
||||||
import { IdentityPagination } from '@/components/pagination';
|
import { IdentityPagination } from '@/components/pagination';
|
||||||
import { checkPermission, requireRole, requireSession } from '@/lib/action/authentication';
|
import { checkPermission, requirePermission, requireSession } from '@/lib/action/authentication';
|
||||||
import InsufficientPermission from '@/components/insufficient-permission';
|
import InsufficientPermission from '@/components/insufficient-permission';
|
||||||
|
import { permission, relation } from '@/lib/permission';
|
||||||
|
|
||||||
export default async function UserPage(
|
export default async function UserPage(
|
||||||
{
|
{
|
||||||
|
@ -17,7 +18,7 @@ export default async function UserPage(
|
||||||
const session = await requireSession();
|
const session = await requireSession();
|
||||||
const identityId = session.identity!.id;
|
const identityId = session.identity!.id;
|
||||||
|
|
||||||
await requireRole('admin', identityId);
|
await requirePermission(permission.stack.dashboard, relation.access, identityId);
|
||||||
|
|
||||||
const pmAccessUser = await checkPermission(permission.user.it, relation.access, identityId);
|
const pmAccessUser = await checkPermission(permission.user.it, relation.access, identityId);
|
||||||
const pmEditUser = await checkPermission(permission.user.it, relation.edit, identityId);
|
const pmEditUser = await checkPermission(permission.user.it, relation.edit, identityId);
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
const permission = {
|
export const permission = {
|
||||||
stack: {
|
stack: {
|
||||||
|
dashboard: 'admin.stack.dashboard',
|
||||||
status: 'admin.stack.status',
|
status: 'admin.stack.status',
|
||||||
},
|
},
|
||||||
user: {
|
user: {
|
||||||
|
@ -9,7 +10,7 @@ const permission = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const relation = {
|
export const relation = {
|
||||||
access: 'access',
|
access: 'access',
|
||||||
edit: 'edit',
|
edit: 'edit',
|
||||||
delete: 'delete',
|
delete: 'delete',
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import { NextRequest, NextResponse } from 'next/server';
|
import { NextRequest, NextResponse } from 'next/server';
|
||||||
import { checkRole, getSession } from '@/lib/action/authentication';
|
import { checkPermission, getSession } from '@/lib/action/authentication';
|
||||||
|
import { permission, relation } from '@/lib/permission';
|
||||||
|
|
||||||
export async function middleware(request: NextRequest) {
|
export async function middleware(request: NextRequest) {
|
||||||
|
|
||||||
|
@ -19,10 +20,8 @@ export async function middleware(request: NextRequest) {
|
||||||
return NextResponse.redirect(url!);
|
return NextResponse.redirect(url!);
|
||||||
}
|
}
|
||||||
|
|
||||||
const allowed = await checkRole(
|
const allowed = await checkPermission(permission.stack.dashboard, relation.access, session.identity!.id);
|
||||||
'admin',
|
|
||||||
session!.identity!.id,
|
|
||||||
);
|
|
||||||
|
|
||||||
if (allowed) {
|
if (allowed) {
|
||||||
if (request.nextUrl.pathname === '/unauthorised') {
|
if (request.nextUrl.pathname === '/unauthorised') {
|
||||||
|
|
Loading…
Add table
Reference in a new issue