Skip to content
Snippets Groups Projects
Unverified Commit da653ac7 authored by Arnaud Levy's avatar Arnaud Levy Committed by GitHub
Browse files

Droits sur les expositions (#2789)

* rights

* fix
parent b2fc4ded
No related branches found
No related tags found
No related merge requests found
......@@ -66,6 +66,7 @@ class Ability::Admin < Ability
can :manage, Communication::Website::Localization, university_id: @user.university_id
can :manage, Communication::Website::Agenda::Event, university_id: @user.university_id
can :manage, Communication::Website::Agenda::Category, university_id: @user.university_id
can :manage, Communication::Website::Agenda::Exhibition, university_id: @user.university_id
can :manage, Communication::Website::Portfolio::Category, university_id: @user.university_id
can :manage, Communication::Website::Portfolio::Project, university_id: @user.university_id
can :manage, Communication::Website::Post::Category, university_id: @user.university_id
......
......@@ -3,12 +3,15 @@ class Ability::Author < Ability
def initialize(user)
super
can :manage, Communication::Website::Agenda::Event, university_id: @user.university_id, id: managed_agenda_event_ids
can :manage, Communication::Website::Agenda::Exhibition, university_id: @user.university_id, id: managed_agenda_event_ids
can :manage, Communication::Website::Portfolio::Project, university_id: @user.university_id, id: managed_portfolio_project_ids
can :manage, Communication::Website::Post, university_id: @user.university_id, id: managed_post_ids
can :create, Communication::Website::Agenda::Event, university_id: @user.university_id, communication_website_id: managed_websites_ids
can :create, Communication::Website::Agenda::Exhibition, university_id: @user.university_id, communication_website_id: managed_websites_ids
can :create, Communication::Website::Portfolio::Project, university_id: @user.university_id, communication_website_id: managed_websites_ids
can :create, Communication::Website::Post, university_id: @user.university_id, communication_website_id: managed_websites_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Agenda::Event::Localization', about_id: managed_agenda_event_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Agenda::Exhibition::Localization', about_id: managed_agenda_exhibition_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Portfolio::Project::Localization', about_id: managed_portfolio_project_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Post::Localization', about_id: managed_post_localization_ids
can :create, Communication::Block
......@@ -30,12 +33,28 @@ class Ability::Author < Ability
.pluck(:id)
end
def managed_agenda_exhibition_ids
@managed_agenda_exhibition_ids ||= Communication::Website::Agenda::Exhibition
.where(
university_id: @user.university_id,
communication_website_id: managed_websites_ids,
created_by_id: @user.id
)
.pluck(:id)
end
def managed_agenda_event_localization_ids
@managed_agenda_event_localization_ids ||= Communication::Website::Agenda::Event::Localization
.where(about_id: managed_agenda_event_ids)
.pluck(:id)
end
def managed_agenda_exhibition_localization_ids
@managed_agenda_exhibition_localization_ids ||= Communication::Website::Agenda::Exhibition::Localization
.where(about_id: managed_agenda_exhibition_ids)
.pluck(:id)
end
def managed_portfolio_project_ids
@managed_portfolio_project_ids ||= Communication::Website::Portfolio::Project
.where(
......
......@@ -4,6 +4,7 @@ class Ability::Contributor < Ability::Author
super
cannot :publish, Communication::Website::Post
cannot :publish, Communication::Website::Agenda::Event
cannot :publish, Communication::Website::Agenda::Exhibition
cannot :publish, Communication::Website::Portfolio::Project
end
......
......@@ -3,6 +3,7 @@ class Ability::ProgramManager < Ability
def initialize(user)
super
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Agenda::Event::Localization', about_id: managed_event_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Agenda::Exhibition::Localization', about_id: managed_exhibition_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Agenda::Category::Localization', about_id: managed_agenda_category_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Post::Localization', about_id: managed_post_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Post::Category::Localization', about_id: managed_post_category_localization_ids
......@@ -12,6 +13,7 @@ class Ability::ProgramManager < Ability
can :create, Communication::Block
can :read, Communication::Website, university_id: @user.university_id
can :manage, Communication::Website::Agenda::Event, university_id: @user.university_id
can :manage, Communication::Website::Agenda::Exhibition, university_id: @user.university_id
can :manage, Communication::Website::Agenda::Category, id: managed_agenda_category_ids
can :manage, Communication::Website::Post, university_id: @user.university_id
can :manage, Communication::Website::Post::Category, id: managed_post_category_ids
......@@ -36,6 +38,14 @@ class Ability::ProgramManager < Ability
end
end
def managed_exhibition_localization_ids
@managed_exhibition_localization_ids ||= begin
Communication::Website::Agenda::Exhibition::Localization
.where(university_id: @user.university_id)
.pluck(:id)
end
end
def managed_post_localization_ids
@managed_post_localization_ids ||= begin
Communication::Website::Post::Localization
......
......@@ -6,6 +6,7 @@ class Ability::WebsiteManager < Ability
can [:read, :analytics], Communication::Website, university_id: @user.university_id, id: managed_websites_ids
can :manage, Communication::Website::Localization, university_id: @user.university_id, communication_website_id: managed_websites_ids
can :manage, Communication::Website::Agenda::Event, university_id: @user.university_id, communication_website_id: managed_websites_ids
can :manage, Communication::Website::Agenda::Exhibition, university_id: @user.university_id, communication_website_id: managed_websites_ids
can :manage, Communication::Website::Agenda::Category, university_id: @user.university_id, communication_website_id: managed_websites_ids
can [:read, :update, :reorder], Communication::Website::Menu, university_id: @user.university_id, communication_website_id: managed_websites_ids
can :manage, Communication::Website::Menu::Item, university_id: @user.university_id, website_id: managed_websites_ids
......@@ -47,6 +48,14 @@ class Ability::WebsiteManager < Ability
end
end
def managed_agenda_exhibition_localization_ids
@managed_agenda_event_localization_ids ||= begin
Communication::Website::Agenda::Exhibition::Localization
.where(communication_website_id: managed_websites_ids)
.pluck(:id)
end
end
def managed_page_localization_ids
@managed_page_localization_ids ||= begin
Communication::Website::Page::Localization
......@@ -97,6 +106,7 @@ class Ability::WebsiteManager < Ability
def manage_blocks
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Agenda::Event::Localization', about_id: managed_agenda_event_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Agenda::Exhibition::Localization', about_id: managed_agenda_exhibition_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Agenda::Category::Localization', about_id: managed_agenda_category_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Page::Localization', about_id: managed_page_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Page::Category::Localization', about_id: managed_page_category_localization_ids
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment