aboutsummaryrefslogtreecommitdiffstats
path: root/app/policies/application_policy.rb
diff options
context:
space:
mode:
authorRobert2017-07-04 18:59:26 +0200
committerRobert2017-07-04 21:54:04 +0200
commit9d52ccea7b00b957bf6cf67a44029912ee6b171f (patch)
tree701c2c793c4f0ff9d1cfec668986812bccf5019d /app/policies/application_policy.rb
parent16423b19122eefed728fc71e52d5c1660ff5575a (diff)
downloadchouette-core-9d52ccea7b00b957bf6cf67a44029912ee6b171f.tar.bz2
Refs: #3478@3h; Policy Cleanup and Providing Policy and permissions for all models and actions
- ApplicationPolicy nondestructive permission depend on model existance - ApplicationPolicy destructive permission default to `false` - Tied Policy permissions at ApplicationPolicy Level: edit? → update?, new? → create?, index? → show? - ApplicationPolicy convenience methods `delete?` & `authorizes_action?(action)` - Refactoring of `spec/helpers/table_builder_helper_spec.rb` accordingly - Stubbing scope in specs (cannot switch to referential with a `build_stubbed` instance)
Diffstat (limited to 'app/policies/application_policy.rb')
-rw-r--r--app/policies/application_policy.rb36
1 files changed, 18 insertions, 18 deletions
diff --git a/app/policies/application_policy.rb b/app/policies/application_policy.rb
index e8d7f5f30..b23d9e0cf 100644
--- a/app/policies/application_policy.rb
+++ b/app/policies/application_policy.rb
@@ -6,13 +6,25 @@ class ApplicationPolicy
destroy?
end
- # Tie edit and update together, #edit?, do not override #edit?,
+ def authorizes_action?(action)
+ public_send("#{action}?")
+ rescue NoMethodError
+ false
+ end
+
+ # Tie edit? and update? together, #edit?, do not override #edit?,
# unless you want to break this tie on purpose
def edit?
update?
end
- # Tie new and create together, do not override #new?,
+ # Tie index? and show? together, do not override #new?,
+ # unless you want to break this tie on purpose
+ def index?
+ show?
+ end
+
+ # Tie new? and create? together, do not override #new?,
# unless you want to break this tie on purpose
def new?
create?
@@ -39,31 +51,19 @@ class ApplicationPolicy
record.referential if record.respond_to?(:referential)
end
- def index?
- show?
- end
-
- def show?
- scope.where(:id => record.id).exists?
- end
-
def create?
false
end
- def new?
- create?
- end
-
- def update?
+ def destroy?
false
end
- def edit?
- update?
+ def show?
+ scope.where(:id => record.id).exists?
end
- def destroy?
+ def update?
false
end