Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 954

Přidáno uživatelem Michal Kliment před více než 13 roky(ů)

Dodelana logika pro prirazovani podsiti k clenum. Pridani tlacitka pro prepinani mezi povolenymi podisitemi v hlavicce. Zbyva dodelat automaticky prepinani pri pridavani zarizeni/ip adres, pristupove prava a moznost toto vse vypnout :-)

Zobrazit rozdíly:

freenetis/branches/subnets_assigning/application/i18n/cs_CZ/texts.php
'near number %s differs from price of services: %s\ncalculated price: %s\ninvoiced price: %s' => 'Poblíž čísla %s se odlišují ceny služeb: %s\nVypočtená cena: %s\nFakturovaná cena: %s',
'netmask' => 'Maska',
'network address' => 'Síťová adresa',
'network address does not match any address ranges' => 'Síťová adresa neodpovídá žádnému adresnímu rozsahu.',
'network address does not match the mask' => 'Síťová adresa neodpovídá zadané masce.',
'network settings' => 'Nastavení sítě',
'networks' => 'Síť',
......
'other phones' => 'další telefony',
'out of peak' => 'Mimo špičku',
'outbound' => 'Odchozí',
'owner' => 'Vlastník',
'owner of account' => 'Vlastník účtu',
'owners of company telephones' => 'Vlastníci firemnch telefonů',
'page title' => 'Titulek stránky',
......
'subject' => 'Předmět',
'submit' => 'Odeslat',
'subnet' => 'Podsíť',
'subnet has been successfully disabled' => 'Podsíť byla úspěšně zakázána.',
'subnet has been successfully enabled' => 'Podsíť byla úspěšně povolena.',
'subnet has been successfully saved' => 'Podsíť byla úspěšně uložena.',
'subnet has been successfully updated' => 'Podsíť byla úspěšně upravena.',
'subnet name' => 'Název podsítě',
freenetis/branches/subnets_assigning/application/helpers/callback.php
break;
}
echo html::anchor (
if (isset($args[0]) && $args[0] != '')
echo html::anchor (
url_lang::base().$args[0].$item->id, html::image(
array(
'src' => url::base().'media/images/'.$state.'.png', 'title' => url_lang::lang('texts.'.$state))
)
);
else
echo html::image(
array(
'src' => url::base().'media/images/'.$state.'.png', 'title' => url_lang::lang('texts.'.$state))
);
}
/**
freenetis/branches/subnets_assigning/application/models/subnet.php
<?php
class Subnet_Model extends ORM {
protected $has_many = array('ip_addresses');
protected $has_one = array('subnets_owner');
protected $has_many = array('ip_addresses','allowed_subnets');
protected $belongs_to = array('segment');
/**
......
*/
public function get_all_subnets($limit_from = 0, $limit_results = 50, $order_by = 'id', $order_by_direction = 'ASC', $filter_values = array())
{
if ($order_by == "network_address")
if ($order_by == "cidr")
$order_by = 'inet_aton(network_address)';
$where = '';
foreach($filter_values as $key => $value)
......
SELECT s.id AS subnet_id, s.redirect, s.name AS subnet_name,
CONCAT(network_address,'/', 32-log2((~inet_aton(netmask) & 0xffffffff) + 1)) AS cidr, network_address, netmask,
c.name AS cloud,
ROUND((SELECT COUNT(*) FROM ip_addresses WHERE subnet_id = s.id)/((~inet_aton(s.netmask) & 0xffffffff)-1)*100,1) AS used
ROUND((SELECT COUNT(*) FROM ip_addresses WHERE subnet_id = s.id)/((~inet_aton(s.netmask) & 0xffffffff)-1)*100,1) AS used,
m.id AS member_id, m.name AS member_name
FROM subnets s
LEFT JOIN clouds c ON s.cloud_id = c.id
LEFT JOIN subnets_owners so ON s.id = so.subnet_id
LEFT JOIN members m ON so.member_id = m.id
$where
ORDER BY $order_by $order_by_direction
LIMIT $limit_from, $limit_results
......
ORDER BY net
", array($member_id));
}
/**
* Returns subnet by ip address without member's allowed subnets
*
* @author Michal Kliment
* @param integer $member_id
* @param string $ip_address
* @return MySQL Result object
*/
public function get_subnet_without_allowed_subnets_of_member_by_ip_address ($member_id, $ip_address)
{
return $this->db->query("
SELECT * FROM subnets s
WHERE inet_aton(netmask) & inet_aton(?) = inet_aton(network_address) AND s.id NOT IN (SELECT a.subnet_id FROM allowed_subnets a WHERE a.member_id = ?)
", array($ip_address, $member_id))->current();
}
}
?>
freenetis/branches/subnets_assigning/application/models/ip_address.php
WHERE ip.id = ip_address_id
");
}
/**
* Counts all ip addresses by member and subnet
*
* @author Michal Kliment
* @param integer $member_id
* @param integer $subnet_id
* @return integer
*/
public function count_all_ip_addresses_by_member_and_subnet ($member_id, $subnet_id)
{
return $this->db->query("
SELECT COUNT(*) AS count FROM
(
SELECT ip.subnet_id, IFNULL(i1.device_id, i2.device_id) AS device_id FROM ip_addresses ip
LEFT JOIN ifaces i1 ON ip.iface_id = i1.id
LEFT JOIN vlan_ifaces vi ON ip.vlan_iface_id = vi.id
LEFT JOIN ifaces i2 ON vi.iface_id = i2.id
) AS ip
JOIN devices d ON ip.device_id = d.id
JOIN users u ON d.user_id = u.id
WHERE u.member_id = ? AND ip.subnet_id = ?
", array($member_id, $subnet_id))->current()->count;
}
}
?>
freenetis/branches/subnets_assigning/application/models/subnets_owner.php
class Subnets_owner_Model extends ORM
{
protected $belongs_to = array('member');
/**
* Returns all subnets with set owner to redirect
*
freenetis/branches/subnets_assigning/application/models/allowed_subnet.php
}
/**
* Counts all disabled and allowed subnets of member
*
* @author Michal Kliment
* @param integer $member_id
* @return integer
*/
public function count_all_disabled_allowed_subnets_by_member ($member_id)
{
return $this->db->query("
SELECT COUNT(*) AS count
FROM allowed_subnets a
WHERE a.member_id = ? AND enabled = 0
", array($member_id))->current()->count;
}
/**
* Checks if record exists and return its ID
*
* @author Michal Kliment
......
return ($result && $result->current() && $result->current()->id) ? $result->current()->id : 0;
}
/**
* Returns allowed subnet by member and ip address
*
* @author Michal Kliment
* @param integer $member_id
* @param string $ip_address
* @return MySQL Result object
*/
public function get_allowed_subnet_by_member_and_ip_address ($member_id, $ip_address)
{
return $this->db->query("
SELECT a.* FROM subnets s
JOIN allowed_subnets a ON a.subnet_id = s.id
WHERE inet_aton(s.netmask) & inet_aton(?) = inet_aton(s.network_address) AND a.member_id = ?
", array ($ip_address, $member_id))->current();
}
}
?>
freenetis/branches/subnets_assigning/application/models/member.php
JOIN members m ON q.member_id = m.id
", array ($ip_address,$ip_address,$ip_address,$ip_address))->current();
}
/**
* Returns all members to dropdown
*
* @author Michal Kliment
* @return MySQL Iterator object
*/
public function get_all_members_to_dropdown ()
{
return $this->db->query("
SELECT m.id, CONCAT(u.surname,' ',u.name, ' (ID ',m.id,')') AS name FROM members m
JOIN users u ON u.member_id = m.id AND u.type = ".User_Model::$member."
ORDER BY name
");
}
}
?>
freenetis/branches/subnets_assigning/application/controllers/subnets.php
$grid->order_callback_field('subnet_name')->label(url_lang::lang('texts.Name'))->callback('callback::subnet_field');
$grid->order_field('cidr')->label(url_lang::lang('texts.Network address'));
$grid->order_callback_field('member_id')->label(url_lang::lang('texts.Owner').' '.help::hint('subnet_owner'))->callback('callback::member_field');
$grid->order_field('redirect')->label(url_lang::lang('texts.Redir'))->bool(array(url_lang::lang('texts.No'),url_lang::lang('texts.Yes')))->class('center');
$grid->order_callback_field('used')->label(url_lang::lang('texts.Used'))->callback('callback::used_field')->class('center')->help(help::hint('subnet_used_ips'));
......
$grid->datasource( $query );
$headline = url_lang::lang('texts.Subnets list');
$view = new View('main');
$view->breadcrumbs = url_lang::lang('texts.Subnets');
$view->title = $headline;
$view->content = new View('show_all');
$view->content->table = $grid;
......
//$grid->field('device_name')->label(url_lang::lang('texts.Device'));
$grid->callback_field('device_name')->label(url_lang::lang('texts.Device'))->callback('callback::device_field');
//$grid->field('member_name')->label(url_lang::lang('texts.Member'));
$grid->callback_field('member_name')->label(url_lang::lang('texts.Member'))->callback('callback::member_field');
$grid->callback_field('member_name')->label(url_lang::lang('texts.Member'))->callback('callback::member_field', ($subnet->subnets_owner->member->id) ? html::anchor (url_lang::base().'members/show/'.$subnet->subnets_owner->member->id, $subnet->subnets_owner->member->name) : '');
$grid->datasource($ip_addresses);
$breadcrumbs[] = ($this->acl_check_view('Devices_Controller','subnet')) ? html::anchor(url_lang::base().'subnets/show_all', url_lang::lang('texts.Subnets')) : url_lang::lang('texts.Subnets');
$breadcrumbs[] = $subnet->name." ($subnet->network_address/". network::netmask2cidr($subnet->netmask) .")";
$headline = url_lang::lang('texts.Subnet').' '.$subnet->name;
$view = new View('main');
$view->breadcrumbs = implode(' » ',$breadcrumbs);
$view->title = $headline;
$view->content = new View('subnets_show');
$view->content->subnet = $subnet;
$view->content->owner_id = $subnet->subnets_owner->member->id;
$view->content->owner = $subnet->subnets_owner->member->name;
$view->content->area = $area;
$view->content->grid = $grid;
$view->content->link_back = html::anchor(url_lang::base().'subnets/show_all', url_lang::lang('texts.Back to all subnets'));
......
Controller::error(ACCESS);
$redirect[0] = url_lang::lang('texts.No');
$redirect[1] = url_lang::lang('texts.Yes');
$redirect[1] = url_lang::lang('texts.Yes');
$arr_members = arr::merge (array(NULL => '----- '.url_lang::lang('texts.Select member').' -----'), arr::from_objects(ORM::factory('member')->get_all_members_to_dropdown()));
$form = new Forge(url::base().url::current(TRUE), '', 'POST', array('id' => 'article_form'));
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
$form->group('')->label(url_lang::lang('texts.Basic data'));
......
if ($this->acl_check_new('Devices_Controller', 'redirect'))
$form->dropdown('redirect')->label(url_lang::lang('texts.Redirection enabled'))->options($redirect)->selected(0);
$form->dropdown('owner_id')->label(url_lang::lang('texts.Owner').' '.help::hint('subnet_owner'))->options($arr_members);
//clouds (prirazeni subnetu k oblasti)
if (isset($cloud_id)){
$cloud = new Cloud_Model($cloud_id);
......
if ($this->acl_check_new('Devices_Controller', 'redirect'))
$subnet->redirect = $form_data['redirect'];
$subnet->cloud_id = $form_data['cloud'];
unset($form_data);
if ($subnet->save())
{
$this->session->set_flash('message', url_lang::lang('texts.Subnet has been successfully saved.'));
if ($form_data['owner_id'])
{
$subnets_owner = new Subnets_owner_Model();
$subnets_owner->subnet_id = $subnet->id;
$subnets_owner->member_id = $form_data['owner_id'];
$subnets_owner->redirect = 0;
if ($subnets_owner->save())
{
$this->session->set_flash('message', url_lang::lang('texts.Subnet has been successfully saved.'));
Allowed_subnets_Controller::update_enabled($form_data['owner_id'], array($subnet->id));
}
}
else
$this->session->set_flash('message', url_lang::lang('texts.Subnet has been successfully saved.'));
}
// for popup adding
if ($this->popup)
......
url::redirect(url_lang::base().'subnets/show/'.$subnet->id);
}
$breadcrumbs[] = ($this->acl_check_view('Devices_Controller','subnet')) ? html::anchor(url_lang::base().'subnets/show_all', url_lang::lang('texts.Subnets')) : url_lang::lang('texts.Subnets');
$breadcrumbs[] = url_lang::lang('texts.Add new');
$headline = url_lang::lang('texts.Add new subnet');
$view = new View('main');
$view->breadcrumbs = implode(' » ',$breadcrumbs);
$view->title = $headline;
$view->content = new View('form');
$view->content->form = $form->html();
$view->content->link_back = html::anchor(url_lang::base().'subnets/show_all/', url_lang::lang('texts.Back to all subnets'));
//$view->content->link_back = html::anchor(url_lang::base().'subnets/show_all/', url_lang::lang('texts.Back to all subnets'));
$view->content->headline = $headline;
$view->render(TRUE);
} // end of add
......
Controller::error(ACCESS);
$redirect[0] = url_lang::lang('texts.No');
$redirect[1] = url_lang::lang('texts.Yes');
$redirect[1] = url_lang::lang('texts.Yes');
$arr_members = arr::merge (array(NULL => '----- '.url_lang::lang('texts.Select member').' -----'), arr::from_objects(ORM::factory('member')->get_all_members_to_dropdown()));
$this->form = $form = new Forge(url_lang::base()."subnets/edit/".$subnet_id, '', 'POST', array('id' => 'article_form'));
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
$form->group('')->label(url_lang::lang('texts.Basic data'));
......
$form->input('OSPF_area_id')->label(url_lang::lang('texts.OSPF area ID').':')->rules('valid_digit')->value($subnet->OSPF_area_id);
if ($this->acl_check_edit('Devices_Controller', 'redirect'))
$form->dropdown('redirect')->label(url_lang::lang('texts.Redirection enabled'))->options($redirect)->selected($subnet->redirect);
$form->dropdown('owner_id')->label(url_lang::lang('texts.Owner').' '.help::hint('subnet_owner'))->options($arr_members)->selected($subnet->subnets_owner->member->id);
$cloud_model = new Cloud_Model();
$all_clouds = $cloud_model->get_all_clouds();
......
}
$subnet = new Subnet_Model($subnet_id);
if ($subnet->subnets_owner->member->id != $form_data['owner_id'])
{
if ($form_data['owner_id'])
{
$subnet->subnets_owner->subnet_id = $subnet->id;
$subnet->subnets_owner->member_id = $form_data['owner_id'];
$subnet->subnets_owner->redirect = 0;
$subnet->subnets_owner->save();
Allowed_subnets_Controller::update_enabled($form_data['owner_id'], array($subnet->id));
}
if ($subnet->subnets_owner->member->id && !ORM::factory('ip_address')->count_all_ip_addresses_by_member_and_subnet ($subnet->subnets_owner->member->id, $subnet->id))
Allowed_subnets_Controller::update_enabled($subnet->subnets_owner->member->id, NULL, NULL, array($subnet->id));
}
$subnet->name = $form_data['name'];
$subnet->network_address = $form_data['network_address'];
$subnet->netmask = $form_data['netmask'];
......
if ($this->acl_check_edit('Devices_Controller', 'redirect'))
$subnet->redirect = $form_data['redirect'];
$subnet->cloud_id = $form_data['cloud'];
unset($form_data);
if ($subnet->save())
{
$this->session->set_flash('message', url_lang::lang('texts.Subnet has been successfully updated.'));
url::redirect(url_lang::base().'subnets/show/'.$subnet_id);
$this->session->set_flash('message', url_lang::lang('texts.Subnet has been successfully updated.'));
}
url::redirect(url_lang::base().'subnets/show/'.$subnet_id);
}
$breadcrumbs[] = ($this->acl_check_view('Devices_Controller','subnet')) ? html::anchor(url_lang::base().'subnets/show_all', url_lang::lang('texts.Subnets')) : url_lang::lang('texts.Subnets');
$breadcrumbs[] = ($this->acl_check_view('Devices_Controller','subnet')) ? html::anchor(url_lang::base().'subnets/show/'.$subnet->id, $subnet->name." ($subnet->network_address/". network::netmask2cidr($subnet->netmask) .")") : $subnet->name." ($subnet->network_address/". network::netmask2cidr($subnet->netmask) .")";
$breadcrumbs[] = url_lang::lang('texts.Edit');
$headline = url_lang::lang('texts.Edit subnet').' - '.$subnet->name;
$view = new View('main');
$view->title = $headline;
$view->title = $headline;
$view->breadcrumbs = implode(' » ',$breadcrumbs);
$view->content = new View('form');
$view->content->form = $form->html();
$view->content->link_back = html::anchor(url_lang::base().'subnets/show_all', url_lang::lang('texts.Back to all subnets'));
//$view->content->link_back = html::anchor(url_lang::base().'subnets/show_all', url_lang::lang('texts.Back to all subnets'));
$view->content->headline = $headline;
$view->render(TRUE);
$view->render(TRUE);
}
/**
......
}
else
{
if ($subnet->subnets_owner->id)
$subnet->subnets_owner->delete();
foreach ($subnet->allowed_subnets as $allowed_subnet)
{
$member_id = $allowed_subnet->member_id;
$allowed_subnet->delete();
Allowed_subnets_Controller::update_enabled($member_id);
}
if ($subnet->delete())
$this->session->set_flash('message', url_lang::lang('texts.Subnet has been successfully deleted.'));
else
freenetis/branches/subnets_assigning/application/controllers/allowed_subnets.php
Controller::error(RECORD);
// finds all allowed subnets of member
$allowed_subnets = ORM::factory('allowed_subnet')->get_all_allowed_subnets_by_member ($member->id);
$allowed_subnet_model = new Allowed_subnet_Model();
$allowed_subnets = $allowed_subnet_model->get_all_allowed_subnets_by_member ($member->id);
$grid = new Grid(url_lang::base().'members', null, array(
'separator' => '<br /><br />',
......
$grid->field('id')->label('ID');
$grid->callback_field('subnet_name')->label(url_lang::lang('texts.Subnet'))->callback('callback::subnet_field');
$grid->callback_field('enabled')->label(url_lang::lang('texts.Enabled'))->callback('callback::enabled_field', 'allowed_subnets/change/')->class('center');
$grid->callback_field('enabled')->label(url_lang::lang('texts.Enabled'))->callback('callback::enabled_field', ($allowed_subnet_model->count_all_disabled_allowed_subnets_by_member($member->id) ? 'allowed_subnets/change/' : ''))->class('center');
$grid->action_field ('id')->label(url_lang::lang('texts.Delete'))->url(url_lang::base().'allowed_subnets/delete')->action(url_lang::lang('texts.Delete'))->class('delete_link');
$grid->datasource($allowed_subnets);
......
if (!$member->id)
Controller::error(RECORD);
$subnet_model = new Subnet_Model();
// finds all subnets without allowed subnets of member
$subnets = ORM::factory('subnet')->get_all_subnets_without_allowed_subnets_of_member ($member->id);
$arr_subnets = arr::from_objects($subnets);
$subnets = $subnet_model->get_all_subnets_without_allowed_subnets_of_member ($member->id);
$arr_subnets = arr::merge(array(NULL => '----- '.url_lang::lang('texts.select subnet').' -----'), arr::from_objects($subnets));
// selected subnet
$current_subnet = $subnet_model->get_subnet_without_allowed_subnets_of_member_by_ip_address ($member->id, server::remote_addr());
$selected = ($current_subnet && $current_subnet->id) ? $current_subnet->id : 0;
$form = new Forge(url::base().url::current(TRUE), '', 'POST', array('id' => 'article_form'));
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
$form->dropdown('subnet_id')->label(url_lang::lang('texts.Subnet').':')->rules('required')->options($arr_subnets)->add_button('subnets');
$form->dropdown('subnet_id')->label(url_lang::lang('texts.Subnet').':')->rules('required')->options($arr_subnets)->selected($selected)->add_button('subnets');
$form->submit('submit')->value(url_lang::lang('texts.Add'));
special::required_forge_style($form, ' *', 'required');
......
$allowed_subnet->enabled = !$allowed_subnet->enabled;
$allowed_subnet->save();
self::update_enabled($allowed_subnet->member_id);
url::redirect(url_lang::base().'allowed_subnets/show_by_member/'.$allowed_subnet->member_id);
if ($allowed_subnet->enabled)
{
$this->session->set_flash('message', url_lang::lang('texts.Subnet has been successfully enabled.'));
self::update_enabled($allowed_subnet->member_id);
}
else
{
$this->session->set_flash('message', url_lang::lang('texts.Subnet has been successfully disabled.'));
self::update_enabled($allowed_subnet->member_id, NULL, array($allowed_subnet->subnet_id));
}
url::redirect(Path::instance()->previous()->current());
}
/**
......
*
* @author Michal Kliment
* @param integer $member_id
* @param string | array $to_enabled
* @param string | array $to_enable
* @return void
*/
public static function update_enabled ($member_id, $to_enabled = array())
public static function update_enabled ($member_id, $to_enable = array(), $to_disable = array(), $to_remove = array())
{
// bad parameter
if (!$member_id)
......
return;
// to_enabled must be array
if (!is_array($to_enabled))
$to_enabled = array($to_enabled);
if (!is_array($to_enable))
$to_enable = array($to_enable);
if (!is_array($to_disable))
$to_disable = array($to_disable);
// finds all allowed subnet of member
$allowed_subnet_model = new Allowed_subnet_Model();
$allowed_subnets = $allowed_subnet_model->where('member_id', $member->id)->orderby(array('enabled' => 'desc', 'last_update' => 'desc'))->find_all();
......
// to_enabled have the hightest priority
foreach ($allowed_subnets as $allowed_subnet)
{
if (!in_array($allowed_subnet->subnet_id, $to_enabled))
if (in_array($allowed_subnet->subnet_id, $to_remove))
{
$allowed_subnet->delete();
continue;
}
if (!in_array($allowed_subnet->subnet_id, $to_enable) && !in_array($allowed_subnet->subnet_id, $to_disable))
$arr_subnets[] = $allowed_subnet->subnet_id;
}
$arr_subnets = arr::merge ($to_enabled, $arr_subnets);
$arr_subnets = arr::merge ($to_enable, $arr_subnets, $to_disable);
// maximum count of allowed subnets (0 = unlimited)
$max_enabled = ($member->allowed_subnets_count->count) ? $member->allowed_subnets_count->count : count($arr_subnets);
......
$enabled = 0;
foreach ($arr_subnets as $subnet)
{
if (!$subnet)
continue;
if ($aid = $allowed_subnet_model->exists ($member->id, $subnet))
$allowed_subnet_model->where('id',$aid)->find();
else
freenetis/branches/subnets_assigning/application/controllers/redirect.php
* @param $subnet_id
* @return unknown_type
*/
function subnet($subnet_id)
function subnet($subnet_id = NULL)
{
// access rights
if (!$this->acl_check_edit('Members_Controller', 'redirect'))
Controller::error(ACCESS);
if (!isset($subnet_id))
Controller::warning(PARAMETER);
$subnet = new Member_Model($subnet_id);
$subnet = new Subnet_Model($subnet_id);
if ($subnet->id == 0)
Controller::error(RECORD);
$array[0] = url_lang::lang('texts.No');
......
else
{
// view
$breadcrumbs[] = ($this->acl_check_view('Devices_Controller','subnet')) ? html::anchor(url_lang::base().'subnets/show_all', url_lang::lang('texts.Subnets')) : url_lang::lang('texts.Subnets');
$breadcrumbs[] = ($this->acl_check_view('Devices_Controller','subnet')) ? html::anchor(url_lang::base().'subnets/show/'.$subnet->id, $subnet->name." ($subnet->network_address/". network::netmask2cidr($subnet->netmask) .")") : $subnet->name." ($subnet->network_address/". network::netmask2cidr($subnet->netmask) .")";
$breadcrumbs[] = url_lang::lang('texts.Redirection');
$headline = url_lang::lang('texts.Redirection');
$view = new View('main');
$view->breadcrumbs = implode(' » ',$breadcrumbs);
$view->title = $headline;
$view->content = new View('form');
$view->content->headline = $headline;
$view->content->link_back = html::anchor(url_lang::base().'subnets/show/'.$subnet_id, url_lang::lang('texts.Back to the subnet'));
//$view->content->link_back = html::anchor(url_lang::base().'subnets/show/'.$subnet_id, url_lang::lang('texts.Back to the subnet'));
$view->content->form = $form->html();
$view->render(TRUE);
}
freenetis/branches/subnets_assigning/application/libraries/MY_Controller.php
// boolean variable if user has active voip number (for menu rendering)
$this->user_has_voip = (bool) ORM::factory('voip_sip')->where('user_id',$this->user_id)->find_all()->count();
// ip address span
$this->ip_address_span = server::remote_addr();
if (($ptr_record = dns::get_ptr_record(server::remote_addr())) != '')
$this->ip_address_span .= ' <i>('.$ptr_record.')</i>';
// toggle button between allowed subnets
$allowed_subnet_model = new Allowed_subnet_Model();
$allowed_subnet = $allowed_subnet_model->get_allowed_subnet_by_member_and_ip_address ($this->session->get('member_id'), server::remote_addr());
if ($allowed_subnet && $allowed_subnet->id)
{
if ($allowed_subnet_model->count_all_disabled_allowed_subnets_by_member($this->session->get('member_id')))
$this->ip_address_span .= ' '.html::anchor (url_lang::base().'allowed_subnets/change/'.$allowed_subnet->id, html::image (array('src' => url::base().'media/images/'.(($allowed_subnet->enabled) ? 'active' : 'inactive').'.png')));
else
$this->ip_address_span .= ' '.html::image (array('src' => url::base().'media/images/'.(($allowed_subnet->enabled) ? 'active' : 'inactive').'.png'));
}
// updates paths
$this->update_paths();
}
freenetis/branches/subnets_assigning/application/views/main.php
<tr>
<td class="orange"><?php echo url_lang::lang('texts.IP address').':' ?></td>
<td class="bold">&nbsp;
<?php echo server::remote_addr() ?><?php echo ($ptr_record = dns::get_ptr_record(server::remote_addr()))!='' ? ' <i>('.$ptr_record.')</i>' : '' ?>
<?php echo $this->ip_address_span ?>
</td>
</tr>
</table>
......
<div id="content">
<div id="content-padd">
<?php echo (isset($breadcrumbs)) ? "<span class='breadcrumbs'>$breadcrumbs</span><br /><br />" : '' ?>
<?php $message = $this->session->get_once('message');
echo empty($message) ? '' : '<div class="message">'.$message.'</div>'; ?>
<?php echo $content ?>
</div>
</div>
freenetis/branches/subnets_assigning/application/views/subnets_show.php
if (isset($submenu))
echo '<div class="submenu">'.$submenu.'</div>';
$links[] = $link_back;
//$links[] = $link_back;
if ($this->acl_check_edit('Devices_Controller', 'subnet'))
$links[] = html::anchor(url_lang::base().'subnets/edit/'.$subnet->id, url_lang::lang('texts.Edit'));
if ($this->acl_check_edit('Devices_Controller', 'redirect'))
......
<th><?php echo url_lang::lang('texts.Netmask') ?></th>
<td><?php echo $subnet->netmask ?></td>
</tr>
<?php if ($owner_id): ?>
<tr>
<th><?php echo url_lang::lang('texts.Owner') ?> <?php echo help::hint('subnet_owner') ?></th>
<td><?php echo html::anchor (url_lang::base().'members/show/'.$owner_id, $owner) ?></td>
</tr>
<?php endif ?>
<tr>
<th><?php echo url_lang::lang('texts.OSPF area ID') ?></th>
<td><?php echo $subnet->OSPF_area_id ?></td>
</tr>

Také k dispozici: Unified diff