app/controllers/admin/environment_role_manager_controller.rb
class EnvironmentRoleManagerController < AdminController
protect "manage_environment_roles", :environment
def index
@admins = Person.where("role_assignments.resource_type = ?", "Environment").includes(:role_assignments)
end
def change_roles
@admin = Person.find(params[:id])
@roles = Role.all.select { |r| r.has_kind?(:environment) }
end
def update_roles
@roles = params[:roles] ? Role.find(params[:roles]) : []
@person = Person.find(params[:person])
if @person.define_roles(@roles, environment)
session[:notice] = _("Roles successfully updated")
else
session[:notice] = _("Couldn't change the roles")
end
redirect_to action: :index
end
def change_role
@roles = Role.all.select { |r| r.has_kind?(:environment) }
@admin = Person.find(params[:id])
@associations = @admin.find_roles(environment)
end
def add_role
@person = Person.find(params[:person])
@role = Role.find(params[:role])
if environment.affiliate(@person, @role)
redirect_to action: "index"
else
@admin = Person.find(params[:person])
@roles = Role.all.select { |r| r.has_kind?(:environment) }
render action: "affiliate"
end
end
def remove_role
@association = RoleAssignment.find(params[:id])
if @association.destroy
session[:notice] = _("Member succefully unassociated")
else
session[:notice] = _("Failed to unassociate member")
end
redirect_to aciton: "index"
end
def unassociate
@association = RoleAssignment.find(params[:id])
if @association.destroy
session[:notice] = _("Member succefully unassociated")
else
session[:notice] = _("Failed to unassociate member")
end
redirect_to aciton: "index"
end
def make_admin
@people = Person.all
@roles = Role.all.select { |r| r.has_kind?(:environment) }
end
end