Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 2167

Přidáno uživatelem Ondřej Fibich před asi 11 roky(ů)

Novinky:

- closes #738: Mazani zarizeni pri ukonceni clenstvi v budoucnosti

Zobrazit rozdíly:

freenetis/branches/1.1/application/controllers/members.php
$form->date('leaving_date')
->label('Leaving date');
$form->radio('delete_users_devices')
->options(arr::bool())
->default(1);
$form->submit('End membership');
// validation
......
}
$member->save_throwable();
// delete devices if enabled
if ($form_data['delete_users_devices'])
// leaving date is in past or today and deletion of devices is enabled
if ($member->leaving_date <= date('Y-m-d') &&
Settings::get('former_member_auto_device_remove'))
{
$device_model = new Device_Model();
$devices = $device_model->get_all_devices_by_member($member_id);
foreach ($devices as $device)
{
Devices_Controller::delete_device($device->id);
}
$member->delete_members_devices($member_id);
}
// reactivate messages
freenetis/branches/1.1/application/controllers/scheduler.php
}
/**
* Update former members and redirect them.
* Update former members and redirect them or if enabled devices of todays
* former members are deleted.
*
* @author Ondrej Fibich
*/
......
$member_model->add_today_former_members();
// gets all former members
$former_members = $member_model->get_all_former_members();
// remove devices of todays members if enabled
if (Settings::get('former_member_auto_device_remove'))
{
try
{
$mids = array();
// get member IDs
foreach ($today_former_members as $m)
{
$mids[] = $m->member_id;
}
// delete
$member_model->delete_members_devices($mids);
}
catch (Exception $e)
{
self::log_error('update_and_redirect_former_members: device delete', $e);
}
}
// only if notification enabled
if (module::e('notification'))
{
freenetis/branches/1.1/application/controllers/settings.php
// creating of new forge
$this->form = new Forge();
$this->form->group('Members');
$this->form->checkbox('former_member_auto_device_remove')
->label('Enable automatical deletion of devices of former members')
->checked(Settings::get('former_member_auto_device_remove'));
$this->form->group('Security');
$this->form->input('security_password_length')
freenetis/branches/1.1/application/i18n/cs_CZ/texts.php
'enable approval of membership without submited registration' => 'Povolit přijetí členství bez odevzdané přihlášky',
'enable automatic fio import' => 'Povolit automatický import Fio',
'enable automatic loading of "connected to" field during adding of device' => 'Povolit automatické doplňování pole "připojeno k" během přidávání zařízení',
'enable automatical deletion of devices of former members' => 'Povolit automatické mazání zařízení bývalých členů',
'enable download of statements automatically' => 'Povolit automatické stahování výpisů',
'enable financial module before approving applicants' => 'Povolte finanční modul před tím než budete přijímat členy.',
'enable integrity test (all numbers in invoice has to be in extended statement)' => 'Povolit test na celistvost (každé číslo ve faktuře musí být v podrobném výpisu)',
freenetis/branches/1.1/application/libraries/Settings.php
// URL for ARP table
'cgi_arp_url' => 'http://{GATEWAY_IP_ADDRESS}/cgi-bin/arp.cgi?ip_address={IP_ADDRESS}',
/**
* CONNECTION REQUESTS SETTINGS
*/
// are connection requests enabled?
'connection_request_enable' => 0,
/**
* FINANCE SETTINGS
*/
// default currency is Czech crown
'currency' => 'CZK',
......
// finance is enabled by default
'finance_enabled' => TRUE,
// enable/disable removing of member's devices on member leaving day (#738)
'former_member_auto_device_remove' => FALSE,
// whether hide grid on its first load (for optimalization) (#442)
'grid_hide_on_first_load' => FALSE,
freenetis/branches/1.1/application/models/member.php
}
/**
* Deletes all devices and IP addresses of the given member or members
*
* @author Ondrej Fibich
* @param integer|array $member_id Member ID or multiple IDs
*/
public function delete_members_devices($member_id)
{
if (!is_array($member_id))
{
$member_id = array($member_id);
}
if (count($member_id) > 0)
{
$mids = implode(',', array_map('intval', $member_id));
// delete devices
$this->db->query("
DELETE FROM devices WHERE user_id IN (
SELECT id FROM users
WHERE member_id IN (" . $mids . ")
)
");
// delete IP addresses
$this->db->query("
DELETE FROM ip_addresses
WHERE member_id IN (" . $mids . ")
");
// delete subnet owner
$this->db->query("
DELETE FROM subnets_owners
WHERE member_id IN (" . $mids . ");
");
}
}
/**
* Returns balance of current member
*
* @author Michal Kliment

Také k dispozici: Unified diff