foreman/app/controllers/usergroups_controller.rb @ dc697767
9c0e127b | Paul Kelly | class UsergroupsController < ApplicationController
|
|
acfbc458 | Marek Hulan | include Foreman::Controller::AutoCompleteSearch
|
|
8b737c9c | Joseph Magen | before_filter :find_resource, :only => [:edit, :update, :destroy]
|
|
e7803819 | Marek Hulan | before_filter :get_external_usergroups_to_refresh, :only => [:update]
|
|
01f8b024 | Daniel Lobato | after_filter :refresh_external_usergroups, :only => [:create, :update]
|
|
acfbc458 | Marek Hulan | ||
9c0e127b | Paul Kelly | def index
|
|
dc697767 | Daniel Lobato | @usergroups = resource_base.includes(:usergroups).paginate(:page => params[:page])
|
|
9c0e127b | Paul Kelly | end
|
|
def new
|
|||
@usergroup = Usergroup.new
|
|||
end
|
|||
def create
|
|||
@usergroup = Usergroup.new(params[:usergroup])
|
|||
if @usergroup.save
|
|||
b28fdce4 | Ohad Levy | process_success
|
|
9c0e127b | Paul Kelly | else
|
|
b28fdce4 | Ohad Levy | process_error
|
|
9c0e127b | Paul Kelly | end
|
|
end
|
|||
def edit
|
|||
end
|
|||
def update
|
|||
if @usergroup.update_attributes(params[:usergroup])
|
|||
b28fdce4 | Ohad Levy | process_success
|
|
9c0e127b | Paul Kelly | else
|
|
b28fdce4 | Ohad Levy | process_error
|
|
9c0e127b | Paul Kelly | end
|
|
acfbc458 | Marek Hulan | rescue Foreman::CyclicGraphException => e
|
|
@usergroup.errors[:usergroups] = e.record.errors[:base].join(' ')
|
|||
process_error
|
|||
9c0e127b | Paul Kelly | end
|
|
def destroy
|
|||
if @usergroup.destroy
|
|||
b28fdce4 | Ohad Levy | process_success
|
|
9c0e127b | Paul Kelly | else
|
|
b28fdce4 | Ohad Levy | process_error
|
|
9c0e127b | Paul Kelly | end
|
|
end
|
|||
acfbc458 | Marek Hulan | ||
private
|
|||
def find_by_id(permission = :view_usergroups)
|
|||
Usergroup.authorized(permission).find(params[:id])
|
|||
end
|
|||
01f8b024 | Daniel Lobato | ||
e7803819 | Marek Hulan | def get_external_usergroups_to_refresh
|
|
# we need to load current status, so we call all explicitly
|
|||
@external_usergroups = @usergroup.external_usergroups.all
|
|||
end
|
|||
def external_usergroups
|
|||
@external_usergroups || []
|
|||
end
|
|||
01f8b024 | Daniel Lobato | def refresh_external_usergroups
|
|
e7803819 | Marek Hulan | (external_usergroups + @usergroup.external_usergroups).uniq.map(&:refresh)
|
|
01f8b024 | Daniel Lobato | end
|
|
9c0e127b | Paul Kelly | end
|