datacite/bracco

View on GitHub
app/abilities/user.js

Summary

Maintainability
A
0 mins
Test Coverage
import { computed } from '@ember/object';
import { inject as service } from '@ember/service';
import { Ability } from 'ember-can';

export default Ability.extend({
  currentUser: service(),

  canUpdate: computed('currentUser.{role_id,uid}', 'model.id', function () {
    switch (this.get('currentUser.role_id')) {
      case 'staff_admin':
        return true;
      case 'consortium_admin':
      case 'provider_admin':
      case 'client_admin':
      case 'user':
        return this.get('currentUser.uid') === this.get('model.id');
      default:
        return false;
    }
  }),
  canRead: computed('currentUser.role_id', function () {
    return true;
  })
});