diff --git a/src/app/authenticate/login/login.component.ts b/src/app/authenticate/login/login.component.ts index 53eca3d..6847685 100644 --- a/src/app/authenticate/login/login.component.ts +++ b/src/app/authenticate/login/login.component.ts @@ -96,7 +96,6 @@ export class LoginComponent { login() { if (this.loginForm.valid) { - this.ucred.porOrgacode = HiddenValues.POR_ORGACODE; this.ucred.password = this.loginForm.get(FormConstants.PASSWORD)?.value; this.ucred.userId = this.loginForm.get(FormConstants.USER_ID)?.value; this.authService.authenticate(this.ucred).subscribe( (res: any) => { diff --git a/src/app/services/authenticate.service.ts b/src/app/services/authenticate.service.ts index 8acf174..52b6a7d 100644 --- a/src/app/services/authenticate.service.ts +++ b/src/app/services/authenticate.service.ts @@ -31,10 +31,10 @@ export class AuthenticationService { this.i18nService.error(ErrorMessages.ALREADY_LOGGED_IN,[]); return; } - this.credentialService.setPorOrgacode(uCreds.porOrgacode); + this.credentialService.setPorOrgacode(HiddenValues.POR_ORGACODE); this.credentialService.setUserId(uCreds.userId); this.credentialService.setPassword(uCreds.password); - this.storageService.setItem(FormConstants.POR_ORGACODE, uCreds.porOrgacode); + this.storageService.setItem(FormConstants.POR_ORGACODE, HiddenValues.POR_ORGACODE); this.storageService.setItem(FormConstants.USER_ID, uCreds.userId); this.storageService.setItem(FormConstants.PASSWORD, uCreds.password); this.httpService.requestPOST(URIKey.USER_LOGIN_URI, uCreds).subscribe((data: any) => { diff --git a/src/app/shared/components/password-hide-show/password-hide-show.component.ts b/src/app/shared/components/password-hide-show/password-hide-show.component.ts index 7a15567..c937edd 100644 --- a/src/app/shared/components/password-hide-show/password-hide-show.component.ts +++ b/src/app/shared/components/password-hide-show/password-hide-show.component.ts @@ -1,8 +1,14 @@ -import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core'; +import { NG_VALUE_ACCESSOR } from '@angular/forms'; @Component({ selector: 'app-password-hide-show', imports: [], + providers: [{ + provide: NG_VALUE_ACCESSOR, + useExisting: forwardRef(() => PasswordHideShowComponent), + multi: true + }], templateUrl: './password-hide-show.component.html', styleUrl: './password-hide-show.component.scss' }) diff --git a/src/app/user-management/change-password/change-password.component.html b/src/app/user-management/change-password/change-password.component.html index 60cd786..663e705 100644 --- a/src/app/user-management/change-password/change-password.component.html +++ b/src/app/user-management/change-password/change-password.component.html @@ -3,7 +3,7 @@
-
+
@@ -15,7 +15,7 @@
{{'changePassword' | translate}}
-
+
@@ -47,7 +47,7 @@
-
@@ -60,7 +60,7 @@
-
+
-
- -
-
-
-
-
-
{{'permissionManagement' | translate}}
-
-
-
-
- - -
- -
- -
- -
- - -
-
-
-
-

{{ 'permissions' | translate}}

-
-
    -
  • - - {{node.name | translate}} - - - - - - -
      - -
    -
      - -
    -
  • -
- - -
    -
  • - - {{node.name | translate}} - - - - - - - - - - -
      - -
    -
      - -
    -
  • -
-
-
- -
+
+
+ + +
+
+
+ +
+ + +
+
+ +
+
+
+ + +
+
+ +

+ {{ 'permissions' | translate }} +

+
+ + + + + + + + + + + + + + +
{{ 'Permissions' | translate }} + {{ 'allow' | translate }} +
+ +
+
+
-
\ No newline at end of file + +
+
+ + + + + + + + + + + + + + + + + {{ node.name | translate }} + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/app/user-permissions/user-permissions.component.scss b/src/app/user-permissions/user-permissions.component.scss index 6d0f995..f1a34aa 100644 --- a/src/app/user-permissions/user-permissions.component.scss +++ b/src/app/user-permissions/user-permissions.component.scss @@ -1,19 +1,43 @@ - - li { - margin: 5px 0; - } +.permission-table td { + vertical-align: middle; +} - ul { - list-style-type: none; - margin: 0; - padding-left: 10px; /* Reduce overall left padding */ - } +.expand-icon { + cursor: pointer; + color: #1e40af; +} - ul ul { - padding-left: 5px; /* Reduce space for nested items */ - margin-left: 5px; - } +.permission-cell { + position: relative; + padding-left: calc(var(--level) * 22px + 14px); + font-weight: 500; + background-color: rgba(30, 64, 175, calc(var(--level) * 0.08)); + color: #1f2937; +} - li { - margin-bottom: 3px; /* Add slight vertical spacing between items */ - } \ No newline at end of file +.permission-cell::before { + content: ''; + position: absolute; + left: calc(var(--level) * 22px); + top: 0; + bottom: 0; + width: 2px; + background-color: #9ca3af; +} + +.permission-cell { + font-size: calc(14px - var(--level) * 0.5px); +} + +.permission-table tbody tr:hover { + background-color: #e5e7eb; +} + +.permission-table thead th { + background-color: #e5e7eb; + color: #111827; +} + +.permission-table td:last-child { + text-align: center; +} diff --git a/src/app/user-permissions/user-permissions.component.ts b/src/app/user-permissions/user-permissions.component.ts index 025ae98..1575a77 100644 --- a/src/app/user-permissions/user-permissions.component.ts +++ b/src/app/user-permissions/user-permissions.component.ts @@ -154,6 +154,7 @@ export class UserPermissionsComponent { this.permission.reset(); this.permission.get('userCode')?.setValue(""); this.showPermissions = false; + this.collapseAll(this.permissions) } }) } @@ -177,4 +178,19 @@ export class UserPermissionsComponent { } } } + + collapseAll(nodes: PermissionNode[]): void { + nodes.forEach(node => { + node.expanded = false; + + if (node.children) { + this.collapseAll(node.children); + } + + if (node.buttons) { + this.collapseAll(node.buttons); + } + }); + } + } diff --git a/src/assets/data/app.uri.json b/src/assets/data/app.uri.json index 1a95ee3..17fbb50 100644 --- a/src/assets/data/app.uri.json +++ b/src/assets/data/app.uri.json @@ -54,7 +54,7 @@ }, { "Id" : "ENTITY_CHANGE_PASSWORD_URI", - "URI": "/user/changePassword", + "URI": "/authentication/change-password", "UUID": "CHANGE_PASSWORD_URI" }, { diff --git a/src/assets/data/sideMenu.json b/src/assets/data/sideMenu.json index e8fcee5..ac2ab5c 100644 --- a/src/assets/data/sideMenu.json +++ b/src/assets/data/sideMenu.json @@ -200,7 +200,7 @@ ] }, { - "name": "PermissionManager", + "name": "permissions", "route": "/home/permissions", "checked": false, "expanded": false, diff --git a/src/assets/i18n/Arabic.json b/src/assets/i18n/Arabic.json index df25fab..a645000 100644 --- a/src/assets/i18n/Arabic.json +++ b/src/assets/i18n/Arabic.json @@ -232,5 +232,6 @@ "deleteUser": "حذف حساب المستخدم", "permissionManagement": "إدارة الأذونات", "userCode": "مستخدم", - "choose" : "يختار" + "choose" : "يختار", + "allow": "يسمح" } \ No newline at end of file diff --git a/src/assets/i18n/English.json b/src/assets/i18n/English.json index 5efa2a7..9fbc5fd 100644 --- a/src/assets/i18n/English.json +++ b/src/assets/i18n/English.json @@ -231,5 +231,6 @@ "deleteUser": "Delete User", "permissionManagement": "Permission Managment", "userCode": "User", - "choose" : "Choose" + "choose" : "Choose", + "allow": "Allow" } \ No newline at end of file