2012-12-26 14:02:27 +01:00
< ? php
2013-10-13 00:52:44 +02:00
2014-01-05 19:30:06 +01:00
/**
* Returns all members of given angeltype .
* @ param Angeltype $angeltype
*/
function Users_by_angeltype ( $angeltype ) {
return sql_select ( "
SELECT `User` .* , `UserAngelTypes` . `id` as `user_angeltype_id` , `UserAngelTypes` . `confirm_user_id`
FROM `User`
JOIN `UserAngelTypes` ON `User` . `UID` = `UserAngelTypes` . `user_id`
WHERE `UserAngelTypes` . `angeltype_id` = " . sql_escape( $angeltype['id'] ) . "
ORDER BY `Nick` " );
}
2013-12-29 15:08:21 +01:00
/**
* Returns User id array
*/
2014-01-07 15:50:16 +01:00
function User_ids () {
return sql_select ( " SELECT `UID` FROM `User` " );
2013-12-29 15:08:21 +01:00
}
2013-12-27 19:45:50 +01:00
/**
* Strip unwanted characters from a users nick .
2014-01-05 19:30:06 +01:00
*
* @ param string $nick
2013-12-27 19:45:50 +01:00
*/
function User_validate_Nick ( $nick ) {
return preg_replace ( " /([^a-z0-9üöäß. _+*-] { 1,})/ui " , '' , $nick );
}
2012-12-26 14:02:27 +01:00
/**
* Returns user by id .
2013-10-13 00:52:44 +02:00
*
2014-01-05 19:30:06 +01:00
* @ param $id UID
2012-12-26 14:02:27 +01:00
*/
function User ( $id ) {
$user_source = sql_select ( " SELECT * FROM `User` WHERE `UID`= " . sql_escape ( $id ) . " LIMIT 1 " );
2013-10-13 00:52:44 +02:00
if ( $user_source === false )
2013-09-18 01:38:36 +02:00
return false ;
2013-10-13 00:52:44 +02:00
if ( count ( $user_source ) > 0 )
2012-12-26 14:02:27 +01:00
return $user_source [ 0 ];
return null ;
}
2013-12-29 15:08:21 +01:00
/**
2014-01-07 15:50:16 +01:00
* TODO : Merge into normal user function
2013-12-29 15:08:21 +01:00
* Returns user by id ( limit informations .
*
2014-01-05 19:30:06 +01:00
* @ param $id UID
2013-12-29 15:08:21 +01:00
*/
function mUser_Limit ( $id ) {
$user_source = sql_select ( " SELECT `UID`, `Nick`, `Name`, `Vorname`, `Telefon`, `DECT`, `Handy`, `email`, `ICQ`, `jabber`, `Avatar` FROM `User` WHERE `UID`= " . sql_escape ( $id ) . " LIMIT 1 " );
if ( $user_source === false )
return false ;
if ( count ( $user_source ) > 0 )
return $user_source [ 0 ];
return null ;
}
2013-09-10 14:27:31 +02:00
/**
* Returns User by api_key .
2013-10-13 00:52:44 +02:00
*
* @ param string $api_key
* User api key
2013-09-10 14:27:31 +02:00
* @ return Matching user , null or false on error
*/
function User_by_api_key ( $api_key ) {
$user = sql_select ( " SELECT * FROM `User` WHERE `api_key`=' " . sql_escape ( $api_key ) . " ' LIMIT 1 " );
2013-10-13 00:52:44 +02:00
if ( $user === false )
2013-09-10 14:27:31 +02:00
return false ;
if ( count ( $user ) == 0 )
return null ;
return $user [ 0 ];
}
2013-12-26 13:34:48 +01:00
/**
* Returns User by email .
*
* @ param string $email
* @ return Matching user , null or false on error
*/
function User_by_email ( $email ) {
$user = sql_select ( " SELECT * FROM `User` WHERE `email`=' " . sql_escape ( $email ) . " ' LIMIT 1 " );
if ( $user === false )
return false ;
if ( count ( $user ) == 0 )
return null ;
return $user [ 0 ];
}
/**
* Returns User by password token .
*
* @ param string $token
* @ return Matching user , null or false on error
*/
function User_by_password_recovery_token ( $token ) {
$user = sql_select ( " SELECT * FROM `User` WHERE `password_recovery_token`=' " . sql_escape ( $token ) . " ' LIMIT 1 " );
if ( $user === false )
return false ;
if ( count ( $user ) == 0 )
return null ;
return $user [ 0 ];
}
2013-09-10 14:27:31 +02:00
/**
* Generates a new api key for given user .
2013-10-13 00:52:44 +02:00
*
2013-12-26 13:34:48 +01:00
* @ param User $user
2013-09-10 14:27:31 +02:00
*/
2013-09-10 14:45:41 +02:00
function User_reset_api_key ( & $user ) {
2013-09-10 14:27:31 +02:00
$user [ 'api_key' ] = md5 ( $user [ 'Nick' ] . time () . rand ());
2013-09-18 01:38:36 +02:00
$result = sql_query ( " UPDATE `User` SET `api_key`=' " . sql_escape ( $user [ 'api_key' ]) . " ' WHERE `UID`=' " . sql_escape ( $user [ 'UID' ]) . " ' LIMIT 1 " );
2013-10-13 00:52:44 +02:00
if ( $result === false )
2013-09-18 01:38:36 +02:00
return false ;
2013-09-10 14:27:31 +02:00
engelsystem_log ( " API key resetted. " );
}
2013-12-26 13:34:48 +01:00
/**
* Generates a new password recovery token for given user .
*
* @ param User $user
*/
function User_generate_password_recovery_token ( & $user ) {
$user [ 'password_recovery_token' ] = md5 ( $user [ 'Nick' ] . time () . rand ());
$result = sql_query ( " UPDATE `User` SET `password_recovery_token`=' " . sql_escape ( $user [ 'password_recovery_token' ]) . " ' WHERE `UID`=' " . sql_escape ( $user [ 'UID' ]) . " ' LIMIT 1 " );
if ( $result === false )
return false ;
engelsystem_log ( " Password recovery for " . $user [ 'Nick' ] . " started. " );
return $user [ 'password_recovery_token' ];
}
2013-12-29 15:08:21 +01:00
?>