adds spending proposal show for valuator and admin
This commit is contained in:
committed by
Juanjo Bazán
parent
009733a43b
commit
11d6d0b6d6
@@ -2,6 +2,7 @@ class SpendingProposalsController < ApplicationController
|
|||||||
include FeatureFlags
|
include FeatureFlags
|
||||||
|
|
||||||
before_action :authenticate_user!, except: [:index]
|
before_action :authenticate_user!, except: [:index]
|
||||||
|
before_action :verify_valuator, only: [:show]
|
||||||
|
|
||||||
load_and_authorize_resource
|
load_and_authorize_resource
|
||||||
|
|
||||||
@@ -31,4 +32,8 @@ class SpendingProposalsController < ApplicationController
|
|||||||
params.require(:spending_proposal).permit(:title, :description, :external_url, :geozone_id, :terms_of_service, :captcha, :captcha_key)
|
params.require(:spending_proposal).permit(:title, :description, :external_url, :geozone_id, :terms_of_service, :captcha, :captcha_key)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def verify_valuator
|
||||||
|
raise CanCan::AccessDenied unless current_user.try(:valuator?) || current_user.try(:administrator?)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
9
app/models/abilities/valuator.rb
Normal file
9
app/models/abilities/valuator.rb
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
module Abilities
|
||||||
|
class Valuator
|
||||||
|
include CanCan::Ability
|
||||||
|
|
||||||
|
def initialize(user)
|
||||||
|
can :manage, SpendingProposal
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -7,6 +7,8 @@ class Ability
|
|||||||
alias_action :hide_in_moderation_screen, to: :hide
|
alias_action :hide_in_moderation_screen, to: :hide
|
||||||
|
|
||||||
if user # logged-in users
|
if user # logged-in users
|
||||||
|
self.merge Abilities::Valuator.new(user) if user.valuator?
|
||||||
|
|
||||||
if user.administrator?
|
if user.administrator?
|
||||||
self.merge Abilities::Administrator.new(user)
|
self.merge Abilities::Administrator.new(user)
|
||||||
elsif user.moderator?
|
elsif user.moderator?
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ Rails.application.routes.draw do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
resources :spending_proposals, only: [:index, :new, :create]
|
resources :spending_proposals, only: [:index, :new, :create, :show]
|
||||||
|
|
||||||
resources :stats, only: [:index]
|
resources :stats, only: [:index]
|
||||||
|
|
||||||
|
|||||||
@@ -415,12 +415,6 @@ ActiveRecord::Schema.define(version: 20160217101004) do
|
|||||||
add_index "users", ["hidden_at"], name: "index_users_on_hidden_at", using: :btree
|
add_index "users", ["hidden_at"], name: "index_users_on_hidden_at", using: :btree
|
||||||
add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree
|
add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree
|
||||||
|
|
||||||
create_table "validators", force: :cascade do |t|
|
|
||||||
t.integer "user_id"
|
|
||||||
end
|
|
||||||
|
|
||||||
add_index "validators", ["user_id"], name: "index_validators_on_user_id", using: :btree
|
|
||||||
|
|
||||||
create_table "valuators", force: :cascade do |t|
|
create_table "valuators", force: :cascade do |t|
|
||||||
t.integer "user_id"
|
t.integer "user_id"
|
||||||
end
|
end
|
||||||
@@ -496,6 +490,5 @@ ActiveRecord::Schema.define(version: 20160217101004) do
|
|||||||
add_foreign_key "moderators", "users"
|
add_foreign_key "moderators", "users"
|
||||||
add_foreign_key "notifications", "users"
|
add_foreign_key "notifications", "users"
|
||||||
add_foreign_key "organizations", "users"
|
add_foreign_key "organizations", "users"
|
||||||
add_foreign_key "validators", "users"
|
|
||||||
add_foreign_key "valuators", "users"
|
add_foreign_key "valuators", "users"
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user