mirror of
https://github.com/strapi/strapi.git
synced 2025-07-14 04:21:56 +00:00

* feat(admin): add Auth feature * refactor: authentication to use redux-toolkit * chore(admin): convert admin data-fetching to use redux-toolkit-query * chore: add docs * fix: default logo would not show on login page * fix: app flashes on logout * fix: logout should work across browsers
149 lines
3.2 KiB
TypeScript
149 lines
3.2 KiB
TypeScript
import { Entity, EntityService } from '@strapi/types';
|
|
import type { errors } from '@strapi/utils';
|
|
import { AdminRole, Permission, SanitizedAdminRole } from './shared';
|
|
|
|
export type SanitizedPermission = Pick<
|
|
Permission,
|
|
'id' | 'action' | 'actionParameters' | 'subject' | 'properties' | 'conditions'
|
|
>;
|
|
|
|
type SanitizedAdminRoleWithUsersCount = SanitizedAdminRole & { usersCount?: number };
|
|
|
|
/**
|
|
* GET /roles/:id/permissions - Get the permissions of a role
|
|
*/
|
|
export declare namespace GetPermissions {
|
|
export interface Request {
|
|
params: { id: string };
|
|
query: {};
|
|
body: {};
|
|
}
|
|
|
|
export interface Response {
|
|
data: Permission[];
|
|
error?: errors.ApplicationError | errors.NotFoundError;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* PUT /roles/:id/permissions - Update the permissions of a role
|
|
*/
|
|
export declare namespace UpdatePermissions {
|
|
export interface Request {
|
|
params: { id: Entity.ID };
|
|
query: {};
|
|
body: {
|
|
permissions: Omit<Permission, 'id' | 'createdAt' | 'updatedAt' | 'actionParameters'>[];
|
|
};
|
|
}
|
|
|
|
export interface Response {
|
|
data: SanitizedPermission[];
|
|
error?:
|
|
| errors.ApplicationError
|
|
| errors.NotFoundError // One of the permissions not found
|
|
| errors.YupValidationError;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* GET /roles/:id - Find a role by ID
|
|
*/
|
|
export declare namespace FindRole {
|
|
export interface Request {
|
|
params: { id: string };
|
|
query: {};
|
|
body: {};
|
|
}
|
|
|
|
export interface Response {
|
|
data: SanitizedAdminRoleWithUsersCount;
|
|
error?: errors.ApplicationError | errors.NotFoundError;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* GET /roles
|
|
*/
|
|
export declare namespace FindRoles {
|
|
export interface Request {
|
|
query: EntityService.Params.Pick<'admin::role', 'sort' | 'filters' | 'fields'>;
|
|
body: {};
|
|
}
|
|
|
|
export interface Response {
|
|
data: SanitizedAdminRoleWithUsersCount[];
|
|
error?: errors.ApplicationError | errors.ValidationError;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* POST /roles - Create a role
|
|
*/
|
|
export declare namespace Create {
|
|
export interface Request {
|
|
query: {};
|
|
body: {
|
|
name: string;
|
|
description?: string;
|
|
};
|
|
}
|
|
|
|
export interface Response {
|
|
data: SanitizedAdminRole;
|
|
error?: errors.ApplicationError | errors.YupValidationError;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* PUT /roles/:id - Update a role
|
|
*/
|
|
export declare namespace Update {
|
|
export interface Request {
|
|
params: { id: string };
|
|
query: {};
|
|
body: {
|
|
name?: string;
|
|
description?: string;
|
|
};
|
|
}
|
|
|
|
export interface Response {
|
|
data: SanitizedAdminRole;
|
|
error?: errors.ApplicationError | errors.NotFoundError;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* DELETE /roles/:id - Delete a role
|
|
*/
|
|
export declare namespace Delete {
|
|
export interface Request {
|
|
params: { id: string };
|
|
query: {};
|
|
body: {};
|
|
}
|
|
|
|
export interface Response {
|
|
data: Omit<AdminRole, 'users' | 'permissions'> | null;
|
|
error?: errors.ApplicationError;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* POST /roles/batch-delete - Delete multiple roles
|
|
*/
|
|
export declare namespace BatchDelete {
|
|
export interface Request {
|
|
query: {};
|
|
body: {
|
|
ids: string[]; // Min length: 1
|
|
};
|
|
}
|
|
|
|
export interface Response {
|
|
data: (Omit<AdminRole, 'users' | 'permissions'> | null)[];
|
|
error?: errors.ApplicationError | errors.YupValidationError;
|
|
}
|
|
}
|