Projekt

Obecné

Profil

<?php defined('SYSPATH') or die('No direct script access.');
/*
* This file is part of open source system FreeNetIS
* and it is released under GPLv3 licence.
*
* More info about licence can be found:
* http://www.gnu.org/licenses/gpl-3.0.html
*
* More info about project can be found:
* http://www.freenetis.org/
*
*/

/**
*
* @package Controller
*/
class Device_admins_Controller extends Controller
{
/**
* Edits device admin
*
* @param integer $device_id
*/
public function edit($device_id = NULL)
{
if (!$this->acl_check_new('Devices_Controller', 'admin'))
Controller::error(ACCESS);
if (!isset($device_id) || !is_numeric($device_id))
Controller::warning(PARAMETER);

$device = new Device_Model($device_id);
if (!$device->id)
Controller::error(RECORD);

$model_aro = new Aro_Model();

//po zmacknuti tlacitka X se nastavi filtr na NULL
if ($this->input->post('search_system_clear'))
$search_system_input = NULL;
else
$search_system_input = $this->input->post('search_system_input');

//po zmacknuti tlacitka X se nastavi filtr na NULL
if ($this->input->post('search_group_clear'))
$search_group_input = NULL;
else
$search_group_input = $this->input->post('search_group_input');

//pridani uzivatele do skupiny
if ($this->input->post('add') != NULL && $this->input->post('system_users') != '')
{
foreach ($this->input->post("system_users") as $user_id)
{
$device_admin = ORM::factory('device_admin')
->where(array
(
'device_id' => $device_id,
'user_id' => $user_id
))->find();
if ($device_admin->id == 0)
{
$device_admin = ORM::factory('device_admin');
$device_admin->device_id = $device_id;
$device_admin->user_id = $user_id;
$device_admin->save();
}
}
}

//odebrani uzivatele ze skupiny
if ($this->input->post('remove') != NULL &&
$this->input->post('group_users') != '')
{
foreach ($this->input->post("group_users") as $user_id)
{
$device_admin = ORM::factory('device_admin')
->where(array
(
'device_id' => $device_id,
'user_id' => $user_id
))->find();
if ($device_admin->id != 0)
{
$device_admin->delete();
}
}
}

//nacteni dat z databaze a filtrem nebo bez
if ($search_system_input != NULL)
{
$users1 = $model_aro->get_all_not_in_from_device_admins_by_aro_group_id(
$device_id, $search_system_input
);
}
else
{
$users1 = $model_aro->get_all_not_in_from_device_admins_by_aro_group_id(
$device_id
);
}

//nacteni dat z databaze a filtrem nebo bez
if ($search_group_input != NULL)
{
$users2 = $model_aro->get_all_from_device_admins_by_aro_group_id(
$device_id, $search_group_input
);
}
else
{
$users2 = $model_aro->get_all_from_device_admins_by_aro_group_id(
$device_id
);
}

//generovani system dropboxu
if ($users1->count() == 0)
{
$system_users_select = form::dropdown(array
(
'name' => 'system_users[]',
'size' => 20,
'style' => 'width:250px'
));
}
else
{
foreach ($users1 as $user1)
{
$system_users[$user1->id] = $user1->name;
}
$system_users_select = form::dropdown(array
(
'name' => 'system_users[]',
'size' => 20,
'style' => 'width:250px',
'multiple' => 'multiple'
), $system_users);
}

//generovani system searchboxu
$system_users_search_box =
'<table><tr><td>' .
form::input('search_system_input', $search_system_input, 'style="width:175px;"') .
'</td><td>' .
form::submit('search_system_submit', url_lang::lang('texts.Search'), 'style="width:50px;"') .
'</td><td>' .
(($search_system_input == NULL ) ? '' : form::submit('search_system_clear', 'X', 'style="width:18px;"')) .
'</td></tr></table>';

//generovani group dropboxu
if ($users2->count() == 0)
{
$group_users_select = form::dropdown(array
(
'name' => 'group_users[]',
'size' => 20,
'style' => 'width:250px'
));
}
else
{
foreach ($users2 as $user2)
{
$group_users[$user2->id] = $user2->name;
}

$group_users_select = form::dropdown(array
(
'name' => 'group_users[]',
'size' => 20,
'style' => 'width:250px',
'multiple' => 'multiple'
), $group_users);
}

//generovani group searchboxu
$group_users_search_box =
'<table><tr><td>' .
form::input('search_group_input', $search_group_input, 'style="width:175px;"') .
'</td><td>' . form::submit('search_group_submit', url_lang::lang('texts.Search'), 'style="width:50px;"') .
'</td><td>' . (($search_group_input == NULL ) ? '' : form::submit('search_group_clear', 'X', 'style="width:18px;"')) .
'</td></tr></table>';

//tlacitka pro manipulaci
$add_button = form::submit(
'add', url_lang::lang('texts.Add') . ' ►', 'style="width:80px;"'
);

$remove_button = form::submit(
'remove', '◄ ' . url_lang::lang('texts.Remove'), 'style="width:80px;"'
);

$headline = url_lang::lang('texts.Edit device admins') . ': ' .
url_lang::lang('texts.' . $device->name);

// breadcrumbs navigation
$breadcrumbs = breadcrumbs::add()
->link('members/show_all', 'Members',
$this->acl_check_view('Members_Controller', 'members'))
->link('members/show/' . $device->user->member->id,
'ID ' . $device->user->member->id . ' - ' . $device->user->member->name,
$this->acl_check_view('Members_Controller', 'members', $device->user->member->id))
->link('users/show_by_member/' . $device->user->member_id, 'Users',
$this->acl_check_view('Users_Controller', 'users', $device->user->member_id))
->link('users/show/' . $device->user->id,
$device->user->name . ' ' . $device->user->surname . ' (' . $device->user->login . ')',
$this->acl_check_view('Users_Controller', 'users', $device->user->member_id))
->link('devices/show_by_user/' . $device->user_id,'Devices',
$this->acl_check_view('Devices_Controller', 'devices', $device->user->member_id))
->link('devices/show/' . $device->id,
($device->name != '' ? $device->name : $device_type),
$this->acl_check_view('Devices_Controller', 'devices', $device->user->member_id))
->text('Edit device admins');

$view = new View('main');
$view->title = $headline;
$view->breadcrumbs = $breadcrumbs->html();
$view->content = new View('device_admins/edit_device_admins');
$view->content->headline = $headline;
$view->content->device_id = $device_id;
$view->content->system_users_select = $system_users_select;
$view->content->system_users_search_box = $system_users_search_box;
$view->content->group_users_select = $group_users_select;
$view->content->group_users_search_box = $group_users_search_box;
$view->content->add_button = $add_button;
$view->content->remove_button = $remove_button;
$view->render(TRUE);
}

/**
* Edits devices of which is user admin
*
* @author Michal Kliment
* @param integer $user_id
*/
public function edit_user($user_id = NULL)
{
// access control
if (!$this->acl_check_new('Devices_Controller', 'admin'))
Controller::error(ACCESS);

// bad parameter
if (!isset($user_id) || !is_numeric($user_id))
Controller::warning(PARAMETER);

// user doesn't exist
$user = new User_Model($user_id);
if (!$user->id)
Controller::error(RECORD);

$model_aro = new Aro_Model();

//po zmacknuti tlacitka X se nastavi filtr na NULL
if ($this->input->post('search_system_clear'))
$search_system_input = NULL;
else
$search_system_input = $this->input->post('search_system_input');

//po zmacknuti tlacitka X se nastavi filtr na NULL
if ($this->input->post('search_group_clear'))
$search_group_input = NULL;
else
$search_group_input = $this->input->post('search_group_input');

$left_user = $this->input->post('left_user');
$right_user = $this->input->post('right_user');

//pridani uzivatele do skupiny
if ($this->input->post('add') != NULL && $this->input->post("system_devices") != '')
{
foreach ($this->input->post("system_devices") as $device_id)
{
$device_admin = ORM::factory('device_admin')
->where(array
(
'device_id' => $device_id,
'user_id' => $user_id
))->find();
if ($device_admin->id == 0)
{
$device_admin = ORM::factory('device_admin');
$device_admin->device_id = $device_id;
$device_admin->user_id = $user_id;
$device_admin->save();
}
}
}

//odebrani uzivatele ze skupiny
if ($this->input->post('remove') != NULL &&
$this->input->post("group_devices") != '')
{
foreach ($this->input->post("group_devices") as $device_id)
{
$device_admin = ORM::factory('device_admin')
->where(array
(
'device_id' => $device_id,
'user_id' => $user_id
))->find();
if ($device_admin->id != 0)
{
$device_admin->delete();
}
}
}

$arr_users = arr::merge(array
(
NULL => '----- ' . url_lang::lang('texts.select user') . ' -----'
), ORM::factory('user')->get_all_to_device_admin());

$devices1 = ORM::factory('device_admin')->get_all_devices_not_in_user_device_admins(
$user->id, $search_system_input, $left_user
);
$devices2 = ORM::factory('device_admin')->get_all_devices_in_user_device_admins(
$user->id, $search_group_input, $right_user
);

//generovani system dropboxu
if ($devices1->count() == 0)
{
$system_devices_select = form::dropdown(array
(
'name' => 'system_devices[]',
'size' => 20,
'style' => 'width:250px'
));
}
else
{
foreach ($devices1 as $device1)
{
$system_devices[$device1->id] = $device1->name . ' (' . $device1->user_name . ')';
}
$system_devices_select = form::dropdown(array
(
'name' => 'system_devices[]',
'size' => 20,
'style' => 'width:250px',
'multiple' => 'multiple'
), $system_devices);
}

//generovani system searchboxu
$system_devices_search_box =
'<table><tr><td>' .
form::input('search_system_input', $search_system_input, 'style="width:175px;"') .
'</td><td>' .
form::submit('search_system_submit', url_lang::lang('texts.Search'), 'style="width:50px;"') .
'</td><td>' .
(($search_system_input == NULL ) ? '' : form::submit('search_system_clear', 'X', 'style="width:18px;"')) .
'</td></tr></table>';

//generovani group dropboxu
if ($devices2->count() == 0)
{
$group_devices_select = form::dropdown(array
(
'name' => 'group_devices[]',
'size' => 20,
'style' => 'width:250px',
'multiple' => 'multiple'
));
}
else
{
foreach ($devices2 as $device2)
{
$group_devices[$device2->id] = $device2->name . ' (' . $device2->user_name . ')';
}

$group_devices_select = form::dropdown(array
(
'name' => 'group_devices[]',
'size' => 20,
'style' => 'width:250px',
'multiple' => 'multiple'
), $group_devices);
}

//generovani group searchboxu
$group_devices_search_box =
'<table><tr><td>' .
form::input('search_group_input', $search_group_input, 'style="width:175px;"') .
'</td><td>' .
form::submit('search_group_submit', url_lang::lang('texts.Search'), 'style="width:50px;"') .
'</td><td>' . (($search_group_input == NULL ) ? '' : form::submit('search_group_clear', 'X', 'style="width:18px;"')) .
'</td></tr></table>';

//tlacitka pro manipulaci
$add_button = form::submit(
'add', url_lang::lang('texts.Add') . ' ►', 'style="width:80px;"'
);

$remove_button = form::submit(
'remove', '◄ ' . url_lang::lang('texts.Remove'), 'style="width:80px;"'
);

$headline = url_lang::lang('texts.Edit admin of devices') . ': ' .
url_lang::lang('texts.' . $user->name . ' ' . $user->surname);

// breadcrumbs navigation
$breadcrumbs = breadcrumbs::add()
->link('members/show_all', 'Members',
$this->acl_check_view('Members_Controller', 'members'))
->link('members/show/' . $user->member->id,
'ID ' . $user->member->id . ' - ' . $user->member->name,
$this->acl_check_view('Members_Controller', 'members', $user->member->id))
->link('users/show_by_member/' . $user->member_id, 'Users',
$this->acl_check_view('Users_Controller', 'users', $user->member_id))
->link('users/show/' . $user->id,
$user->name . ' ' . $user->surname . ' (' . $user->login . ')',
$this->acl_check_view('Users_Controller', 'users', $user->member_id))
->text('Edit admin of devices');

$view = new View('main');
$view->title = $headline;
$view->breadcrumbs = $breadcrumbs->html();
$view->content = new View('device_admins/edit_device_admins_user');
$view->content->headline = $headline;
$view->content->user_id = $user_id;
$view->content->left_users_select = form::dropdown(array
(
'name' => 'left_user',
'style' => 'width:250px'
), $arr_users, $left_user);
$view->content->right_users_select = form::dropdown(array
(
'name' => 'right_user',
'style' => 'width:250px'
), $arr_users, $right_user);
$view->content->system_devices_select = $system_devices_select;
$view->content->system_devices_search_box = $system_devices_search_box;
$view->content->group_devices_select = $group_devices_select;
$view->content->group_devices_search_box = $group_devices_search_box;
$view->content->add_button = $add_button;
$view->content->remove_button = $remove_button;
$view->render(TRUE);
}

/**
* Deletes device admin
*
* @author Michal Kliment
* @param integer $device_admin_id
*/
public function delete($device_admin_id = NULL)
{
// bad parameter
if (!$device_admin_id || !is_numeric($device_admin_id))
Controller::warning(PARAMETER);

$device_admin = new Device_admin_Model($device_admin_id);

// record doesn't exist
if (!$device_admin->id)
Controller::error(RECORD);

// access control
if (!$this->acl_check_delete('Devices_Controller', 'admin'))
Controller::error(ACCESS);

// success
if ($device_admin->delete())
{
$this->session->set_flash('message', url_lang::lang(
'texts.Device admin has been successfully removed.'
));
}

url::redirect(Path::instance()->previous()->current());
}

}
(16-16/74)