freenetis-github/application/controllers/allowed_subnets_counts.php @ f3413601
8baed187 | Michal Kliment | <?php defined('SYSPATH') or die('No direct script access.');
|
|
/*
|
|||
* This file is part of open source system FreenetIS
|
|||
* and it is release 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/
|
|||
*
|
|||
*/
|
|||
/**
|
|||
* Allowed subnets counts controller allow change of maximum allowed connecting
|
|||
* place per member.
|
|||
*
|
|||
* @see Allowed_subnets_Controller
|
|||
* @author Michal Kliment
|
|||
* @package Controller
|
|||
*/
|
|||
class Allowed_subnets_counts_Controller extends Controller
|
|||
{
|
|||
/**
|
|||
* Edits maximum count of allowed subnets of member
|
|||
*
|
|||
* @author Michal Kliment
|
|||
* @param integer $member_id
|
|||
*/
|
|||
public function edit($member_id = NULL)
|
|||
{
|
|||
// bad parameter
|
|||
if (!$member_id || !is_numeric($member_id))
|
|||
Controller::warning(PARAMETER);
|
|||
$member = new Member_Model($member_id);
|
|||
// member doesn't exist
|
|||
if (!$member->id || $member->id == 1)
|
|||
Controller::error(RECORD);
|
|||
// access control
|
|||
c1bdc1c4 | Michal Kliment | if (!$this->acl_check_edit('Allowed_subnets_Controller', 'allowed_subnet', $member_id))
|
|
8baed187 | Michal Kliment | Controller::error(ACCESS);
|
|
$form = new Forge(url::base(TRUE) . url::current(TRUE));
|
|||
$form->input('allowed_subnets_count')
|
|||
->label(__('Count of allowed subnets')
|
|||
. ': ' . help::hint('allowed_subnets_count'))
|
|||
->rules('valid_numeric')
|
|||
->value($member->allowed_subnets_count->count);
|
|||
$form->submit('Edit');
|
|||
// form is validate
|
|||
if ($form->validate())
|
|||
{
|
|||
$form_data = $form->as_array();
|
|||
try
|
|||
{
|
|||
$member->transaction_start();
|
|||
// posted value is not null
|
|||
if ($form_data['allowed_subnets_count'])
|
|||
{
|
|||
// count of allowed subnets is not set
|
|||
if ($member->allowed_subnets_count->id == 0)
|
|||
{
|
|||
$allowed_subnets_count = new Allowed_subnets_count_Model();
|
|||
$allowed_subnets_count->member_id = $member->id;
|
|||
$allowed_subnets_count->count = $form_data['allowed_subnets_count'];
|
|||
$allowed_subnets_count->save_throwable();
|
|||
}
|
|||
// count of allowed subnets is already set
|
|||
else
|
|||
{
|
|||
$member->allowed_subnets_count->count = $form_data['allowed_subnets_count'];
|
|||
$member->allowed_subnets_count->save_throwable();
|
|||
}
|
|||
}
|
|||
// delete null count
|
|||
else if ($member->allowed_subnets_count)
|
|||
{
|
|||
$member->allowed_subnets_count->delete_throwable();
|
|||
}
|
|||
Allowed_subnets_Controller::update_enabled($member->id);
|
|||
$member->transaction_commit();
|
|||
status::success('Count of allowed subnets has been successfully updated.');
|
|||
}
|
|||
catch (Exception $e)
|
|||
{
|
|||
$member->transaction_rollback();
|
|||
Log::add_exception($e);
|
|||
c1bdc1c4 | Michal Kliment | status::error('Error - Cannot update count of allowed subnets', $e);
|
|
8baed187 | Michal Kliment | }
|
|
$this->redirect('allowed_subnets/show_by_member/' . $member_id);
|
|||
}
|
|||
else
|
|||
{
|
|||
$title = __('Edit maximum count of allowed subnets of member') . ' ' . $member->name;
|
|||
// bread crumbs
|
|||
$breadcrumbs = breadcrumbs::add()
|
|||
->link('members/show_all', 'Members',
|
|||
$this->acl_check_view('Members_Controller', 'members'))
|
|||
->disable_translation()
|
|||
->link('members/show/' . $member->id, "ID $member->id - $member->name",
|
|||
$this->acl_check_view('Members_Controller', 'members', $member->id))
|
|||
->enable_translation()
|
|||
->link('allowed_subnets/show_by_member/' . $member->id, 'Allowed subnets')
|
|||
->text('Edit maximum count')
|
|||
->html();
|
|||
// view
|
|||
$view = new View('main');
|
|||
$view->breadcrumbs = $breadcrumbs;
|
|||
$view->title = $title;
|
|||
$view->content = new View('form');
|
|||
$view->content->headline = $title;
|
|||
$view->content->form = $form->html();
|
|||
$view->render(TRUE);
|
|||
}
|
|||
}
|
|||
}
|