2011-03-28 14:21:28 +00:00
< ?
/************************************************************************* \
//--------------Take moderation -----------------------------------------//
\ *************************************************************************/
// Are they being tricky blighters?
if ( ! $_POST [ 'userid' ] || ! is_number ( $_POST [ 'userid' ])) {
error ( 404 );
} elseif ( ! check_perms ( 'users_mod' )) {
error ( 403 );
}
authorize ();
// End checking for moronity
$UserID = $_POST [ 'userid' ];
2012-03-29 08:00:19 +00:00
$DeleteKeys = false ;
2011-03-28 14:21:28 +00:00
// Variables for database input
$Class = ( int ) $_POST [ 'Class' ];
$Username = db_string ( $_POST [ 'Username' ]);
$Title = db_string ( $_POST [ 'Title' ]);
$AdminComment = db_string ( $_POST [ 'AdminComment' ]);
2013-04-13 08:00:19 +00:00
$Donor = ( isset ( $_POST [ 'Donor' ])) ? 1 : 0 ;
$Artist = ( isset ( $_POST [ 'Artist' ])) ? 1 : 0 ;
$SecondaryClasses = isset ( $_POST [ 'secondary_classes' ]) ? $_POST [ 'secondary_classes' ] : array ();
2012-03-28 08:00:20 +00:00
foreach ( $SecondaryClasses as $i => $Val ) {
2013-04-13 08:00:19 +00:00
if ( ! is_number ( $Val )) {
unset ( $SecondaryClasses [ $i ]);
}
2012-03-28 08:00:20 +00:00
}
2013-04-13 08:00:19 +00:00
$Visible = ( isset ( $_POST [ 'Visible' ])) ? 1 : 0 ;
2011-03-28 14:21:28 +00:00
$Invites = ( int ) $_POST [ 'Invites' ];
$SupportFor = db_string ( $_POST [ 'SupportFor' ]);
2012-09-22 08:00:24 +00:00
$Pass = $_POST [ 'ChangePassword' ];
2013-04-13 08:00:19 +00:00
$Warned = ( isset ( $_POST [ 'Warned' ])) ? 1 : 0 ;
2013-02-22 08:00:24 +00:00
$Logs095 = ( int ) $_POST [ '095logs' ];
2013-04-13 08:00:19 +00:00
if ( isset ( $_POST [ 'Uploaded' ]) && isset ( $_POST [ 'Downloaded' ])) {
$Uploaded = ( $_POST [ 'Uploaded' ] == '' ? 0 : $_POST [ 'Uploaded' ]);
if ( $Arithmetic = strpbrk ( $Uploaded , '+-' )) {
2012-10-11 08:00:15 +00:00
$Uploaded += max ( - $Uploaded , Format :: get_bytes ( $Arithmetic ));
2011-03-28 14:21:28 +00:00
}
2013-04-13 08:00:19 +00:00
$Downloaded = ( $_POST [ 'Downloaded' ] == '' ? 0 : $_POST [ 'Downloaded' ]);
if ( $Arithmetic = strpbrk ( $Downloaded , '+-' )) {
2012-10-11 08:00:15 +00:00
$Downloaded += max ( - $Downloaded , Format :: get_bytes ( $Arithmetic ));
2011-04-29 13:49:03 +00:00
}
2013-04-13 08:00:19 +00:00
if ( ! is_number ( $Uploaded ) || ! is_number ( $Downloaded )) {
2011-04-29 13:49:03 +00:00
error ( 0 );
2011-03-28 14:21:28 +00:00
}
}
2013-04-13 08:00:19 +00:00
$FLTokens = isset ( $_POST [ 'FLTokens' ]) ? $_POST [ 'FLTokens' ] : 0 ;
if ( ! is_number ( $FLTokens )) {
2011-10-08 08:00:14 +00:00
error ( 0 );
}
2011-03-28 14:21:28 +00:00
$WarnLength = ( int ) $_POST [ 'WarnLength' ];
$ExtendWarning = ( int ) $_POST [ 'ExtendWarning' ];
2012-03-03 08:00:28 +00:00
$ReduceWarning = ( int ) $_POST [ 'ReduceWarning' ];
2011-03-28 14:21:28 +00:00
$WarnReason = $_POST [ 'WarnReason' ];
$UserReason = $_POST [ 'UserReason' ];
2013-04-13 08:00:19 +00:00
$DisableAvatar = ( isset ( $_POST [ 'DisableAvatar' ])) ? 1 : 0 ;
$DisableInvites = ( isset ( $_POST [ 'DisableInvites' ])) ? 1 : 0 ;
$DisablePosting = ( isset ( $_POST [ 'DisablePosting' ])) ? 1 : 0 ;
$DisableForums = ( isset ( $_POST [ 'DisableForums' ])) ? 1 : 0 ;
$DisableTagging = ( isset ( $_POST [ 'DisableTagging' ])) ? 1 : 0 ;
$DisableUpload = ( isset ( $_POST [ 'DisableUpload' ])) ? 1 : 0 ;
$DisableWiki = ( isset ( $_POST [ 'DisableWiki' ])) ? 1 : 0 ;
$DisablePM = ( isset ( $_POST [ 'DisablePM' ])) ? 1 : 0 ;
$DisableIRC = ( isset ( $_POST [ 'DisableIRC' ])) ? 1 : 0 ;
$DisableRequests = ( isset ( $_POST [ 'DisableRequests' ])) ? 1 : 0 ;
2011-03-28 14:21:28 +00:00
$DisableLeech = ( isset ( $_POST [ 'DisableLeech' ])) ? 0 : 1 ;
2011-05-15 12:06:04 +00:00
$RestrictedForums = db_string ( trim ( $_POST [ 'RestrictedForums' ]));
2011-10-11 08:00:15 +00:00
$PermittedForums = db_string ( trim ( $_POST [ 'PermittedForums' ]));
2011-03-28 14:21:28 +00:00
$EnableUser = ( int ) $_POST [ 'UserStatus' ];
2013-04-13 08:00:19 +00:00
$ResetRatioWatch = ( isset ( $_POST [ 'ResetRatioWatch' ])) ? 1 : 0 ;
$ResetPasskey = ( isset ( $_POST [ 'ResetPasskey' ])) ? 1 : 0 ;
$ResetAuthkey = ( isset ( $_POST [ 'ResetAuthkey' ])) ? 1 : 0 ;
$SendHackedMail = ( isset ( $_POST [ 'SendHackedMail' ])) ? 1 : 0 ;
if ( $SendHackedMail && ! empty ( $_POST [ 'HackedEmail' ])) {
2011-03-28 14:21:28 +00:00
$HackedEmail = $_POST [ 'HackedEmail' ];
} else {
$SendHackedMail = false ;
}
$MergeStatsFrom = db_string ( $_POST [ 'MergeStatsFrom' ]);
$Reason = db_string ( $_POST [ 'Reason' ]);
$HeavyUpdates = array ();
$LightUpdates = array ();
// Get user info from the database
2013-05-01 08:00:16 +00:00
$DB -> query ( "
SELECT
m . Username ,
m . IP ,
m . Email ,
m . PermissionID ,
p . Level AS Class ,
m . Title ,
m . Enabled ,
m . Uploaded ,
m . Downloaded ,
m . Invites ,
m . can_leech ,
m . Visible ,
i . AdminComment ,
m . torrent_pass ,
i . Donor ,
i . Artist ,
i . Warned ,
i . SupportFor ,
i . RestrictedForums ,
i . PermittedForums ,
DisableAvatar ,
DisableInvites ,
DisablePosting ,
DisableForums ,
DisableTagging ,
DisableUpload ,
DisableWiki ,
DisablePM ,
DisableIRC ,
m . RequiredRatio ,
m . FLTokens ,
i . RatioWatchEnds ,
SHA1 ( i . AdminComment ) AS CommentHash ,
GROUP_CONCAT ( l . PermissionID SEPARATOR ',' ) AS SecondaryClasses
2011-03-28 14:21:28 +00:00
FROM users_main AS m
2013-04-17 08:00:58 +00:00
JOIN users_info AS i ON i . UserID = m . ID
LEFT JOIN permissions AS p ON p . ID = m . PermissionID
LEFT JOIN users_levels AS l ON l . UserID = m . ID
2012-03-28 08:00:20 +00:00
WHERE m . ID = $UserID
GROUP BY m . ID " );
2011-03-28 14:21:28 +00:00
if ( $DB -> record_count () == 0 ) { // If user doesn't exist
header ( " Location: log.php?search=User+ " . $UserID );
}
$Cur = $DB -> next_record ( MYSQLI_ASSOC , false );
2012-01-31 08:00:23 +00:00
if ( $_POST [ 'comment_hash' ] != $Cur [ 'CommentHash' ]) {
2013-02-07 08:00:47 +00:00
error ( " Somebody else has moderated this user since you loaded it. Please go back and refresh the page. " );
2012-01-31 08:00:23 +00:00
}
2011-03-28 14:21:28 +00:00
//NOW that we know the class of the current user, we can see if one staff member is trying to hax0r us.
2013-04-13 08:00:19 +00:00
if ( ! check_perms ( 'users_mod' , $Cur [ 'Class' ])) {
2011-03-28 14:21:28 +00:00
//Son of a fucking bitch
error ( 403 );
die ();
}
// Gotten user info
// If we're deleting the user, we can ignore all the other crap
2013-05-01 08:00:16 +00:00
if ( $_POST [ 'UserStatus' ] == 'delete' && check_perms ( 'users_delete_users' )) {
2012-10-11 08:00:15 +00:00
Misc :: write_log ( " User account " . $UserID . " ( " . $Cur [ 'Username' ] . " ) was deleted by " . $LoggedUser [ 'Username' ]);
2011-03-28 14:21:28 +00:00
$DB -> query ( " DELETE FROM users_main WHERE id= " . $UserID );
$DB -> query ( " DELETE FROM users_info WHERE UserID= " . $UserID );
$Cache -> delete_value ( 'user_info_' . $UserID );
2013-02-22 08:00:24 +00:00
2012-10-11 08:00:15 +00:00
Tracker :: update_tracker ( 'remove_user' , array ( 'passkey' => $Cur [ 'torrent_pass' ]));
2013-02-22 08:00:24 +00:00
2011-03-28 14:21:28 +00:00
header ( " Location: log.php?search=User+ " . $UserID );
die ();
}
// User was not deleted. Perform other stuff.
$UpdateSet = array ();
$EditSummary = array ();
if ( $_POST [ 'ResetRatioWatch' ] && check_perms ( 'users_edit_reset_keys' )) {
2013-04-17 08:00:58 +00:00
$DB -> query ( " UPDATE users_info
SET RatioWatchEnds = '0000-00-00 00:00:00' , RatioWatchDownload = '0' , RatioWatchTimes = '0'
WHERE UserID = '$UserID' " );
2013-04-13 08:00:19 +00:00
$EditSummary [] = 'RatioWatch history reset' ;
2011-03-28 14:21:28 +00:00
}
if ( $_POST [ 'ResetIPHistory' ] && check_perms ( 'users_edit_reset_keys' )) {
$DB -> query ( " DELETE FROM users_history_ips WHERE UserID=' $UserID ' " );
$DB -> query ( " UPDATE users_main SET IP='127.0.0.1' WHERE ID=' $UserID ' " );
$DB -> query ( " UPDATE xbt_snatched SET IP = '' WHERE uid=' $UserID ' " );
2011-04-13 15:36:33 +00:00
$DB -> query ( " UPDATE users_history_passwords SET ChangerIP = '' WHERE UserID = " . $UserID );
2013-04-13 08:00:19 +00:00
$EditSummary [] = 'IP history cleared' ;
2011-03-28 14:21:28 +00:00
}
if ( $_POST [ 'ResetEmailHistory' ] && check_perms ( 'users_edit_reset_keys' )) {
$DB -> query ( " DELETE FROM users_history_emails WHERE UserID=' $UserID ' " );
if ( $_POST [ 'ResetIPHistory' ]) {
2013-04-17 08:00:58 +00:00
$DB -> query ( " INSERT INTO users_history_emails (UserID, Email, Time, IP)
VALUES ( '$UserID' , '$Username@".SITE_URL."' , '0000-00-00 00:00:00' , '127.0.0.1' ) " );
2011-03-28 14:21:28 +00:00
} else {
2013-04-17 08:00:58 +00:00
$DB -> query ( " INSERT INTO users_history_emails (UserID, Email, Time, IP)
VALUES ( '$UserID' , '$Username@".SITE_URL."' , '0000-00-00 00:00:00' , '".$Cur[' IP ']."' ) " );
2011-03-28 14:21:28 +00:00
}
$DB -> query ( " UPDATE users_main SET Email=' $Username @ " . SITE_URL . " ' WHERE ID=' $UserID ' " );
2013-04-13 08:00:19 +00:00
$EditSummary [] = 'Email history cleared' ;
2011-03-28 14:21:28 +00:00
}
if ( $_POST [ 'ResetSnatchList' ] && check_perms ( 'users_edit_reset_keys' )) {
$DB -> query ( " DELETE FROM xbt_snatched WHERE uid=' $UserID ' " );
2013-04-13 08:00:19 +00:00
$EditSummary [] = 'Snatch list cleared' ;
2011-03-28 14:21:28 +00:00
}
if ( $_POST [ 'ResetDownloadList' ] && check_perms ( 'users_edit_reset_keys' )) {
$DB -> query ( " DELETE FROM users_downloads WHERE UserID=' $UserID ' " );
2013-04-13 08:00:19 +00:00
$EditSummary [] = 'Download list cleared' ;
2011-03-28 14:21:28 +00:00
}
if (( $_POST [ 'ResetSession' ] || $_POST [ 'LogOut' ]) && check_perms ( 'users_logout' )) {
$Cache -> delete_value ( 'user_info_' . $UserID );
$Cache -> delete_value ( 'user_info_heavy_' . $UserID );
$Cache -> delete_value ( 'user_stats_' . $UserID );
$Cache -> delete_value ( 'enabled_' . $UserID );
2013-02-22 08:00:24 +00:00
2013-04-13 08:00:19 +00:00
if ( $_POST [ 'LogOut' ]) {
2011-03-28 14:21:28 +00:00
$DB -> query ( " SELECT SessionID FROM users_sessions WHERE UserID=' $UserID ' " );
2013-05-01 08:00:16 +00:00
while ( list ( $SessionID ) = $DB -> next_record ()) {
2011-03-28 14:21:28 +00:00
$Cache -> delete_value ( 'session_' . $UserID . '_' . $SessionID );
}
$Cache -> delete_value ( 'users_sessions_' . $UserID );
2011-10-20 08:00:12 +00:00
2012-01-24 08:00:19 +00:00
$DB -> query ( " DELETE FROM users_sessions WHERE UserID=' $UserID ' " );
2011-10-20 08:00:12 +00:00
2011-03-28 14:21:28 +00:00
}
}
if ( $Logs095 !== 0 ) {
$TargetScore = $Logs095 === 100 ? 99 : 100 ;
2013-04-17 08:00:58 +00:00
$Logs = $DB -> query ( " SELECT DISTINCT TorrentID
FROM torrents_logs_new
JOIN torrents ON ID = TorrentID
WHERE Log LIKE 'EAC extraction logfile%'
AND UserID = $UserID
AND Score = $TargetScore
AND ( Adjusted = '0' OR Adjusted = '' ) " );
2011-03-28 14:21:28 +00:00
while ( list ( $TorrentID ) = $DB -> next_record ()) {
$Results = array ();
if ( $Logs095 === 100 ) {
2013-04-17 08:00:58 +00:00
$Details = '' ;
2011-03-28 14:21:28 +00:00
} else {
2013-04-17 08:00:58 +00:00
$Results [] = 'The original uploader has chosen to allow this log to be deducted one point for using EAC v0.95., -1 point [1]' ;
2011-03-28 14:21:28 +00:00
$Details = db_string ( serialize ( $Results ));
}
2013-04-17 08:00:58 +00:00
$DB -> query ( " UPDATE torrents SET LogScore = $Logs095 WHERE ID = $TorrentID " );
$DB -> query ( " UPDATE torrents_logs_new SET Score = $Logs095 , Details = ' $Details ' WHERE TorrentID = $TorrentID " );
2011-03-28 14:21:28 +00:00
$DB -> set_query_id ( $Logs );
}
$EditSummary [] = 'EAC v0.95 logs rescored to ' . $Logs095 ;
}
// Start building SQL query and edit summary
2013-04-13 08:00:19 +00:00
if ( $Classes [ $Class ][ 'Level' ] != $Cur [ 'Class' ] && (
2011-03-28 14:21:28 +00:00
( $Classes [ $Class ][ 'Level' ] < $LoggedUser [ 'Class' ] && check_perms ( 'users_promote_below' , $Cur [ 'Class' ]))
2013-04-17 08:00:58 +00:00
|| ( $Classes [ $Class ][ 'Level' ] <= $LoggedUser [ 'Class' ] && check_perms ( 'users_promote_to' , $Cur [ 'Class' ] - 1 )))) {
2013-04-13 08:00:19 +00:00
$UpdateSet [] = " PermissionID=' $Class ' " ;
2013-04-17 08:00:58 +00:00
$EditSummary [] = 'class changed to ' . Users :: make_class_string ( $Class );
2013-04-13 08:00:19 +00:00
$LightUpdates [ 'PermissionID' ] = $Class ;
2012-03-29 08:00:19 +00:00
$DeleteKeys = true ;
2011-05-13 08:00:07 +00:00
2011-03-28 14:21:28 +00:00
$DB -> query ( " SELECT DISTINCT DisplayStaff FROM permissions WHERE ID = $Class OR ID = " . $ClassLevels [ $Cur [ 'Class' ]][ 'ID' ]);
2013-04-13 08:00:19 +00:00
if ( $DB -> record_count () == 2 ) {
if ( $Classes [ $Class ][ 'Level' ] < $Cur [ 'Class' ]) {
2011-03-28 14:21:28 +00:00
$SupportFor = '' ;
}
$ClearStaffIDCache = true ;
}
}
2013-04-17 08:00:58 +00:00
if ( $Username != $Cur [ 'Username' ] && check_perms ( 'users_edit_usernames' , $Cur [ 'Class' ] - 1 )) {
2011-03-28 14:21:28 +00:00
$DB -> query ( " SELECT ID FROM users_main WHERE Username = ' " . $Username . " ' " );
2013-04-13 08:00:19 +00:00
if ( $DB -> next_record () > 0 ) {
2011-03-28 14:21:28 +00:00
list ( $UsedUsernameID ) = $DB -> next_record ();
2013-04-17 08:00:58 +00:00
error ( 'Username already in use by <a href="user.php?id=' . $UsedUsernameID . " \" > $Username </a> " );
header ( 'Location: user.php?id=' . $UserID );
2011-03-28 14:21:28 +00:00
die ();
} else {
2013-04-13 08:00:19 +00:00
$UpdateSet [] = " Username=' " . $Username . " ' " ;
$EditSummary [] = " username changed from " . $Cur [ 'Username' ] . " to " . $Username ;
$LightUpdates [ 'Username' ] = $Username ;
2011-03-28 14:21:28 +00:00
}
}
2013-04-13 08:00:19 +00:00
if ( $Title != db_string ( $Cur [ 'Title' ]) && check_perms ( 'users_edit_titles' )) {
2011-12-19 08:00:18 +00:00
// Using the unescaped value for the test to avoid confusion
if ( strlen ( $_POST [ 'Title' ]) > 1024 ) {
error ( " Custom titles can be at most 1024 characters. " );
header ( " Location: user.php?id= " . $UserID );
die ();
} else {
2013-04-13 08:00:19 +00:00
$UpdateSet [] = " Title=' $Title ' " ;
$EditSummary [] = " title changed to $Title " ;
$LightUpdates [ 'Title' ] = $_POST [ 'Title' ];
2011-12-19 08:00:18 +00:00
}
2011-03-28 14:21:28 +00:00
}
2013-04-13 08:00:19 +00:00
if ( $Donor != $Cur [ 'Donor' ] && check_perms ( 'users_give_donor' )) {
$UpdateSet [] = " Donor=' $Donor ' " ;
2013-04-17 08:00:58 +00:00
$EditSummary [] = 'donor status changed' ;
2013-04-13 08:00:19 +00:00
$LightUpdates [ 'Donor' ] = $Donor ;
2011-03-28 14:21:28 +00:00
}
2012-03-28 08:00:20 +00:00
// Secondary classes
$OldClasses = $Cur [ 'SecondaryClasses' ] ? explode ( ',' , $Cur [ 'SecondaryClasses' ]) : array ();
$DroppedClasses = array_diff ( $OldClasses , $SecondaryClasses );
$AddedClasses = array_diff ( $SecondaryClasses , $OldClasses );
if ( count ( $DroppedClasses ) > 0 ) {
$ClassChanges = array ();
foreach ( $DroppedClasses as $PermID ) {
$ClassChanges [] = $Classes [ $PermID ][ 'Name' ];
}
2013-04-17 08:00:58 +00:00
$EditSummary [] = 'Secondary classes dropped: ' . implode ( ', ' , $ClassChanges );
2012-03-28 08:00:20 +00:00
$DB -> query ( " DELETE FROM users_levels WHERE UserID = ' $UserID ' AND PermissionID IN ( " . implode ( ',' , $DroppedClasses ) . " ) " );
if ( count ( $SecondaryClasses ) > 0 ) {
2013-04-13 08:00:19 +00:00
$LightUpdates [ 'ExtraClasses' ] = array_fill_keys ( $SecondaryClasses , 1 );
2012-03-28 08:00:20 +00:00
} else {
2013-04-13 08:00:19 +00:00
$LightUpdates [ 'ExtraClasses' ] = array ();
2012-03-28 08:00:20 +00:00
}
2012-03-29 08:00:19 +00:00
$DeleteKeys = true ;
2012-03-28 08:00:20 +00:00
}
if ( count ( $AddedClasses ) > 0 ) {
$ClassChanges = array ();
foreach ( $AddedClasses as $PermID ) {
$ClassChanges [] = $Classes [ $PermID ][ 'Name' ];
}
$EditSummary [] = " Secondary classes added: " . implode ( ', ' , $ClassChanges );
$Values = array ();
foreach ( $AddedClasses as $PermID ) {
$Values [] = " ( $UserID , $PermID ) " ;
2012-05-18 13:35:17 +00:00
2012-03-28 08:00:20 +00:00
}
$DB -> query ( " INSERT INTO users_levels (UserID, PermissionID) VALUES " . implode ( ', ' , $Values ));
2013-04-13 08:00:19 +00:00
//$LightUpdates['ExtraClasses'] = array_fill_keys($SecondaryClasses, 1);
2012-03-29 08:00:19 +00:00
$DeleteKeys = true ;
2012-03-28 08:00:20 +00:00
}
2011-03-28 14:21:28 +00:00
2013-04-13 08:00:19 +00:00
if ( $Visible != $Cur [ 'Visible' ] && check_perms ( 'users_make_invisible' )) {
$UpdateSet [] = " Visible=' $Visible ' " ;
$EditSummary [] = " visibility changed " ;
$LightUpdates [ 'Visible' ] = $Visible ;
2011-03-28 14:21:28 +00:00
}
2013-04-13 08:00:19 +00:00
if ( $Uploaded != $Cur [ 'Uploaded' ] && $Uploaded != $_POST [ 'OldUploaded' ] && ( check_perms ( 'users_edit_ratio' )
2013-04-19 08:00:55 +00:00
|| ( check_perms ( 'users_edit_own_ratio' ) && $UserID == $LoggedUser [ 'ID' ]))) {
$UpdateSet [] = " Uploaded=' " . $Uploaded . " ' " ;
$EditSummary [] = " uploaded changed from " . Format :: get_size ( $Cur [ 'Uploaded' ]) . " to " . Format :: get_size ( $Uploaded );
$Cache -> delete_value ( 'users_stats_' . $UserID );
2011-03-28 14:21:28 +00:00
}
2013-04-13 08:00:19 +00:00
if ( $Downloaded != $Cur [ 'Downloaded' ] && $Downloaded != $_POST [ 'OldDownloaded' ] && ( check_perms ( 'users_edit_ratio' )
2013-04-19 08:00:55 +00:00
|| ( check_perms ( 'users_edit_own_ratio' ) && $UserID == $LoggedUser [ 'ID' ]))) {
$UpdateSet [] = " Downloaded=' " . $Downloaded . " ' " ;
$EditSummary [] = " downloaded changed from " . Format :: get_size ( $Cur [ 'Downloaded' ]) . " to " . Format :: get_size ( $Downloaded );
$Cache -> delete_value ( 'users_stats_' . $UserID );
2011-03-28 14:21:28 +00:00
}
2013-04-13 08:00:19 +00:00
if ( $FLTokens != $Cur [ 'FLTokens' ] && ( check_perms ( 'users_edit_ratio' ) || ( check_perms ( 'users_edit_own_ratio' ) && $UserID == $LoggedUser [ 'ID' ]))) {
$UpdateSet [] = " FLTokens= " . $FLTokens ;
$EditSummary [] = " Freeleech Tokens changed from " . $Cur [ 'FLTokens' ] . " to " . $FLTokens ;
2011-10-08 08:00:14 +00:00
$HeavyUpdates [ 'FLTokens' ] = $FLTokens ;
}
2013-04-13 08:00:19 +00:00
if ( $Invites != $Cur [ 'Invites' ] && check_perms ( 'users_edit_invites' )) {
$UpdateSet [] = " invites=' $Invites ' " ;
$EditSummary [] = " number of invites changed to $Invites " ;
2011-03-28 14:21:28 +00:00
$HeavyUpdates [ 'Invites' ] = $Invites ;
}
2013-04-13 08:00:19 +00:00
if ( $Warned == 1 && $Cur [ 'Warned' ] == '0000-00-00 00:00:00' && check_perms ( 'users_warn' )) {
2013-04-01 08:00:47 +00:00
Misc :: send_pm ( $UserID , 0 , 'You have received a warning' , " You have been [url=https:// " . SSL_SITE_URL . " /wiki.php?action=article&id=218]warned for $WarnLength week(s)[/url] by [user] " . $LoggedUser [ 'Username' ] . " [/user]. The reason given was: $WarnReason " );
2013-04-13 08:00:19 +00:00
$UpdateSet [] = " Warned=' " . sqltime () . " ' + INTERVAL $WarnLength WEEK " ;
2011-03-28 14:21:28 +00:00
$Msg = " warned for $WarnLength week(s) " ;
2013-04-13 08:00:19 +00:00
if ( $WarnReason ) {
$Msg .= " for $WarnReason " ;
}
$EditSummary [] = db_string ( $Msg );
$LightUpdates [ 'Warned' ] = time_plus ( 3600 * 24 * 7 * $WarnLength );
2011-03-28 14:21:28 +00:00
2013-04-13 08:00:19 +00:00
} elseif ( $Warned == 0 && $Cur [ 'Warned' ] != '0000-00-00 00:00:00' && check_perms ( 'users_warn' )) {
$UpdateSet [] = " Warned='0000-00-00 00:00:00' " ;
$EditSummary [] = " warning removed " ;
$LightUpdates [ 'Warned' ] = '0000-00-00 00:00:00' ;
2011-03-28 14:21:28 +00:00
2013-04-13 08:00:19 +00:00
} elseif ( $Warned == 1 && $ExtendWarning != '---' && check_perms ( 'users_warn' )) {
2013-02-22 08:00:24 +00:00
2013-03-10 08:00:41 +00:00
Misc :: send_pm ( $UserID , 0 , 'Your warning has been extended' , " Your warning has been extended by $ExtendWarning week(s) by [user] " . $LoggedUser [ 'Username' ] . " [/user]. The reason given was: $WarnReason " );
2013-02-22 08:00:24 +00:00
2013-04-13 08:00:19 +00:00
$UpdateSet [] = " Warned=Warned + INTERVAL $ExtendWarning WEEK " ;
2012-03-03 08:00:28 +00:00
$DB -> query ( " SELECT Warned + INTERVAL $ExtendWarning WEEK FROM users_info WHERE UserID=' $UserID ' " );
list ( $WarnedUntil ) = $DB -> next_record ();
$Msg = " warning extended by $ExtendWarning week(s) to $WarnedUntil " ;
2013-04-13 08:00:19 +00:00
if ( $WarnReason ) {
$Msg .= " for $WarnReason " ;
}
$EditSummary [] = db_string ( $Msg );
$LightUpdates [ 'Warned' ] = $WarnedUntil ;
} elseif ( $Warned == 1 && $ExtendWarning == '---' && $ReduceWarning != '---' && check_perms ( 'users_warn' )) {
2013-02-22 08:00:24 +00:00
2013-03-10 08:00:41 +00:00
Misc :: send_pm ( $UserID , 0 , 'Your warning has been reduced' , " Your warning has been reduced by $ReduceWarning week(s) by [user] " . $LoggedUser [ 'Username' ] . " [/user]. The reason given was: $WarnReason " );
2013-02-22 08:00:24 +00:00
2013-04-13 08:00:19 +00:00
$UpdateSet [] = " Warned=Warned - INTERVAL $ReduceWarning WEEK " ;
2013-02-07 08:00:47 +00:00
$DB -> query ( " SELECT Warned - INTERVAL $ReduceWarning WEEK FROM users_info WHERE UserID=' $UserID ' " );
2011-03-28 14:21:28 +00:00
list ( $WarnedUntil ) = $DB -> next_record ();
2012-03-03 08:00:28 +00:00
$Msg = " warning reduced by $ReduceWarning week(s) to $WarnedUntil " ;
2013-04-13 08:00:19 +00:00
if ( $WarnReason ) {
$Msg .= " for $WarnReason " ;
}
$EditSummary [] = db_string ( $Msg );
$LightUpdates [ 'Warned' ] = $WarnedUntil ;
2011-03-28 14:21:28 +00:00
}
2013-04-13 08:00:19 +00:00
if ( $SupportFor != db_string ( $Cur [ 'SupportFor' ]) && ( check_perms ( 'admin_manage_fls' ) || ( check_perms ( 'users_mod' ) && $UserID == $LoggedUser [ 'ID' ]))) {
$UpdateSet [] = " SupportFor=' $SupportFor ' " ;
$EditSummary [] = " First-Line Support status changed to $SupportFor " ;
2011-03-28 14:21:28 +00:00
}
if ( $RestrictedForums != db_string ( $Cur [ 'RestrictedForums' ]) && check_perms ( 'users_mod' )) {
2013-04-13 08:00:19 +00:00
$UpdateSet [] = " RestrictedForums=' $RestrictedForums ' " ;
$EditSummary [] = " restricted forum(s): $RestrictedForums " ;
2013-01-24 08:00:24 +00:00
$DeleteKeys = true ;
2011-10-11 08:00:15 +00:00
}
if ( $PermittedForums != db_string ( $Cur [ 'PermittedForums' ]) && check_perms ( 'users_mod' )) {
2013-04-13 08:00:19 +00:00
$ForumSet = explode ( ',' , $PermittedForums );
2011-10-11 08:00:15 +00:00
$ForumList = array ();
foreach ( $ForumSet as $ForumID ) {
2012-03-28 08:00:20 +00:00
if ( $Forums [ $ForumID ][ 'MinClassCreate' ] <= $LoggedUser [ 'EffectiveClass' ]) {
2011-10-11 08:00:15 +00:00
$ForumList [] = $ForumID ;
}
}
$PermittedForums = implode ( ',' , $ForumSet );
2013-04-13 08:00:19 +00:00
$UpdateSet [] = " PermittedForums=' $PermittedForums ' " ;
$EditSummary [] = " permitted forum(s): $PermittedForums " ;
2013-01-24 08:00:24 +00:00
$DeleteKeys = true ;
2011-10-11 08:00:15 +00:00
}
2013-04-13 08:00:19 +00:00
if ( $DisableAvatar != $Cur [ 'DisableAvatar' ] && check_perms ( 'users_disable_any' )) {
$UpdateSet [] = " DisableAvatar=' $DisableAvatar ' " ;
$EditSummary [] = " avatar status changed " ;
$HeavyUpdates [ 'DisableAvatar' ] = $DisableAvatar ;
2011-03-28 14:21:28 +00:00
if ( ! empty ( $UserReason )) {
2013-04-01 08:00:47 +00:00
Misc :: send_pm ( $UserID , 0 , 'Your avatar privileges have been disabled' , " Your avatar privileges have been disabled. The reason given was: $UserReason . If you would like to discuss this please join " . BOT_DISABLED_CHAN . " on our IRC network. Instructions can be found [url=https:// " . SSL_SITE_URL . " /wiki.php?action=article&name=IRC+-+How+to+join]here[/url]. " );
2011-03-28 14:21:28 +00:00
}
}
2013-04-13 08:00:19 +00:00
if ( $DisableLeech != $Cur [ 'can_leech' ] && check_perms ( 'users_disable_any' )) {
$UpdateSet [] = " can_leech=' $DisableLeech ' " ;
$EditSummary [] = " leeching status changed ( " . translateLeechStatus ( $Cur [ 'can_leech' ]) . " -> " . translateLeechStatus ( $DisableLeech ) . " ) " ;
$HeavyUpdates [ 'DisableLeech' ] = $DisableLeech ;
$HeavyUpdates [ 'CanLeech' ] = $DisableLeech ;
2011-03-28 14:21:28 +00:00
if ( ! empty ( $UserReason )) {
2013-04-01 08:00:47 +00:00
Misc :: send_pm ( $UserID , 0 , 'Your leeching privileges have been disabled' , " Your leeching privileges have been disabled. The reason given was: $UserReason . If you would like to discuss this please join " . BOT_DISABLED_CHAN . " on our IRC network. Instructions can be found [url=https:// " . SSL_SITE_URL . " /wiki.php?action=article&name=IRC+-+How+to+join]here[/url]. " );
2011-03-28 14:21:28 +00:00
}
2012-10-11 08:00:15 +00:00
Tracker :: update_tracker ( 'update_user' , array ( 'passkey' => $Cur [ 'torrent_pass' ], 'can_leech' => $DisableLeech ));
2011-03-28 14:21:28 +00:00
}
2013-04-13 08:00:19 +00:00
if ( $DisableInvites != $Cur [ 'DisableInvites' ] && check_perms ( 'users_disable_any' )) {
$UpdateSet [] = " DisableInvites=' $DisableInvites ' " ;
2013-02-22 08:00:24 +00:00
if ( $DisableInvites == 1 ) {
2013-04-13 08:00:19 +00:00
//$UpdateSet[] = "Invites='0'";
2011-03-28 14:21:28 +00:00
if ( ! empty ( $UserReason )) {
2013-04-01 08:00:47 +00:00
Misc :: send_pm ( $UserID , 0 , 'Your invite privileges have been disabled' , " Your invite privileges have been disabled. The reason given was: $UserReason . If you would like to discuss this please join " . BOT_DISABLED_CHAN . " on our IRC network. Instructions can be found [url=https:// " . SSL_SITE_URL . " /wiki.php?action=article&name=IRC+-+How+to+join]here[/url]. " );
2011-03-28 14:21:28 +00:00
}
}
2013-04-13 08:00:19 +00:00
$EditSummary [] = " invites status changed " ;
$HeavyUpdates [ 'DisableInvites' ] = $DisableInvites ;
2011-03-28 14:21:28 +00:00
}
2013-04-13 08:00:19 +00:00
if ( $DisablePosting != $Cur [ 'DisablePosting' ] && check_perms ( 'users_disable_posts' )) {
$UpdateSet [] = " DisablePosting=' $DisablePosting ' " ;
$EditSummary [] = " posting status changed " ;
$HeavyUpdates [ 'DisablePosting' ] = $DisablePosting ;
2011-03-28 14:21:28 +00:00
if ( ! empty ( $UserReason )) {
2013-04-01 08:00:47 +00:00
Misc :: send_pm ( $UserID , 0 , 'Your forum posting privileges have been disabled' , " Your forum posting privileges have been disabled. The reason given was: $UserReason . If you would like to discuss this please join " . BOT_DISABLED_CHAN . " on our IRC network. Instructions can be found [url=https:// " . SSL_SITE_URL . " /wiki.php?action=article&name=IRC+-+How+to+join]here[/url]. " );
2011-03-28 14:21:28 +00:00
}
}
2013-04-13 08:00:19 +00:00
if ( $DisableForums != $Cur [ 'DisableForums' ] && check_perms ( 'users_disable_posts' )) {
$UpdateSet [] = " DisableForums=' $DisableForums ' " ;
$EditSummary [] = " forums status changed " ;
$HeavyUpdates [ 'DisableForums' ] = $DisableForums ;
2011-03-28 14:21:28 +00:00
if ( ! empty ( $UserReason )) {
2013-04-01 08:00:47 +00:00
Misc :: send_pm ( $UserID , 0 , 'Your forum privileges have been disabled' , " Your forum privileges have been disabled. The reason given was: $UserReason . If you would like to discuss this please join " . BOT_DISABLED_CHAN . " on our IRC network. Instructions can be found [url=https:// " . SSL_SITE_URL . " /wiki.php?action=article&name=IRC+-+How+to+join]here[/url]. " );
2011-03-28 14:21:28 +00:00
}
}
2013-04-13 08:00:19 +00:00
if ( $DisableTagging != $Cur [ 'DisableTagging' ] && check_perms ( 'users_disable_any' )) {
$UpdateSet [] = " DisableTagging=' $DisableTagging ' " ;
$EditSummary [] = " tagging status changed " ;
$HeavyUpdates [ 'DisableTagging' ] = $DisableTagging ;
2011-03-28 14:21:28 +00:00
if ( ! empty ( $UserReason )) {
2013-04-01 08:00:47 +00:00
Misc :: send_pm ( $UserID , 0 , 'Your tagging privileges have been disabled' , " Your tagging privileges have been disabled. The reason given was: $UserReason . If you would like to discuss this please join " . BOT_DISABLED_CHAN . " on our IRC network. Instructions can be found [url=https:// " . SSL_SITE_URL . " /wiki.php?action=article&name=IRC+-+How+to+join]here[/url]. " );
2011-03-28 14:21:28 +00:00
}
}
2013-04-13 08:00:19 +00:00
if ( $DisableUpload != $Cur [ 'DisableUpload' ] && check_perms ( 'users_disable_any' )) {
$UpdateSet [] = " DisableUpload=' $DisableUpload ' " ;
$EditSummary [] = " upload status changed " ;
$HeavyUpdates [ 'DisableUpload' ] = $DisableUpload ;
2011-03-28 14:21:28 +00:00
if ( $DisableUpload == 1 ) {
2013-04-01 08:00:47 +00:00
Misc :: send_pm ( $UserID , 0 , 'Your upload privileges have been disabled' , " Your upload privileges have been disabled. The reason given was: $UserReason . If you would like to discuss this please join " . BOT_DISABLED_CHAN . " on our IRC network. Instructions can be found [url=https:// " . SSL_SITE_URL . " /wiki.php?action=article&name=IRC+-+How+to+join]here[/url]. " );
2011-03-28 14:21:28 +00:00
}
}
2013-04-13 08:00:19 +00:00
if ( $DisableWiki != $Cur [ 'DisableWiki' ] && check_perms ( 'users_disable_any' )) {
$UpdateSet [] = " DisableWiki=' $DisableWiki ' " ;
$EditSummary [] = " wiki status changed " ;
$HeavyUpdates [ 'DisableWiki' ] = $DisableWiki ;
$HeavyUpdates [ 'site_edit_wiki' ] = 0 ;
2011-03-28 14:21:28 +00:00
if ( ! empty ( $UserReason )) {
2013-04-01 08:00:47 +00:00
Misc :: send_pm ( $UserID , 0 , 'Your site editing privileges have been disabled' , " Your site editing privileges have been disabled. The reason given was: $UserReason . If you would like to discuss this please join " . BOT_DISABLED_CHAN . " on our IRC network. Instructions can be found [url=https:// " . SSL_SITE_URL . " /wiki.php?action=article&name=IRC+-+How+to+join]here[/url]. " );
2011-03-28 14:21:28 +00:00
}
2013-02-22 08:00:24 +00:00
2011-03-28 14:21:28 +00:00
}
2013-04-13 08:00:19 +00:00
if ( $DisablePM != $Cur [ 'DisablePM' ] && check_perms ( 'users_disable_any' )) {
$UpdateSet [] = " DisablePM=' $DisablePM ' " ;
$EditSummary [] = " PM status changed " ;
$HeavyUpdates [ 'DisablePM' ] = $DisablePM ;
2011-03-28 14:21:28 +00:00
if ( ! empty ( $UserReason )) {
2013-04-01 08:00:47 +00:00
Misc :: send_pm ( $UserID , 0 , 'Your PM privileges have been disabled' , " Your PM privileges have been disabled. The reason given was: $UserReason . If you would like to discuss this please join " . BOT_DISABLED_CHAN . " on our IRC network. Instructions can be found [url=https:// " . SSL_SITE_URL . " /wiki.php?action=article&name=IRC+-+How+to+join]here[/url]. " );
2011-03-28 14:21:28 +00:00
}
}
2013-04-13 08:00:19 +00:00
if ( $DisableIRC != $Cur [ 'DisableIRC' ] && check_perms ( 'users_disable_any' )) {
$UpdateSet [] = " DisableIRC=' $DisableIRC ' " ;
$EditSummary [] = " IRC status changed " ;
$HeavyUpdates [ 'DisableIRC' ] = $DisableIRC ;
2011-03-28 14:21:28 +00:00
if ( ! empty ( $UserReason )) {
2013-04-01 08:00:47 +00:00
Misc :: send_pm ( $UserID , 0 , 'Your IRC privileges have been disabled' , " Your IRC privileges have been disabled. The reason given was: $UserReason . If you would like to discuss this please join " . BOT_DISABLED_CHAN . " on our IRC network. Instructions can be found [url=https:// " . SSL_SITE_URL . " /wiki.php?action=article&name=IRC+-+How+to+join]here[/url]. This loss of privileges does not affect the ability to join and talk to staff in #what.cd-disabled. " );
2011-03-28 14:21:28 +00:00
}
}
2013-04-13 08:00:19 +00:00
if ( $DisableRequests != $Cur [ 'DisableRequests' ] && check_perms ( 'users_disable_any' )) {
$UpdateSet [] = " DisableRequests=' $DisableRequests ' " ;
$EditSummary [] = " request status changed " ;
$HeavyUpdates [ 'DisableRequests' ] = $DisableRequests ;
2011-03-28 14:21:28 +00:00
if ( ! empty ( $UserReason )) {
2013-04-01 08:00:47 +00:00
Misc :: send_pm ( $UserID , 0 , 'Your request privileges have been disabled' , " Your request privileges have been disabled. The reason given was: $UserReason . If you would like to discuss this please join " . BOT_DISABLED_CHAN . " on our IRC network. Instructions can be found [url=https:// " . SSL_SITE_URL . " /wiki.php?action=article&name=IRC+-+How+to+join]here[/url]. This loss of privileges does not affect the ability to join and talk to staff in #what.cd-disabled. " );
2011-03-28 14:21:28 +00:00
}
}
2013-04-13 08:00:19 +00:00
if ( $EnableUser != $Cur [ 'Enabled' ] && check_perms ( 'users_disable_users' )) {
2011-10-01 08:00:08 +00:00
$EnableStr = 'account ' . translateUserStatus ( $Cur [ 'Enabled' ]) . '->' . translateUserStatus ( $EnableUser );
2013-04-13 08:00:19 +00:00
if ( $EnableUser == '2' ) {
2012-10-11 08:00:15 +00:00
Tools :: disable_users ( $UserID , '' , 1 );
2013-04-13 08:00:19 +00:00
} elseif ( $EnableUser == '1' ) {
2011-03-28 14:21:28 +00:00
$Cache -> increment ( 'stats_user_count' );
2012-10-11 08:00:15 +00:00
Tracker :: update_tracker ( 'add_user' , array ( 'id' => $UserID , 'passkey' => $Cur [ 'torrent_pass' ]));
2011-10-06 08:00:12 +00:00
if (( $Cur [ 'Downloaded' ] == 0 ) || ( $Cur [ 'Uploaded' ] / $Cur [ 'Downloaded' ] >= $Cur [ 'RequiredRatio' ])) {
2013-04-13 08:00:19 +00:00
$UpdateSet [] = " i.RatioWatchEnds='0000-00-00 00:00:00' " ;
2011-10-01 08:00:08 +00:00
$CanLeech = 1 ;
2013-04-13 08:00:19 +00:00
$UpdateSet [] = " m.can_leech='1' " ;
$UpdateSet [] = " i.RatioWatchDownload='0' " ;
2011-10-01 08:00:08 +00:00
} else {
2013-01-31 08:00:19 +00:00
$EnableStr .= ' (Ratio: ' . Format :: get_ratio_html ( $Cur [ 'Uploaded' ], $Cur [ 'Downloaded' ], false ) . ', RR: ' . number_format ( $Cur [ 'RequiredRatio' ], 2 ) . ')' ;
2011-10-10 08:00:12 +00:00
if ( $Cur [ 'RatioWatchEnds' ] != '0000-00-00 00:00:00' ) {
2013-04-13 08:00:19 +00:00
$UpdateSet [] = " i.RatioWatchEnds=NOW() " ;
$UpdateSet [] = " i.RatioWatchDownload=m.Downloaded " ;
2011-10-20 08:00:12 +00:00
$CanLeech = 0 ;
2011-10-10 08:00:12 +00:00
}
2012-10-11 08:00:15 +00:00
Tracker :: update_tracker ( 'update_user' , array ( 'passkey' => $Cur [ 'torrent_pass' ], 'can_leech' => '0' ));
2011-10-01 08:00:08 +00:00
}
2013-04-13 08:00:19 +00:00
$UpdateSet [] = " Enabled='1' " ;
2011-03-28 14:21:28 +00:00
$LightUpdates [ 'Enabled' ] = 1 ;
}
2013-04-13 08:00:19 +00:00
$EditSummary [] = $EnableStr ;
2011-03-28 14:21:28 +00:00
$Cache -> replace_value ( 'enabled_' . $UserID , $EnableUser , 0 );
}
if ( $ResetPasskey == 1 && check_perms ( 'users_edit_reset_keys' )) {
2012-10-11 08:00:15 +00:00
$Passkey = db_string ( Users :: make_secret ());
2013-04-13 08:00:19 +00:00
$UpdateSet [] = " torrent_pass=' $Passkey ' " ;
$EditSummary [] = " passkey reset " ;
$HeavyUpdates [ 'torrent_pass' ] = $Passkey ;
2011-03-28 14:21:28 +00:00
$Cache -> delete_value ( 'user_' . $Cur [ 'torrent_pass' ]);
//MUST come after the case for updating can_leech.
2012-02-01 08:00:25 +00:00
$DB -> query ( " INSERT INTO users_history_passkeys
( UserID , OldPassKey , NewPassKey , ChangerIP , ChangeTime ) VALUES
( '$UserID' , '".$Cur[' torrent_pass ']."' , '$Passkey' , '0.0.0.0' , '".sqltime()."' ) " );
2012-10-11 08:00:15 +00:00
Tracker :: update_tracker ( 'change_passkey' , array ( 'oldpasskey' => $Cur [ 'torrent_pass' ], 'newpasskey' => $Passkey ));
2011-03-28 14:21:28 +00:00
}
if ( $ResetAuthkey == 1 && check_perms ( 'users_edit_reset_keys' )) {
2012-10-11 08:00:15 +00:00
$Authkey = db_string ( Users :: make_secret ());
2013-04-13 08:00:19 +00:00
$UpdateSet [] = " AuthKey=' $Authkey ' " ;
$EditSummary [] = " authkey reset " ;
$HeavyUpdates [ 'AuthKey' ] = $Authkey ;
2011-03-28 14:21:28 +00:00
}
if ( $SendHackedMail && check_perms ( 'users_disable_any' )) {
2013-04-13 08:00:19 +00:00
$EditSummary [] = " hacked email sent to " . $HackedEmail ;
2012-10-11 08:00:15 +00:00
Misc :: send_email ( $HackedEmail , " Your " . SITE_NAME . " account. " , " Your " . SITE_NAME . " account appears to have been compromised. As a security measure we have disabled your account. To resolve this please visit us on IRC.
2011-03-28 14:21:28 +00:00
This is the information to connect to our server :
IRC Server : " .BOT_SERVER. "
2012-03-23 08:00:24 +00:00
Port : " .BOT_PORT. " ( " .BOT_PORT_SSL. " SSL )
2011-03-28 14:21:28 +00:00
Once you are connected to our server you ' ll need to join our disabled channel .
Type : / join " .BOT_DISABLED_CHAN. "
Please visit us soon so we can help you resolve this matter . " );
}
if ( $MergeStatsFrom && check_perms ( 'users_edit_ratio' )) {
$DB -> query ( " SELECT ID, Uploaded, Downloaded FROM users_main WHERE Username LIKE ' " . $MergeStatsFrom . " ' " );
2013-04-01 08:00:47 +00:00
if ( $DB -> record_count () > 0 ) {
2011-03-28 14:21:28 +00:00
list ( $MergeID , $MergeUploaded , $MergeDownloaded ) = $DB -> next_record ();
2013-04-01 08:00:47 +00:00
$DB -> query ( " UPDATE users_main AS um JOIN users_info AS ui ON um.ID=ui.UserID SET um.Uploaded = 0, um.Downloaded = 0, ui.AdminComment = CONCAT(' " . sqltime () . " - Stats merged into https:// " . SSL_SITE_URL . " /user.php?id= " . $UserID . " ( " . $Cur [ 'Username' ] . " ) by " . $LoggedUser [ 'Username' ] . " \n \n ', ui.AdminComment) WHERE ID = " . $MergeID );
2013-04-13 08:00:19 +00:00
$UpdateSet [] = " Uploaded = Uploaded + ' $MergeUploaded ' " ;
$UpdateSet [] = " Downloaded = Downloaded + ' $MergeDownloaded ' " ;
$EditSummary [] = " stats merged from https:// " . SSL_SITE_URL . " /user.php?id= " . $MergeID . " ( " . $MergeStatsFrom . " ) " ;
2011-03-28 14:21:28 +00:00
$Cache -> delete_value ( 'users_stats_' . $UserID );
$Cache -> delete_value ( 'users_stats_' . $MergeID );
}
}
if ( $Pass && check_perms ( 'users_edit_password' )) {
2013-04-13 08:00:19 +00:00
$UpdateSet [] = " PassHash=' " . db_string ( Users :: make_crypt_hash ( $Pass )) . " ' " ;
$EditSummary [] = 'password reset' ;
2013-01-24 08:00:24 +00:00
2011-03-28 14:21:28 +00:00
$Cache -> delete_value ( 'user_info_' . $UserID );
2013-01-24 08:00:24 +00:00
$Cache -> delete_value ( 'user_info_heavy_' . $UserID );
$Cache -> delete_value ( 'user_stats_' . $UserID );
$Cache -> delete_value ( 'enabled_' . $UserID );
2011-03-28 14:21:28 +00:00
2013-01-24 08:00:24 +00:00
$DB -> query ( " SELECT SessionID FROM users_sessions WHERE UserID=' $UserID ' " );
2013-04-01 08:00:47 +00:00
while ( list ( $SessionID ) = $DB -> next_record ()) {
2011-03-28 14:21:28 +00:00
$Cache -> delete_value ( 'session_' . $UserID . '_' . $SessionID );
}
2013-01-24 08:00:24 +00:00
$Cache -> delete_value ( 'users_sessions_' . $UserID );
2011-10-20 08:00:12 +00:00
$DB -> query ( " DELETE FROM users_sessions WHERE UserID=' $UserID ' " );
2011-03-28 14:21:28 +00:00
}
if ( empty ( $UpdateSet ) && empty ( $EditSummary )) {
2013-04-13 08:00:19 +00:00
if ( ! $Reason ) {
2011-03-28 14:21:28 +00:00
if ( str_replace ( " \r " , '' , $Cur [ 'AdminComment' ]) != str_replace ( " \r " , '' , $AdminComment ) && check_perms ( 'users_disable_any' )) {
2013-04-13 08:00:19 +00:00
$UpdateSet [] = " AdminComment=' $AdminComment ' " ;
2011-03-28 14:21:28 +00:00
} else {
header ( " Location: user.php?id= $UserID " );
die ();
}
} else {
2013-04-13 08:00:19 +00:00
$EditSummary [] = 'notes added' ;
2011-03-28 14:21:28 +00:00
}
}
2012-03-29 08:00:19 +00:00
if ( $DeleteKeys ) {
$Cache -> delete_value ( 'user_info_' . $UserID );
$Cache -> delete_value ( 'user_info_heavy_' . $UserID );
} else {
$Cache -> begin_transaction ( 'user_info_' . $UserID );
$Cache -> update_row ( false , $LightUpdates );
$Cache -> commit_transaction ( 0 );
2011-03-28 14:21:28 +00:00
2012-03-29 08:00:19 +00:00
$Cache -> begin_transaction ( 'user_info_heavy_' . $UserID );
$Cache -> update_row ( false , $HeavyUpdates );
$Cache -> commit_transaction ( 0 );
}
2011-03-28 14:21:28 +00:00
$Summary = '' ;
// Create edit summary
if ( $EditSummary ) {
$Summary = implode ( ', ' , $EditSummary ) . " by " . $LoggedUser [ 'Username' ];
$Summary = sqltime () . ' - ' . ucfirst ( $Summary );
2013-02-22 08:00:24 +00:00
2013-04-20 08:01:01 +00:00
if ( $Reason ) {
2011-03-28 14:21:28 +00:00
$Summary .= " \n Reason: " . $Reason ;
}
2013-02-22 08:00:24 +00:00
2011-03-28 14:21:28 +00:00
2013-02-22 08:00:24 +00:00
2011-03-28 14:21:28 +00:00
$Summary .= " \n \n " . $AdminComment ;
2013-04-13 08:00:19 +00:00
} elseif ( empty ( $UpdateSet ) && empty ( $EditSummary ) && $Cur [ 'AdminComment' ] == $_POST [ 'AdminComment' ]) {
2011-03-28 14:21:28 +00:00
$Summary = sqltime () . ' - ' . 'Comment added by ' . $LoggedUser [ 'Username' ] . ': ' . $Reason . " \n \n " ;
2013-02-22 08:00:24 +00:00
2011-03-28 14:21:28 +00:00
}
2013-04-13 08:00:19 +00:00
if ( ! empty ( $Summary )) {
$UpdateSet [] = " AdminComment=' $Summary ' " ;
2011-03-28 14:21:28 +00:00
} else {
2013-04-13 08:00:19 +00:00
$UpdateSet [] = " AdminComment=' $AdminComment ' " ;
2011-03-28 14:21:28 +00:00
}
// Update cache
// Build query
$SET = implode ( ', ' , $UpdateSet );
$sql = " UPDATE users_main AS m JOIN users_info AS i ON m.ID=i.UserID SET $SET WHERE m.ID=' $UserID ' " ;
// Perform update
//die($sql);
$DB -> query ( $sql );
2013-04-13 08:00:19 +00:00
if ( isset ( $ClearStaffIDCache )) {
2011-03-28 14:21:28 +00:00
$Cache -> delete_value ( 'staff_ids' );
}
// redirect to user page
header ( " location: user.php?id= $UserID " );
function translateUserStatus ( $status ) {
2013-05-01 08:00:16 +00:00
switch ( $status ) {
2011-03-28 14:21:28 +00:00
case 0 :
2013-05-01 08:00:16 +00:00
return 'Unconfirmed' ;
2011-03-28 14:21:28 +00:00
case 1 :
2013-05-01 08:00:16 +00:00
return 'Enabled' ;
2011-03-28 14:21:28 +00:00
case 2 :
2013-05-01 08:00:16 +00:00
return 'Disabled' ;
2011-03-28 14:21:28 +00:00
default :
return $status ;
}
}
2012-01-24 08:00:19 +00:00
function translateLeechStatus ( $status ) {
switch ( $status ) {
case 0 :
2013-05-01 08:00:16 +00:00
return 'Disabled' ;
2012-01-24 08:00:19 +00:00
case 1 :
2013-05-01 08:00:16 +00:00
return 'Enabled' ;
2012-01-24 08:00:19 +00:00
default :
return $status ;
}
}
2011-03-28 14:21:28 +00:00
?>