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 = " " ;
$jabber = " " ;
$hometown = " " ;
$comment = " " ;
$tshirt_size = '' ;
$password_hash = " " ;
2013-11-25 21:04:58 +01:00
$selected_angel_types = array ();
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
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
$selected_angel_types = array ();
2012-12-01 11:39:03 +01:00
foreach ( $angel_types as $angel_type_id => $angel_type_name )
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:10:27 +01:00
sql_query ( " INSERT INTO `User` SET `color`= " . sql_escape ( $default_theme ) . " , `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 ) . " ', `jabber`=' " . sql_escape ( $jabber ) . " ', `Size`=' " . sql_escape ( $tshirt_size ) . " ', `Passwort`=' " . sql_escape ( $password_hash ) . " ', `kommentar`=' " . sql_escape ( $comment ) . " ', `Hometown`=' " . sql_escape ( $hometown ) . " ', `CreateDate`=NOW(), `Sprache`=' " . sql_escape ( $_SESSION [ " locale " ]) . " ' " );
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 ();
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 ) {
2012-12-01 11:39:03 +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
}
engelsystem_log ( " User " . $nick . " 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 (
div ( 'col-md-4' , array (
form_text ( 'nick' , _ ( " Nick " ) . ' ' . entry_required (), $nick )
)),
div ( 'col-md-8' , array (
form_text ( 'mail' , _ ( " E-Mail " ) . ' ' . entry_required (), $mail )
))
)),
$enable_tshirt_size ? form_select ( 'tshirt_size' , _ ( " Shirt size " ) . ' ' . entry_required (), $tshirt_sizes , $tshirt_size ) : '' ,
div ( 'row' , array (
div ( 'col-md-6' , array (
form_password ( 'password' , _ ( " Password " ) . ' ' . entry_required ())
)),
div ( 'col-md-6' , array (
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 (
div ( 'col-md-4' , array (
form_text ( 'dect' , _ ( " DECT " ), $dect )
)),
div ( 'col-md-4' , array (
form_text ( 'mobile' , _ ( " Mobile " ), $mobile )
)),
div ( 'col-md-4' , array (
form_text ( 'tel' , _ ( " Phone " ), $tel )
))
)),
form_text ( 'jabber' , _ ( " Jabber " ), $jabber ),
div ( 'row' , array (
div ( 'col-md-6' , array (
form_text ( 'prename' , _ ( " First name " ), $prename )
)),
div ( 'col-md-6' , array (
form_text ( 'lastname' , _ ( " Last name " ), $lastname )
))
)),
div ( 'row' , array (
div ( 'col-md-3' , array (
form_text ( 'age' , _ ( " Age " ), $age )
)),
div ( 'col-md-9' , array (
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 () {
2014-09-28 19:47:57 +02:00
global $user , $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' ];
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-03-09 16:00:13 +01:00
form_info ( " " , buttons ( array (
button ( page_link_to ( 'user_password_recovery' ), _ ( " I forgot my password " ))
))),
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
?>