2011-06-02 00:48:29 +02:00
< ? php
2014-09-28 14:14:04 +02:00
2013-11-25 21:56:56 +01:00
function login_title () {
return _ ( " Login " );
}
function register_title () {
return _ ( " Register " );
}
function logout_title () {
return _ ( " Logout " );
}
2011-06-02 00:48:29 +02:00
// Engel registrieren
function guest_register () {
2014-03-09 13:39:04 +01:00
global $tshirt_sizes , $enable_tshirt_size , $default_theme ;
2013-11-25 21:04:58 +01:00
2012-12-01 11:39:03 +01:00
$msg = " " ;
$nick = " " ;
$lastname = " " ;
$prename = " " ;
2013-11-25 19:12:19 +01:00
$age = " " ;
2012-12-01 11:39:03 +01:00
$tel = " " ;
$dect = " " ;
$mobile = " " ;
$mail = " " ;
2014-12-06 18:37:34 +01:00
$email_shiftinfo = false ;
2012-12-01 11:39:03 +01:00
$jabber = " " ;
$hometown = " " ;
$comment = " " ;
$tshirt_size = '' ;
$password_hash = " " ;
2013-11-25 21:04:58 +01:00
$selected_angel_types = array ();
2015-07-12 14:45:58 +02:00
$planned_arrival_date = null ;
2013-11-25 21:04:58 +01:00
2012-12-01 11:39:03 +01:00
$angel_types_source = sql_select ( " SELECT * FROM `AngelTypes` ORDER BY `name` " );
2013-11-25 21:04:58 +01:00
$angel_types = array ();
2014-08-23 15:47:06 +02:00
foreach ( $angel_types_source as $angel_type ) {
2012-12-01 11:39:03 +01:00
$angel_types [ $angel_type [ 'id' ]] = $angel_type [ 'name' ] . ( $angel_type [ 'restricted' ] ? " (restricted) " : " " );
2014-08-23 15:47:06 +02:00
if ( ! $angel_type [ 'restricted' ])
$selected_angel_types [] = $angel_type [ 'id' ];
}
2013-11-25 21:04:58 +01:00
if ( isset ( $_REQUEST [ 'submit' ])) {
2012-12-01 11:39:03 +01:00
$ok = true ;
2013-11-25 21:04:58 +01:00
2013-12-27 19:45:50 +01:00
if ( isset ( $_REQUEST [ 'nick' ]) && strlen ( User_validate_Nick ( $_REQUEST [ 'nick' ])) > 1 ) {
$nick = User_validate_Nick ( $_REQUEST [ 'nick' ]);
2012-12-01 11:39:03 +01:00
if ( sql_num_query ( " SELECT * FROM `User` WHERE `Nick`=' " . sql_escape ( $nick ) . " ' LIMIT 1 " ) > 0 ) {
$ok = false ;
2013-11-25 21:04:58 +01:00
$msg .= error ( sprintf ( _ ( " Your nick "%s" already exists. " ), $nick ), true );
2012-12-01 11:39:03 +01:00
}
} else {
$ok = false ;
2013-12-28 02:14:49 +01:00
$msg .= error ( sprintf ( _ ( " Your nick "%s" is too short (min. 2 characters). " ), User_validate_Nick ( $_REQUEST [ 'nick' ])), true );
2012-12-01 11:39:03 +01:00
}
2013-11-25 21:04:58 +01:00
if ( isset ( $_REQUEST [ 'mail' ]) && strlen ( strip_request_item ( 'mail' )) > 0 ) {
2012-12-01 11:39:03 +01:00
$mail = strip_request_item ( 'mail' );
2013-11-25 21:04:58 +01:00
if ( ! check_email ( $mail )) {
2012-12-01 11:39:03 +01:00
$ok = false ;
2013-11-25 21:04:58 +01:00
$msg .= error ( _ ( " E-mail address is not correct. " ), true );
2012-12-01 11:39:03 +01:00
}
} else {
$ok = false ;
2013-11-25 21:04:58 +01:00
$msg .= error ( _ ( " Please enter your e-mail. " ), true );
2012-12-01 11:39:03 +01:00
}
2013-11-25 21:04:58 +01:00
2014-12-06 18:37:34 +01:00
if ( isset ( $_REQUEST [ 'email_shiftinfo' ]))
$email_shiftinfo = true ;
2013-11-25 21:04:58 +01:00
if ( isset ( $_REQUEST [ 'jabber' ]) && strlen ( strip_request_item ( 'jabber' )) > 0 ) {
2012-12-01 11:39:03 +01:00
$jabber = strip_request_item ( 'jabber' );
2013-11-25 21:04:58 +01:00
if ( ! check_email ( $jabber )) {
2012-12-01 11:39:03 +01:00
$ok = false ;
2013-11-25 21:04:58 +01:00
$msg .= error ( _ ( " Please check your jabber account information. " ), true );
2012-12-01 11:39:03 +01:00
}
}
2013-11-25 21:04:58 +01:00
2012-12-01 11:39:03 +01:00
if ( $enable_tshirt_size ) {
2013-11-25 21:04:58 +01:00
if ( isset ( $_REQUEST [ 'tshirt_size' ]) && isset ( $tshirt_sizes [ $_REQUEST [ 'tshirt_size' ]]) && $_REQUEST [ 'tshirt_size' ] != '' )
2012-12-01 11:39:03 +01:00
$tshirt_size = $_REQUEST [ 'tshirt_size' ];
else {
$ok = false ;
2013-11-25 21:04:58 +01:00
$msg .= error ( _ ( " Please select your shirt size. " ), true );
2012-12-01 11:39:03 +01:00
}
}
2013-11-25 21:04:58 +01:00
if ( isset ( $_REQUEST [ 'password' ]) && strlen ( $_REQUEST [ 'password' ]) >= MIN_PASSWORD_LENGTH ) {
2012-12-12 02:31:54 +01:00
if ( $_REQUEST [ 'password' ] != $_REQUEST [ 'password2' ]) {
2012-12-01 11:39:03 +01:00
$ok = false ;
2013-11-25 21:04:58 +01:00
$msg .= error ( _ ( " Your passwords don't match. " ), true );
2012-12-01 11:39:03 +01:00
}
} else {
$ok = false ;
2014-07-29 20:50:54 +02:00
$msg .= error ( sprintf ( _ ( " Your password is too short (please use at least %s characters). " ), MIN_PASSWORD_LENGTH ), true );
2012-12-01 11:39:03 +01:00
}
2013-11-25 21:04:58 +01:00
2015-07-12 14:45:58 +02:00
if ( isset ( $_REQUEST [ 'planned_arrival_date' ]) && DateTime :: createFromFormat ( " Y-m-d " , trim ( $_REQUEST [ 'planned_arrival_date' ]))) {
$planned_arrival_date = DateTime :: createFromFormat ( " Y-m-d " , trim ( $_REQUEST [ 'planned_arrival_date' ])) -> getTimestamp ();
} else {
$ok = false ;
$msg .= error ( _ ( " Please enter your planned date of arrival. " ), true );
}
2013-11-25 21:04:58 +01:00
$selected_angel_types = array ();
2016-08-21 18:00:24 +02:00
foreach ( array_keys ( $angel_types ) as $angel_type_id )
2013-11-25 21:04:58 +01:00
if ( isset ( $_REQUEST [ 'angel_types_' . $angel_type_id ]))
$selected_angel_types [] = $angel_type_id ;
// Trivia
if ( isset ( $_REQUEST [ 'lastname' ]))
2012-12-01 11:39:03 +01:00
$lastname = strip_request_item ( 'lastname' );
2013-11-25 21:04:58 +01:00
if ( isset ( $_REQUEST [ 'prename' ]))
2012-12-01 11:39:03 +01:00
$prename = strip_request_item ( 'prename' );
2013-11-25 21:04:58 +01:00
if ( isset ( $_REQUEST [ 'age' ]) && preg_match ( " /^[0-9] { 0,4} $ / " , $_REQUEST [ 'age' ]))
2012-12-01 11:39:03 +01:00
$age = strip_request_item ( 'age' );
2013-11-25 21:04:58 +01:00
if ( isset ( $_REQUEST [ 'tel' ]))
2012-12-01 11:39:03 +01:00
$tel = strip_request_item ( 'tel' );
2013-11-25 21:04:58 +01:00
if ( isset ( $_REQUEST [ 'dect' ]))
2012-12-01 11:39:03 +01:00
$dect = strip_request_item ( 'dect' );
2013-11-25 21:04:58 +01:00
if ( isset ( $_REQUEST [ 'mobile' ]))
2012-12-01 11:39:03 +01:00
$mobile = strip_request_item ( 'mobile' );
2013-11-25 21:04:58 +01:00
if ( isset ( $_REQUEST [ 'hometown' ]))
2012-12-01 11:39:03 +01:00
$hometown = strip_request_item ( 'hometown' );
2013-11-25 21:04:58 +01:00
if ( isset ( $_REQUEST [ 'comment' ]))
2012-12-01 11:39:03 +01:00
$comment = strip_request_item_nl ( 'comment' );
2013-11-25 21:04:58 +01:00
2012-12-01 11:39:03 +01:00
if ( $ok ) {
2014-12-06 18:37:34 +01:00
sql_query ( "
INSERT INTO `User` SET
2014-12-28 13:44:56 +01:00
`color` = '" . sql_escape($default_theme) . "' ,
2014-12-06 18:37:34 +01:00
`Nick` = '" . sql_escape($nick) . "' ,
`Vorname` = '" . sql_escape($prename) . "' ,
`Name` = '" . sql_escape($lastname) . "' ,
`Alter` = '" . sql_escape($age) . "' ,
`Telefon` = '" . sql_escape($tel) . "' ,
`DECT` = '" . sql_escape($dect) . "' ,
`Handy` = '" . sql_escape($mobile) . "' ,
`email` = '" . sql_escape($mail) . "' ,
2015-08-13 10:48:39 +02:00
`email_shiftinfo` = " . sql_bool( $email_shiftinfo ) . " ,
2014-12-06 18:37:34 +01:00
`jabber` = '" . sql_escape($jabber) . "' ,
`Size` = '" . sql_escape($tshirt_size) . "' ,
`Passwort` = '" . sql_escape($password_hash) . "' ,
`kommentar` = '" . sql_escape($comment) . "' ,
`Hometown` = '" . sql_escape($hometown) . "' ,
`CreateDate` = NOW (),
2015-07-12 14:45:58 +02:00
`Sprache` = '" . sql_escape($_SESSION["locale"]) . "' ,
`arrival_date` = NULL ,
`planned_arrival_date` = '" . sql_escape($planned_arrival_date) . "' " );
2013-11-25 21:04:58 +01:00
2012-12-12 02:31:54 +01:00
// Assign user-group and set password
2012-12-01 11:39:03 +01:00
$user_id = sql_id ();
2014-12-28 13:44:56 +01:00
sql_query ( " INSERT INTO `UserGroups` SET `uid`=' " . sql_escape ( $user_id ) . " ', `group_id`=-2 " );
2012-12-12 02:31:54 +01:00
set_password ( $user_id , $_REQUEST [ 'password' ]);
2013-11-25 21:04:58 +01:00
2012-12-01 11:39:03 +01:00
// Assign angel-types
2012-12-26 19:53:27 +01:00
$user_angel_types_info = array ();
foreach ( $selected_angel_types as $selected_angel_type_id ) {
2014-12-28 13:44:56 +01:00
sql_query ( " INSERT INTO `UserAngelTypes` SET `user_id`=' " . sql_escape ( $user_id ) . " ', `angeltype_id`=' " . sql_escape ( $selected_angel_type_id ) . " ' " );
2012-12-27 03:32:15 +01:00
$user_angel_types_info [] = $angel_types [ $selected_angel_type_id ];
2012-12-26 19:53:27 +01:00
}
2015-12-12 19:39:30 +01:00
engelsystem_log ( " User " . User_Nick_render ( User ( $user_id )) . " signed up as: " . join ( " , " , $user_angel_types_info ));
2013-11-25 21:04:58 +01:00
success ( _ ( " Angel registration successful! " ));
2014-05-13 14:44:04 +02:00
redirect ( '?' );
2012-12-01 11:39:03 +01:00
}
}
2013-11-25 21:04:58 +01:00
2014-08-22 22:34:13 +02:00
return page_with_title ( register_title (), array (
2013-11-25 21:04:58 +01:00
_ ( " By completing this form you're registering as a Chaos-Angel. This script will create you an account in the angel task sheduler. " ),
$msg ,
msg (),
form ( array (
2014-08-23 15:35:25 +02:00
div ( 'row' , array (
div ( 'col-md-6' , array (
div ( 'row' , array (
2014-12-06 18:37:34 +01:00
div ( 'col-sm-4' , array (
2014-08-23 15:35:25 +02:00
form_text ( 'nick' , _ ( " Nick " ) . ' ' . entry_required (), $nick )
)),
2014-12-06 18:37:34 +01:00
div ( 'col-sm-8' , array (
2015-08-16 20:38:41 +02:00
form_email ( 'mail' , _ ( " E-Mail " ) . ' ' . entry_required (), $mail ),
2014-12-06 18:37:34 +01:00
form_checkbox ( 'email_shiftinfo' , _ ( " Please send me an email if my shifts change " ), $email_shiftinfo )
2014-08-23 15:35:25 +02:00
))
)),
2015-07-12 14:45:58 +02:00
div ( 'row' , array (
div ( 'col-sm-6' , array (
form_date ( 'planned_arrival_date' , _ ( " Planned date of arrival " ) . ' ' . entry_required (), $planned_arrival_date , time ())
)),
div ( 'col-sm-6' , array (
$enable_tshirt_size ? form_select ( 'tshirt_size' , _ ( " Shirt size " ) . ' ' . entry_required (), $tshirt_sizes , $tshirt_size ) : ''
))
)),
2014-08-23 15:35:25 +02:00
div ( 'row' , array (
2014-12-06 18:37:34 +01:00
div ( 'col-sm-6' , array (
2014-08-23 15:35:25 +02:00
form_password ( 'password' , _ ( " Password " ) . ' ' . entry_required ())
)),
2014-12-06 18:37:34 +01:00
div ( 'col-sm-6' , array (
2014-08-23 15:35:25 +02:00
form_password ( 'password2' , _ ( " Confirm password " ) . ' ' . entry_required ())
))
)),
form_checkboxes ( 'angel_types' , _ ( " What do you want to do? " ) . sprintf ( " (<a href= \" %s \" >%s</a>) " , page_link_to ( 'angeltypes' ) . '&action=about' , _ ( " Description of job types " )), $angel_types , $selected_angel_types ),
form_info ( " " , _ ( " Restricted angel types need will be confirmed later by an archangel. You can change your selection in the options section. " ))
)),
div ( 'col-md-6' , array (
div ( 'row' , array (
2014-12-06 18:37:34 +01:00
div ( 'col-sm-4' , array (
2014-08-23 15:35:25 +02:00
form_text ( 'dect' , _ ( " DECT " ), $dect )
)),
2014-12-06 18:37:34 +01:00
div ( 'col-sm-4' , array (
2014-08-23 15:35:25 +02:00
form_text ( 'mobile' , _ ( " Mobile " ), $mobile )
)),
2014-12-06 18:37:34 +01:00
div ( 'col-sm-4' , array (
2014-08-23 15:35:25 +02:00
form_text ( 'tel' , _ ( " Phone " ), $tel )
))
)),
form_text ( 'jabber' , _ ( " Jabber " ), $jabber ),
div ( 'row' , array (
2014-12-06 18:37:34 +01:00
div ( 'col-sm-6' , array (
2014-08-23 15:35:25 +02:00
form_text ( 'prename' , _ ( " First name " ), $prename )
)),
2014-12-06 18:37:34 +01:00
div ( 'col-sm-6' , array (
2014-08-23 15:35:25 +02:00
form_text ( 'lastname' , _ ( " Last name " ), $lastname )
))
)),
div ( 'row' , array (
2014-12-06 18:37:34 +01:00
div ( 'col-sm-3' , array (
2014-08-23 15:35:25 +02:00
form_text ( 'age' , _ ( " Age " ), $age )
)),
2014-12-06 18:37:34 +01:00
div ( 'col-sm-9' , array (
2014-08-23 15:35:25 +02:00
form_text ( 'hometown' , _ ( " Hometown " ), $hometown )
))
)),
form_info ( entry_required () . ' = ' . _ ( " Entry required! " ))
))
)),
2013-11-28 22:40:48 +01:00
// form_textarea('comment', _("Did you help at former CCC events and which tasks have you performed then?"), $comment),
2013-11-25 21:04:58 +01:00
form_submit ( 'submit' , _ ( " Register " ))
))
2012-12-01 11:39:03 +01:00
));
2011-06-02 00:48:29 +02:00
}
2014-08-23 15:35:25 +02:00
function entry_required () {
return '<span class="text-info glyphicon glyphicon-warning-sign"></span>' ;
}
2011-06-02 00:48:29 +02:00
function guest_logout () {
2012-12-01 11:39:03 +01:00
session_destroy ();
2012-12-30 18:27:45 +01:00
redirect ( page_link_to ( " start " ));
2011-06-02 00:48:29 +02:00
}
function guest_login () {
2016-08-21 18:00:24 +02:00
global $privileges ;
2013-11-25 21:04:58 +01:00
2012-12-01 11:39:03 +01:00
$nick = " " ;
2013-11-25 21:04:58 +01:00
unset ( $_SESSION [ 'uid' ]);
if ( isset ( $_REQUEST [ 'submit' ])) {
2012-12-01 11:39:03 +01:00
$ok = true ;
2013-11-25 21:04:58 +01:00
2013-12-27 19:45:50 +01:00
if ( isset ( $_REQUEST [ 'nick' ]) && strlen ( User_validate_Nick ( $_REQUEST [ 'nick' ])) > 0 ) {
$nick = User_validate_Nick ( $_REQUEST [ 'nick' ]);
2012-12-01 11:39:03 +01:00
$login_user = sql_select ( " SELECT * FROM `User` WHERE `Nick`=' " . sql_escape ( $nick ) . " ' " );
if ( count ( $login_user ) > 0 ) {
$login_user = $login_user [ 0 ];
2013-11-25 21:04:58 +01:00
if ( isset ( $_REQUEST [ 'password' ])) {
if ( ! verify_password ( $_REQUEST [ 'password' ], $login_user [ 'Passwort' ], $login_user [ 'UID' ])) {
2012-12-01 11:39:03 +01:00
$ok = false ;
2013-11-28 22:40:48 +01:00
error ( _ ( " Your password is incorrect. Please try it again. " ));
2012-12-01 11:39:03 +01:00
}
} else {
$ok = false ;
2013-11-28 22:40:48 +01:00
error ( _ ( " Please enter a password. " ));
2012-12-01 11:39:03 +01:00
}
} else {
$ok = false ;
2013-11-28 22:40:48 +01:00
error ( _ ( " No user was found with that Nickname. Please try again. If you are still having problems, ask an Dispatcher. " ));
2012-12-01 11:39:03 +01:00
}
} else {
$ok = false ;
2013-11-28 22:40:48 +01:00
error ( _ ( " Please enter a nickname. " ));
2012-12-01 11:39:03 +01:00
}
2013-11-25 21:04:58 +01:00
2012-12-01 11:39:03 +01:00
if ( $ok ) {
$_SESSION [ 'uid' ] = $login_user [ 'UID' ];
2013-11-25 21:04:58 +01:00
$_SESSION [ 'locale' ] = $login_user [ 'Sprache' ];
2015-06-07 13:33:59 +02:00
2012-12-01 11:39:03 +01:00
redirect ( page_link_to ( 'news' ));
}
}
2013-11-25 21:04:58 +01:00
2014-09-28 14:14:04 +02:00
if ( in_array ( 'register' , $privileges )) {
$register_hint = join ( '' , array (
'<p>' . _ ( " Please sign up, if you want to help us! " ) . '</p>' ,
buttons ( array (
button ( page_link_to ( 'register' ), register_title () . ' »' )
))
));
} else {
$register_hint = join ( '' , array (
error ( _ ( 'Registration is disabled.' ), true )
));
}
2014-08-22 22:34:13 +02:00
return page_with_title ( login_title (), array (
2013-11-25 21:04:58 +01:00
msg (),
2014-09-06 15:03:08 +02:00
'<div class="row"><div class="col-md-6">' ,
2013-11-25 21:04:58 +01:00
form ( array (
form_text ( 'nick' , _ ( " Nick " ), $nick ),
form_password ( 'password' , _ ( " Password " )),
2014-08-22 22:34:13 +02:00
form_submit ( 'submit' , _ ( " Login " )),
2014-12-22 20:18:34 +01:00
buttons ( array (
2014-03-09 16:00:13 +01:00
button ( page_link_to ( 'user_password_recovery' ), _ ( " I forgot my password " ))
2014-12-22 20:18:34 +01:00
)),
2014-03-09 16:00:13 +01:00
info ( _ ( " Please note: You have to activate cookies! " ), true )
2013-11-25 21:04:58 +01:00
)),
2014-08-22 22:34:13 +02:00
'</div>' ,
'<div class="col-md-6">' ,
2014-03-09 16:00:13 +01:00
'<h2>' . register_title () . '</h2>' ,
2014-09-28 14:14:04 +02:00
$register_hint ,
2014-03-09 16:00:13 +01:00
'<h2>' . _ ( " What can I do? " ) . '</h2>' ,
'<p>' . _ ( " Please read about the jobs you can do to help us. " ) . '</p>' ,
buttons ( array (
button ( page_link_to ( 'angeltypes' ) . '&action=about' , _ ( " Teams/Job description " ) . ' »' )
2014-08-22 22:34:13 +02:00
)),
'</div></div>'
2012-12-01 11:39:03 +01:00
));
2011-06-02 00:48:29 +02:00
}
2011-06-03 11:34:54 +02:00
?>