diff --git a/openspec/changes/184-user-role/specs/app-shell-ui/spec.md b/openspec/changes/184-user-role/specs/app-shell-ui/spec.md new file mode 100644 index 0000000..5404af6 --- /dev/null +++ b/openspec/changes/184-user-role/specs/app-shell-ui/spec.md @@ -0,0 +1,10 @@ +## ADDED Requirements + +### Requirement: Текущий пользователь и его роли в боковом меню +Клик по логотипу «АРМ КА» в раскрытом боковом меню SHALL раскрывать блок с данными текущего пользователя из `GET /me`: +ФИО, логин (email), роли (коды как отдаёт API, через запятую; без ролей — «не назначена») и филиал. Повторный клик или +клик вне блока SHALL закрывать его. Роли показываются как есть, по ним доступ на фронте не решается. + +#### Scenario: Пользователь с ролью +- **WHEN** аналитик с ролью ANALYST кликает по логотипу «АРМ КА» +- **THEN** раскрывается блок с его ФИО, email, ролью ANALYST и филиалом diff --git a/web/src/widgets/Sidebar/Sidebar.tsx b/web/src/widgets/Sidebar/Sidebar.tsx index 5f8a7f0..db12ff7 100644 --- a/web/src/widgets/Sidebar/Sidebar.tsx +++ b/web/src/widgets/Sidebar/Sidebar.tsx @@ -4,12 +4,12 @@ import { Archive, Building2, ScrollText, UserCog2, Users2 } from 'lucide-react'; import { type ReactNode, memo, useState } from 'react'; import { NavLink, useNavigate } from 'react-router-dom'; import { USERS_ADMIN } from '../../auth/permissions'; -import { Logo } from '../../components/Logo'; import { createConsolidation } from '../../services/api/consolidations'; import { getConsolidationsListThunk } from '../../store/slices/consolidations/thunks'; import { useAppDispatch } from '../../store/store'; import { quarterLabel } from '../../utils/labels'; import { NewConsolidationModal } from '../NewConsoleModal/NewConsoleModal'; +import { UserMenu } from '../UserMenu/UserMenu'; import styles from './styles.module.css'; type CollapsedIconProps = { @@ -164,7 +164,7 @@ export function Sidebar() { trigger={null}>