Revize 2167
Přidáno uživatelem Ondřej Fibich před asi 11 roky(ů)
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
Novinky:
- closes #738: Mazani zarizeni pri ukonceni clenstvi v budoucnosti