Angular .. как скрыть кнопку на основе когнитивных групп - PullRequest
0 голосов
/ 22 марта 2020

Все, мы используем cognito для нашего безсерверного приложения, как часть новой функциональности, мы используем группы cognito для разрешения на основе ролей. Поэтому, если проблема является частью группы ... у него будет разрешение на добавление некоторых данных, если кнопка добавления не отображается.

Но не удалось получить требуемый результат, выполнив указанные ниже действия, может кто-нибудь мне помочь?

Вот пример кода

event.component. html '' '

<a *ngIf="!_auth.Isgroupin()" routerLink="/cards">Login</a>


<a *ngIf="!_auth.IsLoggedIn()" routerLink="/map">seee</a>

' '*

.... Служба

'' '

signIn(email, password) { 

    const authenticationData = {
      Username : email,
      Password : password,
    };
    const authenticationDetails = new AuthenticationDetails(authenticationData);

    const userData = {
      Username : email,
      Pool : userPool
    };
    const cognitoUser = new CognitoUser(userData);

    return Observable.create(observer => {

      cognitoUser.authenticateUser(authenticationDetails, {
        onSuccess: function (result) {
          console.log(result)

          var sessionIdInfo = (result.getIdToken().decodePayload());
          console.log(sessionIdInfo['cognito:groups'])
          console.log('session token: ' + result.getIdToken().getExpiration())
          observer.next(sessionIdInfo['cognito:groups']);
          observer.next(result);
          observer.complete();
        },
        onFailure: function(err) {
          console.log(err);
          observer.error(err);
        },
      });
    });
  }
 Isgroupin():boolean{
  var group=( this.getAuthenticatedUser().getSignInUserSession().getIdToken().decodePayload()['cognito:groups']);

  return (group['cognito:groups']) != null;


 }
  IsLoggedIn() {    
    return userPool.getCurrentUser() != null;
  }

' ''

...