]> gitweb.fluxo.info Git - semanticscuttle.git/commitdiff
New Feature: add users admin page with delete function
authormensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f>
Thu, 11 Sep 2008 16:51:00 +0000 (16:51 +0000)
committermensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f>
Thu, 11 Sep 2008 16:51:00 +0000 (16:51 +0000)
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@146 b3834d28-1941-0410-a4f8-b48e95affb8f

services/bookmark2tagservice.php
services/bookmarkservice.php
services/tag2tagservice.php
services/userservice.php
templates/toolbar.inc.php
templates/userlist.tpl.php [new file with mode: 0644]

index 121ba8d569a94752898e82ffb3109fe3a705d0f9..31ae4d234a8fc9b512d3498e804f23da10f6073f 100644 (file)
@@ -179,6 +179,26 @@ class Bookmark2TagService {
         return true;
     }
 
+    /* Allow deletion in admin page */
+    function deleteTagsForUser($uId) {\r
+       $qmask = 'DELETE FROM %s USING %s, %s WHERE %s.bId = %s.bId AND %s.uId = %d';\r
+       $query = sprintf($qmask,\r
+               $this->getTableName(),\r
+               $this->getTableName(),\r
+               $GLOBALS['tableprefix'].'bookmarks',\r
+               $this->getTableName(),\r
+               $GLOBALS['tableprefix'].'bookmarks',\r
+               $GLOBALS['tableprefix'].'bookmarks',\r
+               $uId);\r
+\r
+        if (!($dbresult =& $this->db->sql_query($query))) {\r
+            message_die(GENERAL_ERROR, 'Could not delete tags', '', __LINE__, __FILE__, $query, $this->db);\r
+            return false;\r
+        }\r
+\r
+        return true;\r
+    }
+
     function &getTagsForBookmark($bookmarkid) {
         if (!is_int($bookmarkid)) {
             message_die(GENERAL_ERROR, 'Could not get tags (invalid bookmarkid)', '', __LINE__, __FILE__, $query);
index 2cd42e218c2822bf5f0a8a1c67bf247d9063236c..150abc38172619e09ceacaf9a97d4834aa7452e3 100644 (file)
@@ -416,6 +416,17 @@ class BookmarkService {
         return true;
     }
 
+    function deleteBookmarksForUser($uId) {\r
+        $query = 'DELETE FROM '. $GLOBALS['tableprefix'] .'bookmarks WHERE uId = '. intval($uId);\r
+\r
+        if (!($dbresult = & $this->db->sql_query($query))) {\r
+            message_die(GENERAL_ERROR, 'Could not delete bookmarks', '', __LINE__, __FILE__, $query, $this->db);\r
+            return false;\r
+        }\r
+\r
+        return true;\r
+    }
+
     function countOthers($address) {
         if (!$address) {
             return false;
index bf4f866aed4cbf214b3f4048b7202576f8e98f96..f24ef7934bdfe0943c8c627c71348a5ee1496805 100644 (file)
@@ -234,15 +234,17 @@ class Tag2TagService {
     }
 
     function removeLinkedTags($tag1, $tag2, $relationType, $uId) {
-       if($tag1 == $tag2 || strlen($tag1) == 0 || strlen($tag2) == 0
-               || ($relationType != ">" && $relationType != "=")) {
+       if(($tag1 != '' && $tag1 == $tag2) ||
+           ($relationType != ">" && $relationType != "=" && $relationType != "") ||
+           ($tag1 == '' && $tag2 == '' && $relationType == '' && $uId == '')) {
                return false;
        }
        $query = 'DELETE FROM '. $this->getTableName();
-       $query.= ' WHERE tag1 = "'. $tag1 .'"';
-       $query.= ' AND tag2 = "'. $tag2 .'"';
-       $query.= ' AND relationType = "'. $relationType .'"';
-       $query.= ' AND uId = "'. $uId .'"';
+       $query.= ' WHERE 1=1';
+       $query.= strlen($tag1)>0 ? ' AND tag1 = "'. $tag1 .'"' : '';
+       $query.= strlen($tag2)>0 ? ' AND tag2 = "'. $tag2 .'"' : '';
+       $query.= strlen($relationType)>0 ? ' AND relationType = "'. $relationType .'"' : '';
+       $query.= strlen($uId)>0 ? ' AND uId = "'. $uId .'"' : '';
 
         if (!($dbresult =& $this->db->sql_query($query))) {
             message_die(GENERAL_ERROR, 'Could not remove tag relation', '', __LINE__, __FILE__, $query, $this->db);
index 3d2058fdd0ca13e14efd7396fe44db6cce988208..f620735cf576286bcf9854df0031a7da97675006 100644 (file)
@@ -336,6 +336,35 @@ class UserService {
         return true;
     }
 
+       function getAllUsers ( ) { \r
+               $query = 'SELECT * FROM '. $this->getTableName();\r
+\r
+               if (! ($dbresult =& $this->db->sql_query($query)) ) {\r
+                   message_die(GENERAL_ERROR, 'Could not get users', '', __LINE__, __FILE__, $query, $this->db);\r
+                   return false;\r
+               }\r
+\r
+               $rows = array();\r
+\r
+               while ( $row = $this->db->sql_fetchrow($dbresult) ) {\r
+                       $rows[] = $row;\r
+               }\r
+\r
+               return $rows;\r
+       }\r
+\r
+    function deleteUser($uId) {\r
+       $query = 'DELETE FROM '. $this->getTableName() .' WHERE uId = '. intval($uId);\r
+\r
+        if (!($dbresult = & $this->db->sql_query($query))) {\r
+            message_die(GENERAL_ERROR, 'Could not delete user', '', __LINE__, __FILE__, $query, $this->db);\r
+            return false;\r
+        }\r
+\r
+       return true;\r
+    }\r
+
+
     function sanitisePassword($password) {
         return sha1(trim($password));
     }
index 593ee0f3e1fe3797f65cf76c9f099257ebc3f27a..92d8d593bf57be4ca7a50f557277e25cc19751f6 100644 (file)
@@ -4,6 +4,7 @@ if ($userservice->isLoggedOn()) {
     $cUser = $userservice->getCurrentUser();
     $cUserId = $userservice->getCurrentUserId();
     $cUsername = $cUser[$userservice->getFieldName('username')];
+    $isAdmin = $userservice->isAdmin($cUser[$userservice->getFieldname('primary')]);
 ?>
 
     <ul id="navigation">
@@ -14,6 +15,10 @@ if ($userservice->isLoggedOn()) {
         <li><a href="<?php echo createURL('bookmarks', $cUsername . '?action=add'); ?>"><?php echo T_('Add a Bookmark'); ?></a></li>
         <li class="access"><?php echo $cUsername?><a href="<?php echo $GLOBALS['root']; ?>?action=logout">(<?php echo T_('Log Out'); ?>)</a></li>
         <li><a href="<?php echo createURL('about'); ?>"><?php echo T_('About'); ?></a></li>
+       <?php if($isAdmin): ?>\r
+        <li><a href="<?php echo createURL('admin', ''); ?>"><?php echo '['.T_('Admin').']'; ?></a></li>\r
+       <?php endif; ?>
+
     </ul>
 
 <?php
diff --git a/templates/userlist.tpl.php b/templates/userlist.tpl.php
new file mode 100644 (file)
index 0000000..e05ea6d
--- /dev/null
@@ -0,0 +1,34 @@
+<?php\r
+\r
+$userservice =& ServiceFactory::getServiceInstance('UserService');
+
+$currentUser = $userservice->getCurrentUser();\r
+$currentUserID = $userservice->getCurrentUserId();\r
+$currentUsername = $currentUser[$userservice->getFieldName('username')];
+\r
+\r
+$this->includeTemplate($GLOBALS['top_include']);\r
+\r
+echo '<ol id="bookmarks">';\r
+\r
+foreach(array_keys($users) as $key) {\r
+\r
+       echo '<li class="xfolkentry">'."\n";\r
+\r
+       echo '<div class="link">';\r
+       echo '<a href="'.createURL('profile', $users[$key][$userservice->getFieldname('username')]).'">'.$users[$key][$userservice->getFieldName('username')].'</a>';\r
+       echo '</div>';\r
+
+       if($users[$key][$userservice->getFieldName('username')] != $currentUsername) {\r
+           echo '<div class="meta">';\r
+           echo '<a href="'.createURL('admin','delete/'.$users[$key][$userservice->getFieldname('username')]).'" onclick="return confirm(\''.T_('Are you sure?').'\');">'.T_('Delete').'</a>';\r
+           echo '</div>';
+       }\r
+\r
+       echo '</li>'."\n";\r
+}\r
+\r
+$this->includeTemplate('sidebar.tpl');\r
+$this->includeTemplate($GLOBALS['bottom_include']);\r
+\r
+?>\r