Files
request-portal/src/webparts/requestPortal/shared/approval/fullEditRights.ts
T
Тимур Городецкий cfbca8c2b2 feat: Ербол Шаймерденов правит все поля и вложения заявки на рабочее место
Полное право правки стало раздельным по формам: раньше общий список открыл
бы Ерболу и подбор с приёмом. В «Организации рабочего места» право действует,
пока он есть в маршруте (согласование или исполнение) и заявка «На
согласовании» или «Выполнение», независимо от того, чья сейчас очередь.
Правки пишутся в журнал (подсветка «Было: …»), перед «Согласовать»
проверяются обязательные поля. Блок вложений вынесен в общий компонент.

Нужна новая колонка WorkplaceApproverChangesJson в списке данных.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-07 12:08:25 +05:00

26 lines
1.6 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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;
}