github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/ui/app/abilities/agent.js (about)

     1  import AbstractAbility from './abstract';
     2  import { computed, get } from '@ember/object';
     3  import { or } from '@ember/object/computed';
     4  
     5  export default class Client extends AbstractAbility {
     6    @or(
     7      'bypassAuthorization',
     8      'selfTokenIsManagement',
     9      'policiesIncludeAgentReadOrWrite'
    10    )
    11    canRead;
    12  
    13    @computed('token.selfTokenPolicies.[]')
    14    get policiesIncludeAgentReadOrWrite() {
    15      const policies = (get(this, 'token.selfTokenPolicies') || [])
    16        .toArray()
    17        .map((policy) => get(policy, 'rulesJSON.Agent.Policy'))
    18        .compact();
    19  
    20      return policies.some((policy) => policy === 'read' || policy === 'write');
    21    }
    22  }