kyc risk and AML & Compliance Checks automate on client creation
This commit is contained in:
@@ -392,6 +392,22 @@ export class AuthenticationService {
|
||||
return roleNames.some((n) => n === 'clerk');
|
||||
}
|
||||
|
||||
/** Returns true when the logged-in user has the "Principal Officer" role (STR conclusion/filing authority). */
|
||||
isPrincipalOfficerUser(): boolean {
|
||||
const creds = this.getCredentials();
|
||||
if (!creds || !creds.roles) return false;
|
||||
const roleNames: string[] = (creds.roles as any[]).map((r) => (r.name || r.role || '').toLowerCase().trim());
|
||||
return roleNames.some((n) => n === 'principal officer');
|
||||
}
|
||||
|
||||
/** Returns true when the logged-in user has the "AML Officer" role (first-level alert review). */
|
||||
isAmlOfficerUser(): boolean {
|
||||
const creds = this.getCredentials();
|
||||
if (!creds || !creds.roles) return false;
|
||||
const roleNames: string[] = (creds.roles as any[]).map((r) => (r.name || r.role || '').toLowerCase().trim());
|
||||
return roleNames.some((n) => n === 'aml officer');
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true ONLY for regular cashier role (not Head Cashier).
|
||||
* Regular cashier → full-screen transaction entry, no nav.
|
||||
|
||||
@@ -1167,10 +1167,6 @@
|
||||
<button mat-menu-item tabindex="0">
|
||||
<fa-icon icon="chart-bar" class="menu-item-icon"></fa-icon> Depreciation Register
|
||||
</button>
|
||||
<button mat-menu-item routerLink="/fiu" tabindex="0">
|
||||
<fa-icon icon="shield-alt" class="menu-item-icon" style="color: #dc2626"></fa-icon> Financial Intelligence
|
||||
Unit (FIU-IND)
|
||||
</button>
|
||||
</div>
|
||||
<!-- Investment -->
|
||||
<div class="deposit-menu-group">
|
||||
@@ -1571,7 +1567,8 @@
|
||||
<a
|
||||
class="gl-link"
|
||||
[class.hidden]="!matchesRbiSearch('CTR / STR')"
|
||||
(click)="rbiMenuOpen = false; openCtrStrDialog()"
|
||||
routerLink="/fiu"
|
||||
(click)="rbiMenuOpen = false"
|
||||
>
|
||||
<fa-icon icon="calculator" class="gl-icon"></fa-icon> CTR / STR
|
||||
</a>
|
||||
@@ -1668,8 +1665,13 @@
|
||||
>
|
||||
<fa-icon icon="bell" class="gl-icon"></fa-icon> Daily Position Notice
|
||||
</a>
|
||||
<a class="gl-link" [class.hidden]="!matchesRbiSearch('R/SLR')" (click)="rbiMenuOpen = false">
|
||||
<fa-icon icon="lock" class="gl-icon"></fa-icon> R/SLR
|
||||
<a
|
||||
class="gl-link"
|
||||
[class.hidden]="!matchesRbiSearch('AML')"
|
||||
routerLink="/rbi/aml"
|
||||
(click)="rbiMenuOpen = false"
|
||||
>
|
||||
<fa-icon icon="shield-alt" class="gl-icon"></fa-icon> AML
|
||||
</a>
|
||||
</div>
|
||||
<!-- OSS Reports -->
|
||||
|
||||
@@ -280,23 +280,6 @@ export class ShellComponent implements OnInit, OnDestroy {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens the CTR & STR Compliance Center dialog.
|
||||
*/
|
||||
async openCtrStrDialog(): Promise<void> {
|
||||
const { CtrStrDialogComponent } = await import('../../home/dashboard/ctr-str-dialog/ctr-str-dialog.component');
|
||||
this.dialog.open(CtrStrDialogComponent, {
|
||||
width: '95vw',
|
||||
maxWidth: '1280px',
|
||||
maxHeight: '92vh',
|
||||
panelClass: 'crr-slr-dialog-panel',
|
||||
autoFocus: false,
|
||||
disableClose: false,
|
||||
hasBackdrop: true,
|
||||
backdropClass: 'ckyc-rpt-dlg-backdrop'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens the CIMS / XBRL Returns dialog. The initial form (OSS-2, PSA, RAL, RCP-UCB)
|
||||
* is selected based on the menu link the user clicked; user can switch between
|
||||
|
||||
Reference in New Issue
Block a user