This is an automated email from the git hooks/post-receive script.

skunnyk pushed a 
commit to branch 
oldforum
in repository www/forum.xfce.org.

commit 614f6e33c14550d3ed2f028e1054d946f287da9c
Author: Nick Schermer <n...@xfce.org>
Date:   Fri Nov 12 17:22:30 2010 +0100

    Add plugin to remove inactive users.
    
    Tool to remove users who made no posts and have not logged in
    1 month after registration or no login for the last 6 months.
---
 plugins/AMP_Inactive_users.php | 119 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 119 insertions(+)

diff --git a/plugins/AMP_Inactive_users.php b/plugins/AMP_Inactive_users.php
new file mode 100644
index 0000000..1dcce64
--- /dev/null
+++ b/plugins/AMP_Inactive_users.php
@@ -0,0 +1,119 @@
+<?php
+
+// Make sure no one attempts to run this script "directly"
+if (!defined('PUN'))
+       exit;
+
+$no_visit_age = 60*60*24*30;
+$no_login_age = $no_visit_age * 6;
+$limit = 100;
+
+// Tell admin_loader.php that this is indeed a plugin and that it is loaded
+define('PUN_PLUGIN_LOADED', 1);
+
+// Display the admin navigation menu
+generate_admin_menu($plugin);
+
+$deleted = 0;
+if (isset($_POST['delete-users']) && is_array($_POST['delete-users']))
+{
+       if ($pun_user['g_id'] > PUN_ADMIN)
+               message($lang_common['No permission']);
+
+       confirm_referrer('admin_loader.php');
+
+       if (isset($_POST['deleted']))
+       {
+               $deleted = intval($_POST['deleted']);
+       }
+
+       foreach($_POST['delete-users'] as $user)
+       {
+               if (!preg_match('/^\d+$/', $user))
+               {
+                       continue;
+               }
+
+               // Delete any subscriptions
+               $db->query('DELETE FROM '.$db->prefix.'subscriptions WHERE 
user_id='.$user) or error('Unable to delete subscriptions', __FILE__, __LINE__, 
$db->error());
+
+               // Remove him/her from the online list (if they happen to be 
logged in)
+               $db->query('DELETE FROM '.$db->prefix.'online WHERE 
user_id='.$user) or error('Unable to remove user from online list', __FILE__, 
__LINE__, $db->error());
+
+               // Delete the user
+               $db->query('DELETE FROM '.$db->prefix.'users WHERE num_posts=0 
AND id='.$user) or error('Unable to delete user', __FILE__, __LINE__, 
$db->error());
+               if ($db->affected_rows() > 0)
+               {
+                       $deleted++;
+               }
+
+               // Delete user avatar
+               delete_avatar($user);
+       }
+}
+
+?>
+       <div class="plugin blockform">
+               <h2><span>Inactive profile detector</span></h2>
+               <?php
+                       if ($deleted > 0)
+                       {
+                       echo '<div class="box"><p>Deleted '.$deleted.' 
users!</p></div>';
+                       }
+               ?>
+               <div class="box">
+                       <div class="inbox">
+                               <p>Search for users with no posts and the 
following setting:</p>
+                               <div class="inform">
+                                       <table class="aligntop" 
style="width:300px;">
+                                               <tr>
+                                                       <td>Never made a visit 
in<br />and regsitered before:</td>
+                                                       <td><?php echo 
gmdate('M d Y H:i:s', time() - $no_visit_age); ?></td>
+                                               </tr>
+                                               <tr>
+                                                       <td>Never visited 
since:</td>
+                                                       <td><?php echo 
gmdate('M d Y H:i:s', time() - $no_login_age); ?></td>
+                                               </tr>
+                                               <tr>
+                                                       <td>Limited to:</td>
+                                                       <td><?php echo $limit; 
?> users</td>
+                                               </tr>
+                                       </table>
+                               </div>
+                       </div>
+               </div>
+
+               <h2 class="block2"><span>Inactive users:</span></h2>
+               <div class="box">
+                       <div class="inbox"><p><?php
+                       $user_result = $db->query('SELECT id, username, email, 
url FROM '.$db->prefix.'users WHERE group_id=4 AND num_posts = 0 AND (
+                                                 (last_visit = 0 AND 
registered < (UNIX_TIMESTAMP() - '.$no_visit_age.'))
+                                                 OR
+                                                 (last_visit < 
(UNIX_TIMESTAMP() - '.$no_login_age.'))) ORDER BY registered DESC LIMIT 
'.$limit) or error('All clear', __FILE__, __LINE__, $db->error());
+
+                       if ($db->num_rows($user_result))
+                       {
+                               echo '<form method="post" 
action="'.pun_htmlspecialchars($_SERVER['REQUEST_URI']).'">
+                               <input type="submit" name="submit" 
value="Delete Users" />
+                               
<table><tr><th>username</th><th>Delete</th><th>E-mail</th><th>Website</th></tr>';
+
+                               while ($cur_user = 
$db->fetch_assoc($user_result))
+                               {
+                                       echo '<tr>
+                                               <td style="width:150px;"><a 
href="profile.php?id='.$cur_user['id'].'">'.pun_htmlspecialchars($cur_user['username']).'</a></td>
+                                                       <td 
style="width:50px;"><input type="checkbox" name="delete-users[]" 
value="'.$cur_user['id'].'" checked /></td>
+                                                       
<td>'.pun_htmlspecialchars(stripslashes($cur_user['email'])).'</td>
+                                                       
<td>'.pun_htmlspecialchars(stripslashes($cur_user['url'])).'</td>
+                                               </tr>';
+                               }
+
+                               echo '</table>
+                                       <input type="hidden" name="deleted" 
value="'.$deleted.'" />
+                                       <input type="submit" name="submit" 
value="Delete Users" />
+                               </form>';
+                       }
+                       ?></p></div>
+               </div>
+       </div>
+<?php
+

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.
_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to