Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 1797

Přidáno uživatelem Ondřej Fibich před více než 11 roky(ů)

Vydani:
- freenetis 1.1.0~aplha5

Novinky:
- fixes #344: dokonceni rozhrani zobrazujici zadosti o pripojeni
- fixes #387: komentar k pripojne sprave

Opravy:
- dilci opravy chyb po testovani

Zobrazit rozdíly:

freenetis/branches/1.1/2013-01-04.log.php
<?php defined('SYSPATH') or die('No direct script access.'); ?>
2013-01-04 21:44:38 -- error: Nezachycená PHP Error: Undefined offset: 0 v souboru application/vendors/tcpdf/tcpdf.php na řádce 13167 URL: cs/members/registration_export/4?noredirect=0&path_qsurl=members%2Fshow%2F4
2013-01-04 21:49:53 -- error: Nezachycená PHP Error: Undefined index: cols v souboru application/vendors/tcpdf/tcpdf.php na řádce 13090 URL: cs/members/registration_export/4?noredirect=0&path_qsurl=members%2Fshow%2F4
2013-01-04 21:50:39 -- error: Nezachycená PHP Error: Undefined index: cols v souboru application/vendors/tcpdf/tcpdf.php na řádce 13090 URL: cs/members/registration_export/4?noredirect=0&path_qsurl=members%2Fshow%2F4
2013-01-04 21:50:42 -- error: Nezachycená PHP Error: Undefined index: cols v souboru application/vendors/tcpdf/tcpdf.php na řádce 13090 URL: cs/members/registration_export/4?noredirect=0&path_qsurl=members%2Fshow%2F4
2013-01-04 21:51:38 -- error: Nezachycená PHP Error: Undefined index: cols v souboru application/vendors/tcpdf/tcpdf.php na řádce 13090 URL: cs/members/registration_export/4?noredirect=0&path_qsurl=members%2Fshow%2F4
2013-01-04 21:51:40 -- error: Nezachycená PHP Error: Undefined index: cols v souboru application/vendors/tcpdf/tcpdf.php na řádce 13090 URL: cs/members/registration_export/4?noredirect=0&path_qsurl=members%2Fshow%2F4
2013-01-04 21:56:03 -- error: Nezachycená PHP Error: Undefined index: cols v souboru application/vendors/tcpdf/tcpdf.php na řádce 13090 URL: cs/members/registration_export/4?noredirect=0&path_qsurl=members%2Fshow%2F4
2013-01-04 21:56:29 -- error: Nezachycená PHP Error: Undefined index: cols v souboru application/vendors/tcpdf/tcpdf.php na řádce 13090 URL: cs/members/registration_export/4?noredirect=0&path_qsurl=members%2Fshow%2F4
2013-01-04 21:57:57 -- error: Nezachycená PHP Error: Undefined index: cols v souboru application/vendors/tcpdf/tcpdf.php na řádce 13090 URL: cs/members/registration_export/4?noredirect=0&path_qsurl=members%2Fshow%2F4
2013-01-04 21:58:02 -- error: Nezachycená PHP Error: Undefined index: cols v souboru application/vendors/tcpdf/tcpdf.php na řádce 13090 URL: cs/members/registration_export/4?noredirect=0&path_qsurl=members%2Fshow%2F4
2013-01-04 21:58:12 -- error: Nezachycená PHP Error: Undefined index: cols v souboru application/vendors/tcpdf/tcpdf.php na řádce 13090 URL: cs/members/registration_export/4?noredirect=0&path_qsurl=members%2Fshow%2F4
2013-01-04 22:29:50 -- error: Nezachycená PHP Error: preg_match(): No ending delimiter '/' found v souboru application/libraries/forge/Form_Input.php na řádce 710 URL: cs/settings/system
freenetis/branches/1.1/db_upgrades/upgrade_1.1.0~alpha5.php
<?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/
*
*/
/**
* This upgrade is equal to one in 1.1.0~alpha5 version
*
* @author Ondřej Fibich <ondrej.fibich@gmail.com>
*/
$upgrade_equal_to['1.1.0~alpha5'] = array();
/**
* Some forgotted changes on connection_requests table.
*
* @TODO THIS FILE SHOULD BE PUSHED INTO ~ALPHA4 BEFORE RELEASING OF 1.1
*
* @author Ondřej Fibich <ondrej.fibich@gmail.com>
*/
$upgrade_sql['1.1.0~alpha5'] = array
(
// new columns for connection request (#344)
"ALTER TABLE `connection_requests` ADD `decided_user_id` INT( 11 ) NULL DEFAULT NULL
COMMENT 'User who approve/reject this connection request.' AFTER `user_id`",
"ALTER TABLE `connection_requests` ADD `device_id` INT( 11 ) NULL DEFAULT NULL
COMMENT 'ID of the device that was created from this connection request or null.'
AFTER `mac_address`",
"ALTER TABLE `connection_requests` ADD `decided_at` DATETIME NULL DEFAULT NULL AFTER `created_at`",
"ALTER TABLE `connection_requests` DROP FOREIGN KEY `connection_requests_ibfk_2`",
"ALTER TABLE `connection_requests` DROP INDEX `user_id_fk`",
"ALTER TABLE `connection_requests` CHANGE `user_id` `added_user_id` INT( 11 ) NULL DEFAULT NULL
COMMENT 'Who made request'",
// indexies for new rows (#344)
"ALTER TABLE `connection_requests` ADD FOREIGN KEY `decided_user_id_fk` (`decided_user_id`)
REFERENCES `users` (`id`) ON DELETE SET NULL",
"ALTER TABLE `connection_requests` ADD FOREIGN KEY `device_id_fk` (`device_id`)
REFERENCES `devices` (`id`) ON DELETE SET NULL",
"ALTER TABLE `connection_requests` ADD FOREIGN KEY `added_user_id_fk` (`added_user_id`)
REFERENCES `users` (`id`) ON DELETE SET NULL"
);
freenetis/branches/1.1/application/i18n/cs_CZ/texts.php
'approve application for membership' => 'Schválit žádost o členství',
'approve connection request' => 'Schválit žádost o připojení',
'approved' => 'Schváleno',
'approved by' => 'Schválil(a)',
'approved phone operators and prefixes' => 'Povolení telefonní operátoři a předčíslí',
'approved work reports' => 'Schválené prácovní výkazy',
'approved works' => 'Schválené práce',
......
'create backup' => 'Vytvořit zálohu',
'create date' => 'Datum vytvoření',
'create new work from rejected' => 'Vytvoř novou práci ze zamítnuté',
'created from connection request' => 'Vytvořeno z požadavku o připojení',
'creating of all records' => 'Vytváření všech záznamů',
'creating of own records' => 'Vytváření vlastních záznamů',
'credit' => 'Kredit',
......
'decision counsil about adoption of member' => 'Rozhodnutí Rady o přijetí člena',
'decrease' => 'Úbytek',
'decrease of members' => 'Úbytek členů',
'decided by' => 'Rozhodnuto',
'deduct' => 'Strhnout',
'deduct entrance fee' => 'Strhnout vstupní příspěvek',
'deduction of member fee' => 'Stržení členského příspěvku',
......
'profile of association' => 'Profil organizace',
'project account' => 'Účet projektu',
'project subaccounts' => 'Projektové podúčty',
'project site' => 'Stránky projektu',
'protocol' => 'Protokol',
'proxy server' => 'Proxy server',
'purchasers account' => 'Účet odběratelů',
......
'rejected' => 'Zamítnuto',
'rejected works' => 'Zamítnuté práce',
'rejected work reports' => 'Zamítnuté prácovní výkazy',
'rejected by' => 'Zamítnul(a)',
'remove' => 'Odebrat',
'remove broadcast ip address' => 'Odebrat IP adresu broadcastu',
'remove device from monitoring' => 'Odebrat zařízení z monitoringu',
freenetis/branches/1.1/application/helpers/callback.php
echo html::image('media/images/icons/comment.png');
echo '</span>';
}
if (isset($item->member_id) && isset($item->a_comments_thread_id) &&
isset($item->a_comment_add) && $item->a_comment_add)
if (isset($item->member_id) && isset($item->a_comment_add) && $item->a_comment_add)
{
$url = ($item->a_comments_thread_id) ?
$url = (isset($item->a_comments_thread_id) && $item->a_comments_thread_id) ?
'comments/add/'.$item->a_comments_thread_id :
'comments_threads/add/connection_request/'.$item->id;
freenetis/branches/1.1/application/helpers/status.php
self::TYPE_ERROR => 'status_message_error',
self::TYPE_INFO => 'status_message_info',
);
/**
* Adds info message to queue.
*
* @param string $message Info message
* @param string $translate Enable auto-translation of message
* @param array $args Arguments of message
*/
public static function info($message, $translate = TRUE, $args = array())
{
self::_add_message(TRUE, self::TYPE_INFO, $message, $translate, $args);
}
/**
* Adds success message to queue.
freenetis/branches/1.1/application/models/device.php
protected $has_many = array
(
'ifaces', 'device_admins', 'device_engineers'
'ifaces', 'device_admins', 'device_engineers', 'connection_requests'
);
protected $belongs_to = array
freenetis/branches/1.1/application/models/subnet.php
public function get_subnet_for_connection_request($ip_address)
{
$result = $this->db->query("
SELECT s.id
FROM subnets s
LEFT JOIN ip_addresses ip ON ip.subnet_id = s.id AND
inet_aton(ip.ip_address) = inet_aton(?)
LEFT JOIN connection_requests cr ON cr.ip_address = ip.ip_address
WHERE inet_aton(s.netmask) & inet_aton(?) = inet_aton(s.network_address) AND
(cr.id IS NULL OR cr.state <> ?)
", $ip_address, $ip_address, Connection_request_Model::STATE_UNDECIDED);
SELECT s.subnet_id FROM (
SELECT s.id AS subnet_id
FROM subnets s
WHERE inet_aton(s.netmask) & inet_aton(?) = inet_aton(s.network_address)
) s
LEFT JOIN ip_addresses ip ON ip.subnet_id = s.subnet_id AND inet_aton(ip.ip_address) = inet_aton(?)
WHERE ? NOT IN (
SELECT cr.ip_address FROM connection_requests cr
WHERE cr.state = ?
)
GROUP BY s.subnet_id
HAVING COUNT(ip.id) = 0
", $ip_address, $ip_address, $ip_address, Connection_request_Model::STATE_UNDECIDED);
return ($result->count() == 1 ? $result->current()->id : NULL);
return ($result->count() > 0 ? $result->current()->subnet_id : NULL);
}
}
freenetis/branches/1.1/application/models/connection_request.php
* @property integer $id
* @property integer $member_id
* @property Member_Model $member
* @property integer $user_id
* @property User_Model $user
* @property integer $added_user_id
* @property User_Model $added_user
* @property integer $decided_user_id
* @property User_Model $decided_user
* @property integer $state
* @property datetime $created_at
* @property datetime $decided_at
* @property string $ip_address
* @property integer $subnet_id
* @property Subnet_Model $subnet
* @property string $mac_address
* @property integer $device_id
* @property Device_Model $device
* @property integer $device_type_id
* @property Enum_type_Model $device_type
* @property integer $device_template_id
......
protected $belongs_to = array
(
'member', 'user', 'device_template',
'comments_thread', 'subnet', 'device_type' => 'enum_type'
'member', 'device', 'device_template',
'comments_thread', 'subnet', 'device_type' => 'enum_type',
'added_user' => 'user', 'decided_user' => 'user'
);
// functions
......
FROM connection_requests cr
JOIN members m ON m.id = cr.member_id
JOIN subnets s ON s.id = cr.subnet_id
LEFT JOIN users u ON u.id = cr.user_id
LEFT JOIN users u ON u.id = cr.added_user_id
LEFT JOIN enum_types e ON cr.device_type_id = e.id
LEFT JOIN translations t ON e.value LIKE t.original_term AND t.lang = ?
) c
......
FROM connection_requests cr
JOIN members m ON m.id = cr.member_id
JOIN subnets s ON s.id = cr.subnet_id
LEFT JOIN users u ON u.id = cr.user_id
LEFT JOIN users u ON u.id = cr.added_user_id
LEFT JOIN enum_types e ON cr.device_type_id = e.id
LEFT JOIN translations t ON e.value LIKE t.original_term AND t.lang = ?
LEFT JOIN
......
FROM connection_requests cr
JOIN members m ON m.id = cr.member_id
JOIN subnets s ON s.id = cr.subnet_id
LEFT JOIN users u ON u.id = cr.user_id
LEFT JOIN users u ON u.id = cr.added_user_id
LEFT JOIN enum_types e ON cr.device_type_id = e.id
LEFT JOIN translations t ON e.value LIKE t.original_term AND t.lang = ?
LEFT JOIN
freenetis/branches/1.1/application/controllers/connection_requests.php
$cr_model->transaction_start();
$cr_model->member_id = $form_data['member_id'];
$cr_model->user_id = $this->user_id;
$cr_model->added_user_id = $this->user_id;
$cr_model->created_at = date('Y-m-d H:i:s');
$cr_model->ip_address = $ip_address;
$cr_model->mac_address = $form_data['mac_address'];
......
else
{
// create comment for user
$comment = NULL;
$comment = '<table>'
. '<tr><th>' . __('IP address') . ':</th>'
. '<td>' . $cr_model->ip_address . '</td></tr>'
. '<tr><th>' . __('Device type') . ':</th>'
. '<td>' . $cr_model->device_type->get_value() . '</td></tr>'
. '<tr><th>' . __('Date') . ':</th>'
. '<td>' . $cr_model->created_at . '</td></tr>'
. '</table>';
// trigger notice for member
Message_Model::activate_special_notice(
......
// set data
$cr_model->state = Connection_request_Model::STATE_REJECTED;
$cr_model->decided_at = date('Y-m-d H:i:s');
$cr_model->decided_user_id = $this->user_id;
$cr_model->save_throwable();
$cr_model->transaction_commit();
// only if user sended request by him self
if ($cr_model->member_id == $cr_model->user->member_id)
if ($cr_model->member_id == $cr_model->added_user->member_id)
{
// create comment for user
$comment = NULL;
$comment = '<table>'
. '<tr><th>' . __('Rejected by') . ':</th>'
. '<td>' . $cr_model->decided_user->get_full_name() . '</td></tr>'
. '<tr><th>' . __('Date') . ':</th>'
. '<td>' . $cr_model->decided_at . '</td></tr>'
. '</table>';
// trigger notice for member (if request was not added by some other)
Message_Model::activate_special_notice(
Message_Model::CONNECTION_REQUEST_REFUSE,
$cr_model->member_id, $this->session->get('user_id'),
$cr_model->member_id, $this->user_id,
Notifications_Controller::ACTIVATE,
Notifications_Controller::ACTIVATE, $comment
);
freenetis/branches/1.1/application/controllers/devices.php
{
// change connection request
$cr_model->state = Connection_request_Model::STATE_APPROVED;
$cr_model->decided_user_id = $this->user_id;
$cr_model->device_id = $device->id;
$cr_model->decided_at = date('Y-m-d H:i:s');
$cr_model->save_throwable();
// change connected from if member is applicant and if
......
// connection request - notice /////////////////////////////////
// only if request made by owner of device
if (isset($cr_model) && ($cr_model->member_id == $cr_model->user->member_id))
// only if request made by owner of device and ovner not
// decided the request by him self
if (isset($cr_model) &&
$cr_model->member_id == $cr_model->added_user->member_id &&
$cr_model->member_id != $this->member_id)
{
// create comment for user
$comment = NULL;
$link = html::anchor('devices/show/' . $cr_model->device_id,
$cr_model->device->name);
$comment = '<table>'
. '<tr><th>' . __('Approved by') . ':</th>'
. '<td>' . $cr_model->decided_user->get_full_name() . '</td></tr>'
. '<tr><th>' . __('Date') . ':</th>'
. '<td>' . $cr_model->decided_at . '</td></tr>'
. '<tr><th>' . __('Device') . ':</th>'
. '<td>' . $link . '</td></tr>'
. '</table>';
// trigger notice for member
Message_Model::activate_special_notice(
freenetis/branches/1.1/application/libraries/MY_Controller.php
}
catch(Exception $e)
{
Log::add_exception($e);
}
}
......
}
}
}
// connection request staff (#143)
if (Settings::get('connection_request_enable') &&
url_lang::current(2) != 'connection_requests/add')
url_lang::current(2) != 'connection_requests/add' &&
!$this->noredirect) // not show in dialogs
{
$sid = ORM::factory('subnet')->get_subnet_for_connection_request($ra_ip);
// can user make connection request for $ra_ip?
freenetis/branches/1.1/application/views/devices/show.php
<td><?php echo $gps ?></td>
</tr>
<?php endif ?>
<?php if ($device->connection_requests->count()): $cr_model = $device->connection_requests->current(); ?>
<tr>
<th><?php echo __('Created from connection request') ?></th>
<td><?php echo html::anchor('connection_requests/show/' . $cr_model->id, $cr_model->id . ' (' . $cr_model->created_at . ')') ?></td>
</tr>
<?php endif ?>
<tr>
<th><?php echo __('Comment') ?></th>
<td><?php echo $device->comment ?></td>
</tr>
freenetis/branches/1.1/application/views/main.php
<div id="footer" class="noprint">
<div id="footer-padd">
<p style="float:left; margin-left:10px;"><?php echo html::anchor("http://www.freenetis.org/", __('Project site')) ?></p>
<p style="float:left; margin-left:10px;">Powered by <?php echo html::anchor('http://www.freenetis.org/', 'FreenetIS') ?></p>
<p style="float:right; margin-right:10px;"><?php echo Kohana::lang('core.stats_footer').' '.__('Version').': '.Version::get_version() ?></p>
<div class="clear"></div>
</div>
freenetis/branches/1.1/application/views/connection_requests/show.php
</tr>
<tr>
<th><?php echo __('Added by') ?></th>
<?php if ($this->acl_check_view('Users_Controller', 'users', $connection_request->user->member_id)): ?>
<td><?php echo html::anchor('users/show/' . $connection_request->user_id, $connection_request->user->get_full_name()) ?></td>
<?php if ($this->acl_check_view('Users_Controller', 'users', $connection_request->added_user->member_id)): ?>
<td><?php echo html::anchor('users/show/' . $connection_request->added_user_id, $connection_request->added_user->get_full_name()) ?> (<?php echo $connection_request->created_at ?>)</td>
<?php else: ?>
<td><?php echo $connection_request->member->name ?></td>
<td><?php echo $connection_request->member->name ?> (<?php echo $connection_request->created_at ?>)</td>
<?php endif; ?>
</tr>
<?php if ($connection_request->decided_user_id): ?>
<tr>
<th><?php echo __('Decided by') ?></th>
<?php if ($this->acl_check_view('Users_Controller', 'users', $connection_request->decided_user->member_id)): ?>
<td><?php echo html::anchor('users/show/' . $connection_request->decided_user_id, $connection_request->decided_user->get_full_name()) ?> (<?php echo $connection_request->decided_at ?>)</td>
<?php else: ?>
<td><?php echo $connection_request->decided_user->get_full_name() ?> (<?php echo $connection_request->decided_at ?>)</td>
<?php endif; ?>
</tr>
<?php endif; ?>
<tr>
<th><?php echo __('State') ?></th>
<td><b><?php echo callback::connection_request_state_field($connection_request, 'state') ?></b></td>
</tr>
<?php if ($connection_request->device_id): ?>
<tr>
<th><?php echo __('Device') ?></th>
<?php if ($this->acl_check_view('Devices_Controller', 'devices', $connection_request->device->user->member_id)): ?>
<td><?php echo html::anchor('devices/show/' . $connection_request->device_id, $connection_request->device->name) ?></td>
<?php else: ?>
<td><?php echo $connection_request->device->name ?></td>
<?php endif; ?>
</tr>
<?php endif; ?>
<?php if ($connection_request->device_type->id): ?>
<tr>
<th><?php echo __('Device type') ?></th>
freenetis/branches/1.1/version.php
* The current version of FreenetIS.
* This value must be changed by developers in a new release of FreenetIS.
*/
define('FREENETIS_VERSION', '1.1.0~alpha4');
define('FREENETIS_VERSION', '1.1.0~alpha5');

Také k dispozici: Unified diff