diff options
| -rw-r--r-- | app/policies/api_key_policy.rb | 19 | ||||
| -rw-r--r-- | spec/policies/api_key_policy_spec.rb | 28 | 
2 files changed, 47 insertions, 0 deletions
| diff --git a/app/policies/api_key_policy.rb b/app/policies/api_key_policy.rb new file mode 100644 index 000000000..7b4c22e33 --- /dev/null +++ b/app/policies/api_key_policy.rb @@ -0,0 +1,19 @@ +class ApiKeyPolicy < ApplicationPolicy +  class Scope < Scope +    def resolve +      scope +    end +  end + +  def destroy? +    organisation_match? && user.has_permission?('api_keys.destroy') +  end + +  def create? +    organisation_match? && user.has_permission?('api_keys.create') +  end + +  def update? +    organisation_match? && user.has_permission?('api_keys.update') +  end +end diff --git a/spec/policies/api_key_policy_spec.rb b/spec/policies/api_key_policy_spec.rb new file mode 100644 index 000000000..5b9d59fa3 --- /dev/null +++ b/spec/policies/api_key_policy_spec.rb @@ -0,0 +1,28 @@ +require 'rails_helper' + +RSpec.describe ApiKeyPolicy do + +  let(:user) { User.new } + +  subject { described_class } + +  permissions ".scope" do +    pending "add some examples to (or delete) #{__FILE__}" +  end + +  permissions :show? do +    pending "add some examples to (or delete) #{__FILE__}" +  end + +  permissions :create? do +    pending "add some examples to (or delete) #{__FILE__}" +  end + +  permissions :update? do +    pending "add some examples to (or delete) #{__FILE__}" +  end + +  permissions :destroy? do +    pending "add some examples to (or delete) #{__FILE__}" +  end +end | 
