Revize 1524
Přidáno uživatelem David Raška před asi 12 roky(ů)
freenetis/branches/network/application/models/subnet.php | ||
---|---|---|
) s
|
||
WHERE
|
||
(
|
||
(INET_ATON(?) > start AND INET_ATON(?) < end) OR
|
||
(INET_ATON(?) >= start AND INET_ATON(?) < end) OR
|
||
(
|
||
(INET_ATON(?)+(~INET_ATON(?) & 0xffffffff)) > start AND
|
||
(INET_ATON(?)+(~INET_ATON(?) & 0xffffffff)) >= start AND
|
||
(INET_ATON(?)+(~INET_ATON(?) & 0xffffffff)) < end
|
||
)
|
||
) OR
|
||
(
|
||
(start > INET_ATON(?) AND start < INET_ATON(?)+(~inet_aton(?) & 0xffffffff)) AND
|
||
(end > INET_ATON(?) AND end < INET_ATON(?)+(~inet_aton(?) & 0xffffffff))
|
||
(start >= INET_ATON(?) AND start <= INET_ATON(?)+(~inet_aton(?) & 0xffffffff)) AND
|
||
(end >= INET_ATON(?) AND end <= INET_ATON(?)+(~inet_aton(?) & 0xffffffff))
|
||
)
|
||
", $network_address, $network_address, $network_address,
|
||
$netmask, $network_address, $netmask,
|
||
... | ... | |
}
|
||
|
||
/**
|
||
* Returns all unique subnets by device
|
||
*
|
||
* @author David Raska
|
||
* @param type $device_id
|
||
* @return type
|
||
*/
|
||
public function get_all_unique_subnets_by_device ($device_id = NULL)
|
||
{
|
||
if (!$device_id)
|
||
$device_id = $this->id;
|
||
|
||
return $this->db->query("
|
||
SELECT s.id
|
||
FROM ip_addresses ip
|
||
JOIN ifaces i ON i.id = ip.iface_id
|
||
JOIN subnets s ON s.id = ip.subnet_id
|
||
JOIN devices d ON d.id = i.device_id
|
||
JOIN users u ON u.id = d.user_id
|
||
WHERE i.device_id = ? AND s.id NOT IN
|
||
(
|
||
SELECT s2.id
|
||
FROM users u2
|
||
JOIN devices d2 ON d2.user_id = u2.id
|
||
JOIN ifaces i2 ON i2.device_id = d2.id
|
||
JOIN ip_addresses ip2 ON ip2.iface_id = i2.id
|
||
JOIN subnets s2 ON s2.id = ip2.subnet_id
|
||
WHERE d2.id <> ? AND u2.member_id = u.member_id
|
||
)
|
||
ORDER BY INET_ATON(ip_address)
|
||
", $device_id, $device_id);
|
||
}
|
||
|
||
/**
|
||
* Returns all dependent subnets of device
|
||
*
|
||
* @author Michal Kliment
|
freenetis/branches/network/application/controllers/ip_addresses.php | ||
---|---|---|
|
||
$linkback = Path::instance()->previous();
|
||
|
||
if (url::slice(url_lang::uri($linkback),0,1) == 'ip_addresses/show')
|
||
if (url::slice(url_lang::uri($linkback),0,2) == 'ip_addresses/show')
|
||
{
|
||
$linkback = 'ip_addresses/show_all';
|
||
}
|
freenetis/branches/network/application/controllers/devices.php | ||
---|---|---|
*/
|
||
public function delete($device_id = null)
|
||
{
|
||
|
||
if (!isset($device_id))
|
||
{
|
||
Controller::warning(PARAMETER);
|
||
... | ... | |
}
|
||
|
||
$mid = $device->user->member_id;
|
||
$ifaces = $device->ifaces;
|
||
|
||
$subnet_model = new Subnet_Model();
|
||
|
||
$all_subnets = $subnet_model->get_all_unique_subnets_by_device($device->id);
|
||
|
||
$subnets = array();
|
||
|
||
foreach ($all_subnets AS $subnet)
|
||
{
|
||
$subnets[] = $subnet->id;
|
||
}
|
||
|
||
$subnets = array_unique($subnets);
|
||
|
||
if (!$this->acl_check_delete('Devices_Controller', 'devices', $mid))
|
||
{
|
||
Controller::error(ACCESS);
|
||
... | ... | |
|
||
if ($device->delete())
|
||
{
|
||
Allowed_subnets_Controller::update_enabled($mid, NULL, NULL, $subnets);
|
||
status::success('Device has been successfully deleted.');
|
||
}
|
||
else
|
Také k dispozici: Unified diff
Opravy:
- Oprava kontroly kolize podsiti
- Oprava presmerovani po smazani IP adresy
- Ostranovani povolene podsite po smazani posledniho zarizeni v podsiti