2015-12-19 23:31:08 +01:00
< ? php
2015-12-20 11:36:12 +01:00
/**
* Generates a hint , if user joined angeltypes that require a driving license and the user has no driver license information provided .
*/
2017-01-02 03:57:23 +01:00
function user_driver_license_required_hint ()
{
global $user ;
2015-12-20 11:36:12 +01:00
2017-01-02 03:57:23 +01:00
$angeltypes = User_angeltypes ( $user );
$user_driver_license = UserDriverLicense ( $user [ 'UID' ]);
2015-12-20 11:36:12 +01:00
2016-11-11 14:59:25 +01:00
// User has already entered data, no hint needed.
if ( $user_driver_license != null ) {
2017-01-02 03:57:23 +01:00
return null ;
2016-11-11 14:59:25 +01:00
}
2017-01-02 03:57:23 +01:00
foreach ( $angeltypes as $angeltype ) {
if ( $angeltype [ 'requires_driver_license' ]) {
return sprintf ( _ ( " You joined an angeltype which requires a driving license. Please edit your driving license information here: %s. " ), '<a href="' . user_driver_license_edit_link () . '">' . _ ( " driving license information " ) . '</a>' );
}
2015-12-20 11:36:12 +01:00
}
2017-01-02 03:57:23 +01:00
return null ;
2015-12-20 11:36:12 +01:00
}
2015-12-19 23:31:08 +01:00
/**
* Route user driver licenses actions .
*/
2017-01-02 03:57:23 +01:00
function user_driver_licenses_controller ()
{
global $user ;
2015-12-19 23:31:08 +01:00
2017-01-02 03:57:23 +01:00
if ( ! isset ( $user )) {
redirect ( page_link_to ( '' ));
}
2015-12-19 23:31:08 +01:00
2017-01-02 03:57:23 +01:00
$action = strip_request_item ( 'action' , 'edit' );
2015-12-19 23:31:08 +01:00
2017-01-02 03:57:23 +01:00
switch ( $action ) {
2015-12-19 23:31:08 +01:00
default :
case 'edit' :
return user_driver_license_edit_controller ();
}
}
/**
* Link to user driver license edit page for given user .
*
2017-01-02 03:57:23 +01:00
* @ param User $user
2015-12-19 23:31:08 +01:00
*/
2017-01-02 03:57:23 +01:00
function user_driver_license_edit_link ( $user = null )
{
if ( $user == null ) {
return page_link_to ( 'user_driver_licenses' );
}
return page_link_to ( 'user_driver_licenses' ) . '&user_id=' . $user [ 'UID' ];
2015-12-19 23:31:08 +01:00
}
/**
2016-11-10 13:55:16 +01:00
* Loads the user for the driver license .
2015-12-19 23:31:08 +01:00
*/
2017-01-02 03:57:23 +01:00
function user_driver_license_load_user ()
{
global $user ;
2015-12-19 23:31:08 +01:00
2017-01-02 03:57:23 +01:00
$user_source = $user ;
2016-10-01 10:48:19 +02:00
2017-01-02 03:57:23 +01:00
if ( isset ( $_REQUEST [ 'user_id' ])) {
$user_source = User ( $_REQUEST [ 'user_id' ]);
if ( $user_source == null ) {
redirect ( user_driver_license_edit_link ());
}
2016-09-29 09:43:08 +02:00
}
2016-11-10 13:55:16 +01:00
2017-01-02 03:57:23 +01:00
return $user_source ;
2016-11-10 13:55:16 +01:00
}
/**
* Edit a users driver license information .
*/
2017-01-02 03:57:23 +01:00
function user_driver_license_edit_controller ()
{
global $privileges , $user ;
2016-11-10 13:55:16 +01:00
2017-01-02 03:57:23 +01:00
$user_source = user_driver_license_load_user ();
2016-11-10 13:55:16 +01:00
// only privilege admin_user can edit other users driver license information
if ( $user [ 'UID' ] != $user_source [ 'UID' ] && ! in_array ( 'admin_user' , $privileges )) {
2017-01-02 03:57:23 +01:00
redirect ( user_driver_license_edit_link ());
2015-12-19 23:31:08 +01:00
}
2017-01-02 03:57:23 +01:00
$user_driver_license = UserDriverLicense ( $user_source [ 'UID' ]);
if ( $user_driver_license == null ) {
$wants_to_drive = false ;
$user_driver_license = UserDriverLicense_new ();
} else {
$wants_to_drive = true ;
}
2015-12-19 23:31:08 +01:00
2017-01-02 03:57:23 +01:00
if ( isset ( $_REQUEST [ 'submit' ])) {
$wants_to_drive = isset ( $_REQUEST [ 'wants_to_drive' ]);
if ( $wants_to_drive ) {
$user_driver_license [ 'has_car' ] = isset ( $_REQUEST [ 'has_car' ]);
$user_driver_license [ 'has_license_car' ] = isset ( $_REQUEST [ 'has_license_car' ]);
$user_driver_license [ 'has_license_3_5t_transporter' ] = isset ( $_REQUEST [ 'has_license_3_5t_transporter' ]);
$user_driver_license [ 'has_license_7_5t_truck' ] = isset ( $_REQUEST [ 'has_license_7_5t_truck' ]);
$user_driver_license [ 'has_license_12_5t_truck' ] = isset ( $_REQUEST [ 'has_license_12_5t_truck' ]);
$user_driver_license [ 'has_license_forklift' ] = isset ( $_REQUEST [ 'has_license_forklift' ]);
2016-11-17 14:35:04 +01:00
2017-01-02 03:57:23 +01:00
if ( UserDriverLicense_valid ( $user_driver_license )) {
if ( $user_driver_license [ 'user_id' ] == null ) {
$user_driver_license = UserDriverLicenses_create ( $user_driver_license , $user );
} else {
UserDriverLicenses_update ( $user_driver_license );
}
engelsystem_log ( " Driver license information updated. " );
success ( _ ( " Your driver license information has been saved. " ));
redirect ( user_link ( $user_source ));
} else {
error ( _ ( " Please select at least one driving license. " ));
}
} elseif ( $user_driver_license [ 'id' ] != null ) {
UserDriverLicenses_delete ( $user_source [ 'UID' ]);
engelsystem_log ( " Driver license information removed. " );
success ( _ ( " Your driver license information has been removed. " ));
redirect ( user_link ( $user_source ));
2015-12-19 23:31:08 +01:00
}
}
2017-01-02 03:57:23 +01:00
return [
2015-12-19 23:31:08 +01:00
sprintf ( _ ( " Edit %s driving license information " ), $user_source [ 'Nick' ]),
2017-01-02 03:57:23 +01:00
UserDriverLicense_edit_view ( $user_source , $wants_to_drive , $user_driver_license )
2015-12-19 23:31:08 +01:00
];
}