Project

General

Profile

Download (1.46 KB) Statistics
| Branch: | Tag: | Revision:
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
47a93af1 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