Revize 621
Přidáno uživatelem harryhk před více než 14 roky(ů)
freenetis/trunk/kohana/application/i18n/cs_CZ/texts.php | ||
---|---|---|
'additional_contacts_infotext' => 'Další kontaktní informace',
|
||
'additional information' => 'Doplňkové informace',
|
||
'address' => 'Adresa',
|
||
'address book' => 'Telefonní adresář',
|
||
'address of connecting place' => 'Adresa přípojného místa',
|
||
'address map' => 'Adresní mapa',
|
||
'address point detail' => 'Detail adresního bodu',
|
||
... | ... | |
'gateway name' => 'Jméno brány',
|
||
'general information' => 'Obecné informace',
|
||
'generate' => 'Generovat',
|
||
'generate address book' => 'Vytvořit telefonní adresář',
|
||
'generate dhcp files' => 'Generovat soubory DHCP',
|
||
'generate forward dns files' => 'Generovat dopředné soubory DNS',
|
||
'generate mac restriction files' => 'Generovat soubory MAC restrikcí',
|
||
... | ... | |
'penalty have to be a number' => 'Pokuta musí být číslo',
|
||
'permanent' => 'Trvalé',
|
||
'phone' => 'Telefon',
|
||
'phone number' => 'Telefonní číslo',
|
||
'phone already exists in database' => 'Telefon je již v databázi',
|
||
'platform' => 'Platforma',
|
||
'please contact administrator' => 'Prosím kontaktujte administrátora.',
|
||
... | ... | |
'send e-mail notification after expiration' => 'Poslat zprávu na e-mail po vypršení přesměrování',
|
||
'send money to other account' => 'Poslat peníze na jiný účet',
|
||
'send sms' => 'Pošli SMS',
|
||
'send sms message' => 'Poslat SMS zprávu',
|
||
'send to member' => 'Pošli členovi',
|
||
'september' => 'Září',
|
||
'service' => 'Služba',
|
freenetis/trunk/kohana/application/models/subnet.php | ||
---|---|---|
);
|
||
}
|
||
|
||
/**
|
||
* @author: Lubomir Buben
|
||
* Function gets phone numbers of users of subnet to export address book.
|
||
* @param $subnet_id
|
||
* @return unknown_type
|
||
*/
|
||
public function get_phones_of_subnet($subnet_id){
|
||
return self::$db->query("SELECT
|
||
DISTINCT (u.phone),
|
||
CONCAT(u.surname,' ',u.name) as name, u.id
|
||
FROM subnets su
|
||
LEFT JOIN ip_addresses ip ON ip.subnet_id = su.id
|
||
LEFT JOIN ifaces i ON i.id = ip.iface_id
|
||
LEFT JOIN devices d ON d.id = i.device_id
|
||
LEFT JOIN users u ON u.id = d.user_id
|
||
LEFT JOIN members m ON m.id = u.member_id
|
||
WHERE su.id = $subnet_id
|
||
");
|
||
}
|
||
|
||
}
|
||
|
||
?>
|
freenetis/trunk/kohana/application/controllers/clouds.php | ||
---|---|---|
$grid->action_field('id')->label(url_lang::lang('texts.Edit')) ->url(url_lang::base().'clouds/edit') ->action(url_lang::lang('texts.Edit'))->class('center');
|
||
//if ($this->acl_check_edit('Devices_Controller','vlan'))
|
||
$grid->action_field('id')->label(url_lang::lang('texts.Delete'))->url(url_lang::base().'clouds/delete')->action(url_lang::lang('texts.Delete'))->class('center')->script('onclick="return potvrd(\''.url_lang::lang('texts.Do you want to delete this cloud').'\');"');
|
||
// $grid->action_field('id')->label(url_lang::lang('texts.Delete'))->url(url_lang::base().'redirection/delete')->action(url_lang::lang('texts.Delete'))->script('onclick="return potvrd(\''.url_lang::lang('texts.Do you want to delete this user').'\');"');
|
||
$grid->datasource( $query );
|
||
$this->template->content = $grid;
|
||
|
freenetis/trunk/kohana/application/controllers/users.php | ||
---|---|---|
|
||
$query = $model_users->get_all_users($sql_offset, (int)$limit_results, $order_by, $order_by_direction, $filter->values());
|
||
|
||
if ($total_users == 1)
|
||
url::redirect(url_lang::base().'users/show/'.$query->current()->id);
|
||
|
||
$arr_gets = array();
|
||
foreach ($this->input->get() as $key=>$value) $arr_gets[] = $key.'='.$value;
|
||
$query_string = '?'.implode('&',$arr_gets);
|
||
... | ... | |
'limit_results' => $limit_results,
|
||
'query_string' => $query_string,
|
||
'filter' => $filter->view
|
||
));
|
||
));
|
||
|
||
//$grid->add_new_button(url_lang::base().'users/add', url_lang::lang('texts.Add new user'));
|
||
$grid->order_field('id')->label('ID');
|
||
... | ... | |
$grid->order_field('login')->label(url_lang::lang('texts.Username'));
|
||
$grid->order_field('phone')->label(url_lang::lang('texts.Phone'));
|
||
if ($this->acl_check_view(get_class($this),'users'))
|
||
$grid->action_field('id') ->label(url_lang::lang('texts.User')) ->url(url_lang::base().'users/show') ->action(url_lang::lang('texts.Show'));
|
||
$grid->action_field('id') ->label(url_lang::lang('texts.User')) ->url(url_lang::base().'users/show') ->action(url_lang::lang('texts.Show'))->class('center');
|
||
if ($this->acl_check_edit(get_class($this),'users'))
|
||
$grid->action_field('id') ->label(url_lang::lang('texts.User')) ->url(url_lang::base().'users/edit') ->action(url_lang::lang('texts.Edit'));
|
||
$grid->action_field('id') ->label(url_lang::lang('texts.User')) ->url(url_lang::base().'users/edit') ->action(url_lang::lang('texts.Edit'))->class('center');
|
||
if ($this->acl_check_view('Devices_Controller','devices'))
|
||
$grid->action_field('id') ->label(url_lang::lang('texts.Devices')) ->url(url_lang::base().'devices/show_by_user')->action(url_lang::lang('texts.Show'));
|
||
$grid->action_field('id') ->label(url_lang::lang('texts.Devices')) ->url(url_lang::base().'devices/show_by_user')->action(url_lang::lang('texts.Show'))->class('center');
|
||
if ($this->acl_check_view('Users_Controller','work'))
|
||
$grid->action_field('id') ->label(url_lang::lang('texts.Works')) ->url(url_lang::base().'works/show_by_user')->action(url_lang::lang('texts.Show'));
|
||
$grid->action_field('id') ->label(url_lang::lang('texts.Works')) ->url(url_lang::base().'works/show_by_user')->action(url_lang::lang('texts.Show'))->class('center');
|
||
//if ($this->acl_check_view('Users_Controller','work'))
|
||
$grid->action_field('id') ->label(url_lang::lang('texts.Send sms')) ->url(url_lang::base().'sms/send')->action(url_lang::lang('texts.Send sms'))->class('center');
|
||
|
||
//if ($this->acl_check_delete(get_class($this),'users'))
|
||
// $grid->action_field('id')->label(url_lang::lang('texts.User'))->url(url_lang::base().'users/delete')->action(url_lang::lang('texts.Delete'))->script('onclick="return potvrd(\''.url_lang::lang('texts.delete_user').'\');"');
|
||
$grid->datasource($query);
|
||
... | ... | |
$grid->order_field('email')->label('E-mail');
|
||
if ($this->acl_check_view(get_class($this),'users',$member_id))
|
||
$grid->action_field('id') ->label(url_lang::lang('texts.User')) ->url(url_lang::base().'users/show') ->action(url_lang::lang('texts.Show'));
|
||
if ($this->acl_check_edit(get_class($this),'users') || ($this->session->get('user_type') == User_Model::$member && $this->acl_check_edit(get_class($this),'users',$member_id)))
|
||
if ($this->acl_check_edit(get_class($this),'users',$member_id))
|
||
$grid->action_field('id') ->label(url_lang::lang('texts.User')) ->url(url_lang::base().'users/edit') ->action(url_lang::lang('texts.Edit'));
|
||
//if ($this->acl_check_delete(get_class($this),'users',$member_id))
|
||
// $grid->action_field('id')->label(url_lang::lang('texts.Delete'))->url(url_lang::base().'users/delete')->action(url_lang::lang('texts.Delete'))->script('onclick="return potvrd(\''.url_lang::lang('texts.delete_user').'\');"');
|
||
... | ... | |
$this->user_id = $user_id;
|
||
|
||
//check if logged user have access right to edit this user
|
||
if(!$this->acl_check_edit(get_class($this),'users') && !($this->session->get('user_id') == $user_id && $this->acl_check_edit(get_class($this),'users',$user_model->member_id)))
|
||
if(!$this->acl_check_edit(get_class($this),'users',$user_model->member_id))
|
||
Controller::error(ACCESS);
|
||
|
||
// check if user is not member-type and logged user have access right to edit member of user
|
||
... | ... | |
$form->input('username')->label(url_lang::lang('texts.username').':')
|
||
->rules('required|length[3,50]')
|
||
->callback(array($this, 'valid_username'))->value($user_model->login);
|
||
if ($this->acl_check_edit(get_class($this),'name',$user_model->member_id))
|
||
{
|
||
$form->input('pre_title')->label(url_lang::lang('texts.pre title').':')->rules('length[3,40]')->value($user_model->pre_title);
|
||
$form->input('name')->label(url_lang::lang('texts.name').':')->rules('required|length[3,30]')->value($user_model->name);
|
||
$form->input('middle_name')->label(url_lang::lang('texts.middle name').':')->rules('length[3,30]')->value($user_model->middle_name);
|
||
$form->input('surname')->label(url_lang::lang('texts.surname').':')->rules('required|length[3,60]')->value($user_model->surname);
|
||
$form->input('post_title')->label(url_lang::lang('texts.post title').':')->rules('length[3,30]')->value($user_model->post_title);
|
||
}
|
||
if ($this->acl_check_edit(get_class($this),'phone',$user_model->member_id) || $this->acl_check_edit(get_class($this),'email',$user_model->member_id))
|
||
$form->group('')->label(url_lang::lang('texts.Contact information'));
|
||
|
||
$form->input('pre_title')->label(url_lang::lang('texts.pre title').':')->rules('length[3,40]')->value($user_model->pre_title);
|
||
$form->input('name')->label(url_lang::lang('texts.name').':')->rules('required|length[3,30]')->value($user_model->name);
|
||
$form->input('middle_name')->label(url_lang::lang('texts.middle name').':')->rules('length[3,30]')->value($user_model->middle_name);
|
||
$form->input('surname')->label(url_lang::lang('texts.surname').':')->rules('required|length[3,60]')->value($user_model->surname);
|
||
$form->input('post_title')->label(url_lang::lang('texts.post title').':')->rules('length[3,30]')->value($user_model->post_title);
|
||
$form->group('')->label(url_lang::lang('texts.Contact information'));
|
||
if ($this->acl_check_edit(get_class($this),'phone',$user_model->member_id))
|
||
$form->input('phone')
|
||
->label(url_lang::lang('texts.phone').':')
|
||
... | ... | |
$user_data = new User_Model;
|
||
$user_data->find($user_id);
|
||
$form_data['birthday'] = date("Y-m-d",$form_data['birthday']);
|
||
if ($this->acl_check_edit(get_class($this),'login',$user_data->member_id))
|
||
if ($this->acl_check_edit(get_class($this),'login',$user_data->member_id))
|
||
$form_data['login'] = $form_data['username'];
|
||
|
||
foreach($form_data as $key => $value)
|
||
... | ... | |
|
||
if ($user_data->save())
|
||
{
|
||
// logged user is same as edited user
|
||
if ($this->session->get('user_id') == $user_id)
|
||
{
|
||
// change session's data
|
||
$this->session->set('username', $user_data->login);
|
||
$this->session->set('member_id', $user_data->member_id);
|
||
$this->session->set('user_name', $user_data->name);
|
||
$this->session->set('user_surname', $user_data->surname);
|
||
if ($user_data->type == User_Model::$member)
|
||
$this->session->set('member_login', $user_data->login);
|
||
}
|
||
$this->session->set_flash('message', url_lang::lang('texts.User has been successfully updated.'));
|
||
}
|
||
else
|
||
... | ... | |
function add($member_id = null)
|
||
{
|
||
|
||
if (!$this->acl_check_new(get_class($this),'users') && !($this->session->get('user_type') == User_Model::$member && $this->acl_check_new(get_class($this),'users',$member_id)))
|
||
if (!$this->acl_check_new(get_class($this),'users',$member_id))
|
||
Controller::error(ACCESS);
|
||
|
||
if (isset($member_id))
|
||
... | ... | |
function additional_contacts ($user_id = null)
|
||
{
|
||
$model_users = new User_Model($user_id);
|
||
|
||
if (!$this->acl_check_edit(get_class($this),'additional_contacts',$model_users->member_id)) Controller::error(ACCESS);
|
||
|
||
if (!$this->acl_check_view(get_class($this), 'additional_contacts') && !($this->session->get('user_id') == $user_id && $this->acl_check_view(get_class($this), 'additional_contacts', $model_users->member_id)))
|
||
Controller::error(ACCESS);
|
||
|
||
if (isset($user_id))
|
||
{
|
||
$model_contacts = new Contact_Model();
|
||
... | ... | |
if ($user->id == 0)
|
||
Controller::error(RECORD);
|
||
// access control
|
||
if (!$this->acl_check_edit(get_class($this),'password') && !($this->session->get('user_id') == $user_id && $this->acl_check_edit(get_class($this),'password',$user->member_id)))
|
||
if (!$this->acl_check_edit(get_class($this),'password',$user->member_id))
|
||
Controller::error(ACCESS);
|
||
|
||
$this->user_id = $user_id;
|
||
... | ... | |
$user = new User_Model($user_id);
|
||
|
||
// access control
|
||
if (!$this->acl_check_edit(get_class($this),'application_password') && !($this->session->get('user_id') == $user_id && $this->acl_check_edit(get_class($this),'application_password',$user->member_id)))
|
||
Controller::error(ACCESS);
|
||
if (!$this->acl_check_edit(get_class($this),'application_password',$user->member_id)) Controller::error(ACCESS);
|
||
|
||
$this->user_id = $user_id;
|
||
|
freenetis/trunk/kohana/application/controllers/sms.php | ||
---|---|---|
/**
|
||
* SMS controller.
|
||
*
|
||
* @author Sevcik Roman
|
||
* @copyright (c) 2009 Sevcik Roman
|
||
* @license GNU GPLv3
|
||
* @license http://www.gnu.org/licenses/gpl.txt
|
||
* @author Lubomir Buben
|
||
* @copyright (c) 2010 Lubomir Buben
|
||
*/
|
||
|
||
class SMS_Controller extends Controller
|
||
{
|
||
class Sms_Controller extends Controller{
|
||
|
||
public function index()
|
||
{
|
||
url::redirect(url::base());
|
||
public function index(){
|
||
url::redirect(url_lang::base().'sms/send');
|
||
}
|
||
|
||
public function send()
|
||
{
|
||
public function send($phone=null){
|
||
//if (!$this->acl_check_2D('freenetis', 'write_email'))
|
||
// Controller::error(ACCESS);
|
||
|
||
//username
|
||
$user_id=$this->session->get('member_id');
|
||
$user_model = new User_Model();
|
||
$user_model->find($user_id);
|
||
if ($user_model->id == 0)
|
||
Controller::error(RECORD);
|
||
|
||
$this->form = new Forge(url_lang::base()."sms/send", '', 'POST', array('id' => 'article_form'));
|
||
$this->form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
$this->form->group('')->label(url_lang::lang('texts.Send sms message'));
|
||
|
||
if (isset($phone)){
|
||
$this->form->input('phone_number')->label(url_lang::lang('texts.Phone number').':')->rules('required|length[9,40]')->value($phone)->callback(array($this, 'valid_phone'));
|
||
}else{
|
||
$this->form->input('phone_number')->label(url_lang::lang('texts.Phone number').':')->rules('required|length[9,40]')->callback(array($this, 'callback_valid_phone'));
|
||
}
|
||
$this->form->textarea('message')->label(url_lang::lang('texts.Message'))->rules('required|length[0,1023]');
|
||
|
||
}
|
||
|
||
$this->form->submit('submit')->value(url_lang::lang('texts.Insert'));
|
||
special::required_forge_style($this->form, ' *', 'required');
|
||
|
||
}
|
||
//----- validate form and save data -----------------------------------
|
||
if($this->form->validate()){
|
||
$form_data = $this->form->as_array();
|
||
foreach($form_data as $key => $value){
|
||
$form_data[$key] = htmlspecialchars($value);
|
||
}
|
||
|
||
$sms_phone = $form_data['phone_number'];
|
||
$sms_text = $form_data['message'];
|
||
|
||
|
||
system("/var/www/sites/freenetis/freenetis/kohana/media/download/sendsms.sh hkf157-harry kaxadazy $sms_phone \"$sms_text\"");
|
||
|
||
unset($form_data);
|
||
if (true) {
|
||
$this->session->set_flash('message', url_lang::lang('texts.SMS message has been successfully sent.'));
|
||
url::redirect(url_lang::base().'sms');
|
||
exit;
|
||
}
|
||
}
|
||
//----- end validate --------------------------------------------------
|
||
|
||
$view = new View('main');
|
||
$view->title = url_lang::lang('texts.Send SMS message');
|
||
$view->content = new View('sms/sms_send');
|
||
$view->content->headline = url_lang::lang('texts.Send SMS message');
|
||
$view->content->form = $this->form->html();
|
||
$message = $this->session->get_once('message');
|
||
if (!empty($message))
|
||
$view->content->message = $message;
|
||
$view->render(TRUE);
|
||
}
|
||
|
||
/**
|
||
* @author: Lubomir Buben
|
||
* Function generates address book for subnet
|
||
* @return string
|
||
*/
|
||
function address_book_subnet($subnet_id=null){
|
||
$subnet = new Subnet_Model($subnet_id);
|
||
if (!$subnet_id || !$subnet->id){
|
||
Controller::error(RECORD);
|
||
url::redirect(url_lang::base().'subnets/show_all');
|
||
}
|
||
|
||
$text = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
|
||
$text .= "<Contacts>\n";
|
||
$text .= $this->generate_subnet_address_book($subnet_id);
|
||
$text .= "</Contacts>\n";
|
||
|
||
// set content header
|
||
header('Content-type: application/force-download');
|
||
header('Content-Disposition: attachment; filename="contacts.conf"');
|
||
|
||
echo ''.$text.'';
|
||
}
|
||
|
||
/**
|
||
* @author: Lubomir Buben
|
||
* Function generates address book for subnet
|
||
* @return string
|
||
*/
|
||
function address_book_cloud($cloud_id=null){
|
||
$cloud = new Cloud_Model($cloud_id);
|
||
if (!$cloud_id || !$cloud->id){
|
||
Controller::error(RECORD);
|
||
url::redirect(url_lang::base().'clouds/show_all');
|
||
}
|
||
|
||
//get cloud subnets
|
||
$subnet_model = new Subnet_Model();
|
||
$query = $subnet_model->get_subnet_of_cloud($cloud_id);
|
||
|
||
$text = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
|
||
$text .= "<Contacts>\n";
|
||
foreach ($query as $row){
|
||
$text .= $this->generate_subnet_address_book($row->id);
|
||
}
|
||
|
||
$text .= "</Contacts>\n";
|
||
|
||
// set content header
|
||
header('Content-type: application/force-download');
|
||
header('Content-Disposition: attachment; filename="contacts.conf"');
|
||
|
||
echo ''.$text.'';
|
||
}
|
||
|
||
/**
|
||
* Function generates address book for subnet.
|
||
* @param $subnet_id
|
||
* @return unknown_type
|
||
*/
|
||
function generate_subnet_address_book($subnet_id=null){
|
||
$subnet = new Subnet_Model();
|
||
$result = $subnet->get_phones_of_subnet($subnet_id);
|
||
$text = "";
|
||
foreach ($result as $row){
|
||
if($row->id != ""){
|
||
$text .= " <Contact id=\"$row->id\">\n";
|
||
$text .= " <DisplayName>$row->name</DisplayName>\n";
|
||
$text .= " <Numbers>\n";
|
||
$text .= " <MobileTelephoneNumber>$row->phone</MobileTelephoneNumber>";
|
||
$text .= " </Numbers>\n";
|
||
}
|
||
}
|
||
return $text;
|
||
}
|
||
|
||
|
||
/**
|
||
* Checks validity of phone number.
|
||
* @param $input phone number
|
||
* @return unknown_type
|
||
*/
|
||
function callback_valid_phone($input){
|
||
$value = trim($input->value);
|
||
if(!preg_match("/^[0-9]{9,9}$/",$value)){
|
||
$input->add_error('required', url_lang::lang('texts.Bad phone format.'));
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
}
|
freenetis/trunk/kohana/application/views/show_clouds.php | ||
---|---|---|
$links[] = $link_back;
|
||
//if ($this->acl_check_edit('Users_Controller','work',$work->user->member_id) && !$work->confirmed_by_id)
|
||
$links[] = html::anchor(url_lang::base().'clouds/edit/'.$cloud->id,url_lang::lang('texts.Edit'));
|
||
$links[] = html::anchor(url_lang::base().'sms/address_book_cloud/'.$cloud->id, url_lang::lang('texts.Generate address book'));
|
||
|
||
echo implode(' | ',$links);
|
||
|
freenetis/trunk/kohana/application/views/members_show.php | ||
---|---|---|
if (!$former && $this->acl_check_edit('Members_Controller', 'redirect', $member_data->member_id))
|
||
$links[] = html::anchor(url_lang::base().'redirect/member/'.$member_data->member_id, url_lang::lang('texts.Redirection'));
|
||
|
||
$links[] = html::anchor(url_lang::base().'members/registration_export/'.$member_data->member_id, url_lang::lang('texts.Registration'));
|
||
$links[] = html::anchor(url_lang::base().'members/registration_export/'.$member_data->member_id, url_lang::lang('texts.Export of registration'));
|
||
|
||
echo implode (' | ', $links)
|
||
?>
|
||
... | ... | |
<?php if ($this->acl_check_2D('freenetis', 'write_email'))
|
||
if (valid::phone_cs_CZ($member_data->phone))
|
||
{
|
||
echo form::open(url_lang::base().'sms') ;
|
||
echo html::anchor(url_lang::base().'sms/send/'.$member_data->phone,url_lang::lang('texts.Send SMS'));
|
||
/*echo form::open(url_lang::base().'sms/send/'.$member_data->phone);
|
||
echo form::hidden('email_member_id', $member_data->member_id );
|
||
echo form::hidden('address', $member_data->phone );
|
||
echo form::imagebutton('submit', url::base().'media/images/sms.png', array('title' => url_lang::lang('texts.Send SMS'), 'style' => 'width:22px; height:22px; border-width: 0px 0px 0px 0px; border-spacing: 0px;'));
|
||
echo form::close();
|
||
echo form::close();*/
|
||
}
|
||
?>
|
||
</td>
|
freenetis/trunk/kohana/application/views/subnets_show.php | ||
---|---|---|
{
|
||
$links[] = html::anchor(url_lang::base().'export/csv/subnets/utf-8/'.$subnet->id, url_lang::lang('texts.Export to CSV (utf-8)'));
|
||
$links[] = html::anchor(url_lang::base().'export/csv/subnets/windows-1250/'.$subnet->id, url_lang::lang('texts.Export to CSV (windows-1250)'));
|
||
$links[] = html::anchor(url_lang::base().'sms/address_book_subnet/'.$subnet->id, url_lang::lang('texts.Generate address book'));
|
||
}
|
||
echo implode(' | ', $links);
|
||
?>
|
Také k dispozici: Unified diff
Pridan kontroler pro zasilani sms zprav kompatibilni se systemem od firmy Materna communications (pouzivany napriklad v siti hkfree.org). V podsitich a oblastech pridana funkce vygenerovani telefonniho seznamu uzivatelu (contacts.conf) v jazyce XML. Lze importovat napriklad do aplikace b-sms plus.