интеграция casl с угловой 6 - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь интегрировать CASL в мое угловое приложение.Я не понимаю, как интегрировать это.

// Login Conponent

ngOnInit() {
  var jsonBody = {};
  jsonBody['email'] = 'peter@klaven';
  jsonBody['password'] = 'cityslicka';

  this._session.login(jsonBody)
}

//session.ts

import { Ability } from '@casl/ability'
 
export class Session {
  private token: string
 
  constructor(private ability: Ability) {}
 
  login(jsonBody) {
    return fetch('https://reqres.in/api/login', { method: 'POST', body:  JSON.stringify(jsonBody) })
      .then(response => response.json())
      .then(session => {
        this.ability.update(session.rules)
        this.token = session.token
       })
  }
 
  logout() {
    this.token = null
    this.ability.update([{ actions: 'read', subject: 'all' }])
  }
}

// Ability.ts

import { AbilityBuilder } from '@casl/ability';
 
export const ability = AbilityBuilder.define(can => {
  can('read', 'all')
})

// can pipe

import { CanPipe } from '@casl/angular'
import { Pipe } from "@angular/core";

@Pipe({ name: 'can' })
export class MyCanPipe extends CanPipe {}
<div *ngIf="'Post' | can: 'create'">
  <a (click)="createPost()">Add Post</a>
</div>

в приведенном выше коде, я добавил все необходимые коды файлов, которые необходимо указать: способность, сеанс, конвейер, HTML-код и т. Д. Я выполнил все указанные шагибиблиотекой 'https://www.npmjs.com/package/@casl/angular'. Я получаю' Uncaught Error: Не удалось разрешить все параметры для сеанса: (?).'эта ошибка.Я не понимаю, что с ним не так и как интегрировать этот пакет.пожалуйста помоги.Заранее спасибо.

...