Previously the draft mode was a phase of the PB, but that had some limitations. Now the phase drafting disappears and therefore the PB can have the status published or not published (in draft mode). That will give more flexibility in order to navigate through the different phases and see how it looks for administrators before publishing the PB and everybody can see. By default, the PB is always created in draft mode, so it gives you the flexibility to adjust and modify anything before publishing it.
117 lines
4.3 KiB
Ruby
117 lines
4.3 KiB
Ruby
module Abilities
|
|
class Administrator
|
|
include CanCan::Ability
|
|
|
|
def initialize(user)
|
|
merge Abilities::Moderation.new(user)
|
|
merge Abilities::SDG::Manager.new(user)
|
|
|
|
can :restore, Comment
|
|
cannot :restore, Comment, hidden_at: nil
|
|
|
|
can :restore, Debate
|
|
cannot :restore, Debate, hidden_at: nil
|
|
|
|
can :restore, Proposal
|
|
cannot :restore, Proposal, hidden_at: nil
|
|
|
|
can :create, Legislation::Proposal
|
|
can :show, Legislation::Proposal
|
|
can :proposals, ::Legislation::Process
|
|
|
|
can :restore, Legislation::Proposal
|
|
cannot :restore, Legislation::Proposal, hidden_at: nil
|
|
|
|
can :restore, Budget::Investment
|
|
cannot :restore, Budget::Investment, hidden_at: nil
|
|
|
|
can :restore, User
|
|
cannot :restore, User, hidden_at: nil
|
|
|
|
can :confirm_hide, Comment
|
|
cannot :confirm_hide, Comment, hidden_at: nil
|
|
|
|
can :confirm_hide, Debate
|
|
cannot :confirm_hide, Debate, hidden_at: nil
|
|
|
|
can :confirm_hide, Proposal
|
|
cannot :confirm_hide, Proposal, hidden_at: nil
|
|
|
|
can :confirm_hide, Legislation::Proposal
|
|
cannot :confirm_hide, Legislation::Proposal, hidden_at: nil
|
|
|
|
can :confirm_hide, Budget::Investment
|
|
cannot :confirm_hide, Budget::Investment, hidden_at: nil
|
|
|
|
can :confirm_hide, User
|
|
cannot :confirm_hide, User, hidden_at: nil
|
|
|
|
can :mark_featured, Debate
|
|
can :unmark_featured, Debate
|
|
|
|
can :comment_as_administrator, [Debate, Comment, Proposal, Poll::Question, Budget::Investment,
|
|
Legislation::Question, Legislation::Proposal, Legislation::Annotation, Topic]
|
|
|
|
can [:search, :create, :index, :destroy, :edit, :update], ::Administrator
|
|
can [:search, :create, :index, :destroy], ::Moderator
|
|
can [:search, :show, :edit, :update, :create, :index, :destroy, :summary], ::Valuator
|
|
can [:search, :create, :index, :destroy], ::Manager
|
|
can [:create, :read, :destroy], ::SDG::Manager
|
|
can [:search, :index], ::User
|
|
|
|
can :manage, Dashboard::Action
|
|
|
|
can [:index, :read, :new, :create, :update, :destroy, :calculate_winners], Budget
|
|
can :publish, Budget, id: Budget.drafting.ids
|
|
can [:read, :create, :update, :destroy], Budget::Group
|
|
can [:read, :create, :update, :destroy], Budget::Heading
|
|
can [:hide, :admin_update, :toggle_selection], Budget::Investment
|
|
can [:valuate, :comment_valuation], Budget::Investment
|
|
cannot [:admin_update, :toggle_selection, :valuate, :comment_valuation],
|
|
Budget::Investment, budget: { phase: "finished" }
|
|
|
|
can :create, Budget::ValuatorAssignment
|
|
|
|
can :read_admin_stats, Budget, &:balloting_or_later?
|
|
|
|
can [:search, :edit, :update, :create, :index, :destroy], Banner
|
|
|
|
can [:index, :create, :edit, :update, :destroy], Geozone
|
|
|
|
can [:read, :create, :update, :destroy, :add_question, :search_booths, :search_officers, :booth_assignments], Poll
|
|
can [:read, :create, :update, :destroy, :available], Poll::Booth
|
|
can [:search, :create, :index, :destroy], ::Poll::Officer
|
|
can [:create, :destroy, :manage], ::Poll::BoothAssignment
|
|
can [:create, :destroy], ::Poll::OfficerAssignment
|
|
can [:read, :create, :update], Poll::Question
|
|
can :destroy, Poll::Question
|
|
|
|
can :manage, SiteCustomization::Page
|
|
can :manage, SiteCustomization::Image
|
|
can :manage, SiteCustomization::ContentBlock
|
|
can :manage, Widget::Card
|
|
|
|
can :access, :ckeditor
|
|
can :manage, Ckeditor::Picture
|
|
|
|
can [:read, :debate, :draft_publication, :allegations, :result_publication,
|
|
:milestones], Legislation::Process
|
|
can [:create, :update, :destroy], Legislation::Process
|
|
can [:manage], ::Legislation::DraftVersion
|
|
can [:manage], ::Legislation::Question
|
|
can [:manage], ::Legislation::Proposal
|
|
cannot :comment_as_moderator, [::Legislation::Question, Legislation::Annotation, ::Legislation::Proposal]
|
|
|
|
can [:create], Document
|
|
can [:destroy], Document, documentable_type: "Poll::Question::Answer"
|
|
can [:create, :destroy], DirectUpload
|
|
|
|
can [:deliver], Newsletter, hidden_at: nil
|
|
can [:manage], Dashboard::AdministratorTask
|
|
|
|
can :manage, LocalCensusRecord
|
|
can [:create, :read], LocalCensusRecords::Import
|
|
end
|
|
end
|
|
end
|