diff options
Diffstat (limited to 'app/policies')
| -rw-r--r-- | app/policies/application_policy.rb | 53 | ||||
| -rw-r--r-- | app/policies/stop_area_policy.rb | 15 |
2 files changed, 68 insertions, 0 deletions
diff --git a/app/policies/application_policy.rb b/app/policies/application_policy.rb new file mode 100644 index 000000000..2a0bbc521 --- /dev/null +++ b/app/policies/application_policy.rb @@ -0,0 +1,53 @@ +class ApplicationPolicy + attr_reader :user, :record + + def initialize(user, record) + @user = user + @record = record + end + + def index? + false + end + + def show? + scope.where(:id => record.id).exists? + end + + def create? + false + end + + def new? + create? + end + + def update? + false + end + + def edit? + update? + end + + def destroy? + false + end + + def scope + Pundit.policy_scope!(user, record.class) + end + + class Scope + attr_reader :user, :scope + + def initialize(user, scope) + @user = user + @scope = scope + end + + def resolve + scope + end + end +end diff --git a/app/policies/stop_area_policy.rb b/app/policies/stop_area_policy.rb new file mode 100644 index 000000000..4fa426ff6 --- /dev/null +++ b/app/policies/stop_area_policy.rb @@ -0,0 +1,15 @@ +class StopAreaPolicy < ApplicationPolicy + class Scope < Scope + def resolve + scope + end + end + + def create? + false + end + def update? ; create? end + def new? ; create? end + def edit? ; create? end + def destroy? ; create? end +end |
