@kuzntsv/uikit 1.0.15 → 1.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -491,6 +491,8 @@ class BaseEditClass {
491
491
  loaderService = inject(LoaderService);
492
492
  /** Сервис уведомлений. */
493
493
  notificationService = inject(NotificationService);
494
+ /** Сервис ролей. */
495
+ roleService = inject(RoleService);
494
496
  /** Объект для отписки (вызывается метод unsubscribe при уничтожении компонента). */
495
497
  subscription = new Subscription();
496
498
  ngOnDestroy() {
@@ -504,11 +506,12 @@ class BaseEditClass {
504
506
  if (this.form) {
505
507
  if (this.form.valid) {
506
508
  if (this.dialogData)
507
- Object.keys(this.form.controls).forEach(controlName => this.dialogData.entity[controlName] = this.form?.controls[controlName].value);
509
+ Object.keys(this.form.controls).forEach((controlName) => (this.dialogData.entity[controlName] =
510
+ this.form?.controls[controlName].value));
508
511
  this.dialogRef?.close(this.dialogData);
509
512
  }
510
513
  else {
511
- Object.keys(this.form.controls).forEach(controlName => this.form?.controls[controlName].markAsTouched());
514
+ Object.keys(this.form.controls).forEach((controlName) => this.form?.controls[controlName].markAsTouched());
512
515
  }
513
516
  }
514
517
  }
@@ -518,6 +521,26 @@ class BaseEditClass {
518
521
  formActionIsEdit() {
519
522
  return this.dialogData?.action === Action.Edit;
520
523
  }
524
+ /**
525
+ * Определяет видимость элемента на основе ЧЕРНОГО списка ролей.
526
+ * По умолчанию элемент ВИДИМ. Скрывается (возвращает false), если у пользователя
527
+ * есть запрещенная роль или если передан маркер скрытия фичи HIDE_ROLE_MARKER.
528
+ */
529
+ isVisibleForForbiddenRoles(forbiddenRoles) {
530
+ // Если роль запрещена, метод roleService вернет true.
531
+ // Мы инвертируем (!), чтобы видимость (isMenuVisible) стала false.
532
+ return !this.roleService.hasForbiddenRole(forbiddenRoles);
533
+ }
534
+ /**
535
+ * Определяет видимость элемента на основе БЕЛОГО списка ролей.
536
+ * По умолчанию элемент СКРЫТ. Показывается (возвращает true), только если у пользователя
537
+ * есть хотя бы одна из разрешенных ролей. Администратор (ADMIN) всегда видит элемент.
538
+ */
539
+ isVisibleForAllowedRoles(allowedRoles) {
540
+ // Проверяем, есть ли у пользователя хотя бы одна роль из разрешенного списка.
541
+ // (Предполагается, что у вашего roleService есть соответствующий метод, например, hasAnyRole)
542
+ return this.roleService.hasAnyRole(allowedRoles);
543
+ }
521
544
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: BaseEditClass, deps: [], target: i0.ɵɵFactoryTarget.Directive });
522
545
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: BaseEditClass, isStandalone: true, ngImport: i0 });
523
546
  }
@@ -560,13 +583,25 @@ class BaseNavBarMenuClass {
560
583
  roleService = inject(RoleService);
561
584
  router = inject(Router);
562
585
  /**
563
- * Определяет видимость пункта меню.
564
- * По умолчанию пункт меню ВИДИМ. Скрывается, если у пользователя есть запрещенная роль
565
- * или если передан маркер скрытия фичи HIDE_ROLE_MARKER.
586
+ * Определяет видимость пункта меню на основе ЧЕРНОГО списка ролей.
587
+ * По умолчанию пункт меню ВИДИМ. Скрывается (возвращает false), если у пользователя
588
+ * есть запрещенная роль или если передан маркер скрытия фичи HIDE_ROLE_MARKER.
566
589
  */
567
- isMenuVisible(forbiddenRoles) {
590
+ isVisibleForForbiddenRoles(forbiddenRoles) {
591
+ // Если роль запрещена, метод roleService вернет true.
592
+ // Мы инвертируем (!), чтобы видимость (isMenuVisible) стала false.
568
593
  return !this.roleService.hasForbiddenRole(forbiddenRoles);
569
594
  }
595
+ /**
596
+ * Определяет видимость пункта меню на основе БЕЛОГО списка ролей.
597
+ * По умолчанию пункт меню СКРЫТ. Показывается (возвращает true), только если у пользователя
598
+ * есть хотя бы одна из разрешенных ролей. Администратор (ADMIN) всегда видит элемент.
599
+ */
600
+ isVisibleForAllowedRoles(allowedRoles) {
601
+ // Проверяем, есть ли у пользователя хотя бы одна роль из разрешенного списка.
602
+ // (Предполагается, что у вашего roleService есть соответствующий метод, например, hasAnyRole)
603
+ return this.roleService.hasAnyRole(allowedRoles);
604
+ }
570
605
  /** Нажата средняя кнопка (открыть ссылку в новой вкладке). */
571
606
  onMiddleClick(event, baseUrl, menu) {
572
607
  // 1 - Auxiliary button pressed (usually the middle button)