Revize 99
Přidáno uživatelem Tomáš Dulík před asi 16 roky(ů)
freenetis/trunk/kohana/application/i18n/cs_CZ/texts.php | ||
---|---|---|
'number of the hours'=> 'počet hodin',
|
||
'old password'=> 'staré heslo',
|
||
'operating account' => 'Provozní účet',
|
||
'or'=>'nebo',
|
||
'origin account'=> 'Zdrojový účet',
|
||
'ospf area id' => 'OSPF area ID',
|
||
'outbound'=> 'odchozí',
|
||
... | ... | |
'select interface' => 'Vyber rozhraní',
|
||
'select port' => 'Vyber port',
|
||
'select segment' => 'Vyber segment',
|
||
'select subnet name' => 'Vyber podsíť',
|
||
'select subnet name' => 'Vyber jméno podsítě',
|
||
'select subnet ip' => 'Vyber IP adresu podsítě',
|
||
'select subnet' => 'Vyber podsíť',
|
||
'select the member'=> 'Vyber člena',
|
||
'select user' => 'Vyber uživatele',
|
freenetis/trunk/kohana/application/controllers/members.php | ||
---|---|---|
<?php
|
||
class Members_Controller extends Controller {
|
||
|
||
protected $member_id = false;
|
||
protected $user_id = false;
|
||
|
||
protected $member_id= false;
|
||
protected $user_id= false;
|
||
function get_member_types() {
|
||
return array(
|
||
'regular'=>url_lang::lang('texts.Regular member'),
|
||
'applicant'=>url_lang::lang('texts.applicant')
|
||
);
|
||
}
|
||
function index()
|
||
{
|
||
url::redirect(url_lang::base().'members/show_all');
|
||
... | ... | |
$form->input('middle_name')->label(url_lang::lang('texts.middle name').':')->rules('length[3,30]');
|
||
$form->input('surname')->label(url_lang::lang('texts.surname').':')->rules('required|length[3,60]');
|
||
$form->input('post_title')->label(url_lang::lang('texts.post title').':')->rules('length[3,30]');
|
||
$form->dropdown('type')->label(url_lang::lang('texts.Type').':')->options(array('member'=>url_lang::lang('texts.Honest member'),'wannabe'=>url_lang::lang('texts.Wanna be a member')));
|
||
$form->dropdown('type')->label(url_lang::lang('texts.Type').':')
|
||
->options(array('member'=>url_lang::lang('texts.Honest member'),'wannabe'=>url_lang::lang('texts.Wanna be a member')));
|
||
$form->input('membername')->label(url_lang::lang('texts.Members name').':')->rules('required|length[3,60]');
|
||
$form->group('')->label(url_lang::lang('texts.Password'));
|
||
$form->password('password')->label(url_lang::lang('texts.password').':')->rules('required|length[3,50]')->class('required');
|
||
... | ... | |
if ($this->gacl_class->acl_check('freenetis', 'edit_own', 'all', $_SESSION['username'],get_class($this),'edit_surname'))
|
||
$form->input('surname')->label(url_lang::lang('texts.surname').':')->rules('required|length[3,60]')->value($member_data->surname);
|
||
$form->input('post_title')->label(url_lang::lang('texts.post title').':')->rules('length[3,30]')->value($member_data->post_title);
|
||
if ($this->gacl_class->acl_check('freenetis', 'edit_own', 'all', $_SESSION['username'],get_class($this),'edit_type'))$form->dropdown('type')->label(url_lang::lang('texts.Type').':')->options(array('regular'=>url_lang::lang('texts.Regular member'),'applicant'=>url_lang::lang('texts.applicant')))->selected($member_data->type);
|
||
if ($this->gacl_class->acl_check('freenetis', 'edit_own', 'all', $_SESSION['username'],get_class($this),'edit_type'))
|
||
$form->dropdown('type')->label(url_lang::lang('texts.Type').':')
|
||
->options(MEMBER_TYPES)
|
||
->selected($member_data->type);
|
||
if ($this->gacl_class->acl_check('freenetis', 'edit_own', 'all', $_SESSION['username'],get_class($this),'edit_membersname'))$form->input('membername')->label(url_lang::lang('texts.Members name').':')->rules('required|length[3,60]')->value($member_data->namem);
|
||
|
||
$form->group('')->label(url_lang::lang('texts.Contact informations'));
|
freenetis/trunk/kohana/application/controllers/ip_addresses.php | ||
---|---|---|
<?php
|
||
class Ip_addresses_Controller extends Controller {
|
||
protected $form;
|
||
protected $arr_mask_by_id;
|
||
protected $arr_net_by_id;
|
||
|
||
function index()
|
||
{
|
||
... | ... | |
$this->subnet_id = $this->input->post('subnet_id');
|
||
|
||
|
||
$form = new Forge(url_lang::base()."ip_addresses/add/", '', 'POST', array('id' => 'article_form'));
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
|
||
$this->form=$form = new Forge(url_lang::base()."ip_addresses/add/", '', 'POST', array('id' => 'article_form'));
|
||
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
|
||
$iface_model = new Iface_Model();
|
||
$vlan_iface_model = new Vlan_iface_Model();
|
||
... | ... | |
}
|
||
|
||
$subnet_model = new Subnet_Model();
|
||
$arr_subnets = array();
|
||
$subnets = $subnet_model->select('id','name')->orderby('name')->find_all();
|
||
$arr_subnets[0] = '----- '.url_lang::lang('texts.select subnet').' -----';
|
||
$subnets = $subnet_model
|
||
->select("id","name","network_address as net_str",
|
||
"inet_aton(network_address) as net",
|
||
"32-log2((~inet_aton(netmask) & 0xffffffff) + 1) as mask")
|
||
->orderby('name')->find_all();
|
||
$arr_subnets_netnames[]=$arr_subnets_names[] = '----- '.url_lang::lang('texts.select subnet').' -----';
|
||
$arr_subnets_ids[]=$arr_subnets_masks[]=$arr_subnets_nets[]=0;
|
||
foreach ($subnets as $subnet) {
|
||
$arr_subnets[$subnet->id] = $subnet->name;
|
||
$arr_subnets_names[$subnet->id] = $subnet->name . ": ". $subnet->net_str."/".$subnet->mask;
|
||
$this->arr_mask_by_id[$subnet->id]=$subnet->mask;
|
||
$this->arr_net_by_id[$subnet->id]=$subnet->net;
|
||
$arr_subnets_nets[] = $subnet->net;
|
||
$arr_subnets_masks[] = $subnet->mask;
|
||
$arr_subnets_netnames[] = $subnet->net_str."/".$subnet->mask.": ".$subnet->name ;
|
||
$arr_subnets_ids[]=$subnet->id;
|
||
}
|
||
$form->group('')->label(url_lang::lang('texts.IP addresses'));
|
||
|
||
array_multisort($arr_subnets_nets, SORT_NUMERIC, SORT_ASC,
|
||
$arr_subnets_masks, SORT_NUMERIC, SORT_ASC,
|
||
$arr_subnets_ids, SORT_NUMERIC, SORT_ASC,
|
||
$arr_subnets_netnames, SORT_STRING, SORT_ASC);
|
||
|
||
$arr_subnets_ips=array_combine($arr_subnets_ids, $arr_subnets_netnames);
|
||
//$form->group('')->label(url_lang::lang('texts.IP addresses'));
|
||
//$form->radio('iface_type')->label(url_lang::lang('texts.IP address').':')->rules('required|length[3,250]');
|
||
|
||
if (!$ssIface_id && !$ssVlan_iface_id) {
|
||
... | ... | |
else {
|
||
$form->hidden('iface_type')->value($default);
|
||
}
|
||
$form->dropdown('iface_id')->label(url_lang::lang('texts.Interface name').':')->options($arr_ifaces)->rules('required')->class('ajax')->callback(array($this, 'callback_iface_selected'));
|
||
$form->input('IP_address')->label(url_lang::lang('texts.IP address').':')->rules('required|valid_ip');
|
||
|
||
$form->dropdown('subnet_id')->label(url_lang::lang('texts.Select subnet name').':')->options($arr_subnets)->class('ajax')->onchange('ajax_get_subnet(this.value)');
|
||
$form->group('')->label(url_lang::lang('texts.Subnet data'));
|
||
$form->dropdown('iface_id')->label(url_lang::lang('texts.Interface name').':')
|
||
->options($arr_ifaces)
|
||
->rules('required');
|
||
//->class('ajax')->callback(array($this, 'callback_iface_selected'));
|
||
$form->input('IP_address')->label(url_lang::lang('texts.IP address').':')
|
||
->callback(array($this, 'valid_ip'));
|
||
|
||
|
||
$form->dropdown('subnet_id')->label(url_lang::lang('texts.Select subnet name').':')
|
||
->options($arr_subnets_names);
|
||
//->class('ajax')->onchange('ajax_get_subnet(this.value)');
|
||
$form->group('')->label(url_lang::lang('texts.or'));
|
||
$form->dropdown('subnet_id2')->label(url_lang::lang('texts.Select subnet IP').':')
|
||
->options($arr_subnets_ips);
|
||
|
||
/**
|
||
* Removed by dulik for SVN rev. 98 - does not work with JavaScript disabled
|
||
* @todo Proper Ajax should be implemented - see http://learn.kohanaphp.com/2008/06/17/jquery-and-kohana-unobtrusive-ajax/
|
||
*
|
||
$form->group('')->label(url_lang::lang('texts.Subnet data'));
|
||
$form->input('subnet_name')->label(url_lang::lang('texts.Subnet name').':')->rules('required|length[3,250]')->callback(array($this, 'callback_subnet_selected'));
|
||
$form->input('subnet_network_address')->label(url_lang::lang('texts.Subnet network address').':')->rules('required|valid_ip')->callback(array($this, 'callback_subnet_selected'));
|
||
$form->input('subnet_netmask')->label(url_lang::lang('texts.Subnet netmask').':')->rules('required')->callback(array($this, 'callback_subnet_selected'));
|
||
$form->input('subnet_ospf_area_id')->label(url_lang::lang('texts.OSPF area ID').':')->rules('valid_digit')->callback(array($this, 'callback_subnet_selected'));
|
||
*/
|
||
|
||
|
||
$form->submit('submit')->value(url_lang::lang('texts.Save'));
|
||
special::required_forge_style($form, ' *', 'required');
|
||
|
||
... | ... | |
if ($subnet_id = $form_data['subnet_id']) {
|
||
$ip->subnet_id = $subnet_id;
|
||
}
|
||
/**
|
||
* Removed by dulik for SVN rev. 98 - does not work with JavaScript disabled
|
||
else {
|
||
$subnet = new Subnet_Model();
|
||
|
||
... | ... | |
if ($subnet->save()) $ip->subnet_id = $subnet->id;
|
||
|
||
}
|
||
|
||
*/
|
||
unset($form_data);
|
||
|
||
if ($ip->save()) {
|
||
... | ... | |
exit;
|
||
}
|
||
|
||
} else {
|
||
//$form->IP_address->value("ahoj");
|
||
|
||
}
|
||
//----- end validate --------------------------------------------------
|
||
|
||
... | ... | |
foreach ($subnets as $subnet) {
|
||
$arr_subnets[$subnet->id] = $subnet->name;
|
||
}
|
||
$form->group('')->label(url_lang::lang('texts.IP addresses'));
|
||
|
||
$form->group('')->label(url_lang::lang('texts.IP addresses'));
|
||
|
||
if (!$ssIface_id && !$ssVlan_iface_id) {
|
||
$form->radio('iface_type')->label(url_lang::lang('texts.Interface type').':')->options(array('iface'=>url_lang::lang('texts.Basic').' ','VLAN'=>url_lang::lang('texts.VLAN')))->default($default)->onchange('ajax_get_ifaces(this.value)');
|
||
... | ... | |
//----- end EDIT --------------------------------------------------------------
|
||
//=============================================================================
|
||
|
||
function valid_ip($input) {
|
||
$method=$this->form->IP_address->method; // <FORM> method = POST, GET, ...
|
||
$ip=ip2long($this->input->$method('IP_address')); // Submitted values
|
||
$subnet_id=$this->input->$method('subnet_id');
|
||
$subnet_id2=$this->input->$method('subnet_id2');
|
||
|
||
|
||
if ($subnet_id==0 && $subnet_id2==0) { // subnet was not selected
|
||
if ($ip > 0) // try to find a subnet matching to the ip
|
||
$input->add_error('required', url_lang::lang('texts.Subnet not selected - trying to guess!'));
|
||
else
|
||
$input->add_error('required', url_lang::lang('texts.Invalid IP!'));
|
||
return false;
|
||
|
||
} else if ($subnet_id==0) $subnet_id=$subnet_id2;
|
||
else if ($subnet_id2==0);
|
||
else if ($subnet_id != $subnet_id2)
|
||
$input->add_error('required', url_lang::lang('texts.Select only one subnet!'));
|
||
|
||
$subnet=$this->arr_net_by_id[$subnet_id];
|
||
$mask=$this->arr_mask_by_id[$subnet_id];
|
||
|
||
if ($ip>0) $this->check_ip($ip, $subnet, $mask, $input);
|
||
else $input->add_error('required', url_lang::lang('texts.IP address required!'));
|
||
|
||
}
|
||
function check_ip($ip, $net, $mask, $input) {
|
||
$mask=0xffffffff<<(32-$mask) & 0xffffffff;
|
||
//printf(" ip=%lx, net=%lx, mask=%lx, AND=%lx", $ip, $net, $mask, $ip & $mask);
|
||
|
||
if (($ip & $mask) != $net)
|
||
$input->add_error('required', url_lang::lang('texts.IP address does not match the subnet/mask.'));
|
||
else if ($ip==$net || $ip==($net | ~$mask))
|
||
$input->add_error('required', url_lang::lang('texts.Invalid IP!'));
|
||
|
||
}
|
||
/**
|
||
* Removed by dulik for SVN rev. 98 - does not work with JavaScript disabled
|
||
|
||
//=============================================================================
|
||
//----- AJAX ------------------------------------------------------------------
|
||
... | ... | |
if ($input->value != '' && $this->subnet_id) $input->readonly(true);
|
||
|
||
}
|
||
|
||
*/
|
||
|
||
|
||
//----- end CALLBACKs --------------------------------------------------------------
|
||
//=============================================================================
|
||
|
||
}
|
||
?>
|
Také k dispozici: Unified diff
První část velkého přepsání ip_addresses.php - přidána kontrola rozsahů dle subnetu.