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 .
*/
function user_driver_license_required_hint () {
global $user ;
$angeltypes = User_angeltypes ( $user );
$user_driver_license = UserDriverLicense ( $user [ 'UID' ]);
2016-11-11 14:59:25 +01:00
// User has already entered data, no hint needed.
if ( $user_driver_license != null ) {
2016-11-15 16:28:20 +01:00
return null ;
2016-11-11 14:59:25 +01:00
}
2016-09-29 09:43:08 +02:00
foreach ( $angeltypes as $angeltype ) {
2015-12-20 11:36:12 +01:00
if ( $angeltype [ 'requires_driver_license' ]) {
2016-11-15 16:31:55 +01:00
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
}
2016-09-29 09:43:08 +02:00
}
2015-12-20 11:36:12 +01:00
2016-11-15 16:28:20 +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 .
*/
function user_driver_licenses_controller () {
2016-08-21 18:00:24 +02:00
global $user ;
2015-12-19 23:31:08 +01:00
2016-09-29 09:43:08 +02:00
if ( ! isset ( $user )) {
2015-12-19 23:31:08 +01:00
redirect ( page_link_to ( '' ));
2016-09-29 09:43:08 +02:00
}
2015-12-19 23:31:08 +01:00
2016-11-17 14:35:04 +01:00
$action = strip_request_item ( 'action' , 'edit' );
2015-12-19 23:31:08 +01:00
2016-11-17 14:35:04 +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 .
*
* @ param User $user
*/
function user_driver_license_edit_link ( $user = null ) {
2016-09-29 09:43:08 +02:00
if ( $user == null ) {
2015-12-19 23:31:08 +01:00
return page_link_to ( 'user_driver_licenses' );
2016-09-29 09:43:08 +02:00
}
2015-12-19 23:31:08 +01:00
return page_link_to ( 'user_driver_licenses' ) . '&user_id=' . $user [ 'UID' ];
}
/**
2016-11-10 13:55:16 +01:00
* Loads the user for the driver license .
2015-12-19 23:31:08 +01:00
*/
2016-11-10 13:55:16 +01:00
function user_driver_license_load_user () {
global $user ;
2015-12-19 23:31:08 +01:00
2016-10-01 10:48:19 +02:00
$user_source = $user ;
2015-12-19 23:31:08 +01:00
if ( isset ( $_REQUEST [ 'user_id' ])) {
$user_source = User ( $_REQUEST [ 'user_id' ]);
2016-09-29 09:43:08 +02:00
if ( $user_source == null ) {
2015-12-19 23:31:08 +01:00
redirect ( user_driver_license_edit_link ());
2016-09-29 09:43:08 +02:00
}
2016-11-10 13:55:16 +01:00
}
return $user_source ;
}
/**
* Edit a users driver license information .
*/
function user_driver_license_edit_controller () {
global $privileges , $user ;
$user_source = user_driver_license_load_user ();
// only privilege admin_user can edit other users driver license information
if ( $user [ 'UID' ] != $user_source [ 'UID' ] && ! in_array ( 'admin_user' , $privileges )) {
redirect ( user_driver_license_edit_link ());
2015-12-19 23:31:08 +01:00
}
$user_driver_license = UserDriverLicense ( $user_source [ 'UID' ]);
2016-11-17 14:35:04 +01:00
if ( $user_driver_license == null ) {
$wants_to_drive = false ;
2016-11-17 14:40:21 +01:00
$user_driver_license = UserDriverLicense_new ();
2016-11-17 14:35:04 +01:00
} else {
2015-12-19 23:31:08 +01:00
$wants_to_drive = true ;
}
if ( isset ( $_REQUEST [ 'submit' ])) {
$wants_to_drive = isset ( $_REQUEST [ 'wants_to_drive' ]);
2016-11-17 14:35:04 +01:00
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' ]);
if ( UserDriverLicense_valid ( $user_driver_license )) {
2016-11-17 14:40:21 +01:00
if ( $user_driver_license [ 'user_id' ] == null ) {
$user_driver_license = UserDriverLicenses_create ( $user_driver_license , $user );
2016-11-17 14:35:04 +01:00
} else {
UserDriverLicenses_update ( $user_driver_license );
2015-12-19 23:31:08 +01:00
}
2016-11-17 14:35:04 +01:00
engelsystem_log ( " Driver license information updated. " );
2015-12-19 23:31:08 +01:00
success ( _ ( " Your driver license information has been saved. " ));
2016-11-17 14:35:04 +01:00
redirect ( user_link ( $user_source ));
} else {
error ( _ ( " Please select at least one driving license. " ));
2015-12-19 23:31:08 +01:00
}
2016-11-17 14:35:04 +01:00
} 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. " ));
2015-12-19 23:31:08 +01:00
redirect ( user_link ( $user_source ));
}
}
return [
sprintf ( _ ( " Edit %s driving license information " ), $user_source [ 'Nick' ]),
2016-11-17 14:35:04 +01:00
UserDriverLicense_edit_view ( $user_source , $wants_to_drive , $user_driver_license )
2015-12-19 23:31:08 +01:00
];
}
?>