ef-urms

export function getRoles(): string[] { return ['admin', 'user']; }

Usage no npm install needed!

<script type="module">
  import efUrms from 'https://cdn.skypack.dev/ef-urms';
</script>

README

EfUrms

გამოყენება:


export function getRoles(): string[] {
  return ['admin', 'user'];
}


@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    CommonModule,
    HttpClientModule,
    AppRoutingModule,
    FactoringUrmsModule,
  ],
  providers: [
    FactoringUrmsValidatorService,
    {
      provide: URMS_USER_ROLES,
      useFactory: getRoles
    }],
  bootstrap: [AppComponent]
})
export class AppModule {
  constructor(
    @Inject(URMS_USER_ROLES) roles: string[],
    private urms: FactoringUrmsValidatorService) {
    this.urms.init({permissions: roles, actionType: UrmsActionType.Disable}, false, 'default error message');
  }
}

დირექტივის ინიციალიზაცია

 public init(roles: UrmsPermissions, forgetUrms: boolean, defaultErrorMsg?: string);

forgetUrms თუ გადაცემთ true, მაშინ დირექტივა აღარ იმუშავებს.

დირექტივის მოდელები:

export interface UrmsPermissions {
    permissions: string[];
    actionType: UrmsActionType;
}

export enum UrmsActionType {
    RemoveFromDom,
    Disable
}

export interface UrmsInput {
    name: string | string[];
    errorMsg?: string;
    actionType?: UrmsActionType
}

დირექტივის გამოყენება

<!--*efUrms="input: UrmsInput" -->
*efUrms="{name:['admin1','admin3', 'admin2'], errorMsg:'არ გაქვთ უფლება', actionType: UrmsActionType.Disable}"

დირექტივაში errorMsg და actionType პარამეტრები არასავალდებულოა. მათი არ გადაცემის შემთხვევაში დირექტივა გამოიყენებს ინიციალიზაციისას გადაცემულ პარამეტრებს. თუ გადასცემთ, მაშინ კონკრეტულ ადგილას გმოყენებული დირექტივა ყურადღებას აღარ მიაქცევს სისტემის გლობალურ მნიშვნელობებს და მოიქცევა გადაცემული პარამეტრების მიხედვით.

urms ის სერვისს აქვს ასევე უფლებების შემოწმების მეთოდი hasRight(urms: UrmsInput): Observable; რომელიც შეიძლება გამოყენებულ იქნას კოდში უფლებების შესამოწმებლად