cfbca8c2b2
Полное право правки стало раздельным по формам: раньше общий список открыл бы Ерболу и подбор с приёмом. В «Организации рабочего места» право действует, пока он есть в маршруте (согласование или исполнение) и заявка «На согласовании» или «Выполнение», независимо от того, чья сейчас очередь. Правки пишутся в журнал (подсветка «Было: …»), перед «Согласовать» проверяются обязательные поля. Блок вложений вынесен в общий компонент. Нужна новая колонка WorkplaceApproverChangesJson в списке данных. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
26 lines
1.6 KiB
TypeScript
26 lines
1.6 KiB
TypeScript
import { RequestTypeId } from '../../models/types';
|
||
|
||
/**
|
||
* Кто на СВОЁМ АКТИВНОМ шаге согласования может править ВСЕ поля заявки
|
||
* (а не только отдельные, как расчётная группа в RecruitingHire).
|
||
*
|
||
* Пока фиксированные email по формам — групп SharePoint для этого ещё нет,
|
||
* как и в routeEditRights.ts. ВРЕМЕННО. Список свой у каждой формы: право в
|
||
* одной форме не должно молча открывать правку в другой.
|
||
*
|
||
* Реферальная рекомендация — без права (решение Тимура 2026-09-24). С
|
||
* 2026-10-06 право открывает и вложения: добавлять и удалять файлы (см.
|
||
* shared/attachments/useAttachmentEditor).
|
||
*/
|
||
const FULL_FIELD_EDITORS: Partial<Record<RequestTypeId, ReadonlyArray<string>>> = {
|
||
'recruiting-selection': ['a.bulturukova@tnsu.kz'], // Алтынай Бултурукова
|
||
'recruiting-hire': ['a.bulturukova@tnsu.kz'], // Алтынай Бултурукова
|
||
'it-workplace-setup': ['shaimerdenov.yerbol@tnsu.kz'] // Ербол Шаймерденов
|
||
};
|
||
|
||
/** Может ли этот email править все поля заявки этой формы на своём активном шаге (см. выше). */
|
||
export function canEditAllFields(formId: RequestTypeId, email: string | undefined): boolean {
|
||
const editors = FULL_FIELD_EDITORS[formId];
|
||
return !!email && !!editors && editors.indexOf(email.trim().toLowerCase()) !== -1;
|
||
}
|