diff options
author | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-09-11 16:51:00 +0000 |
---|---|---|
committer | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-09-11 16:51:00 +0000 |
commit | 1d059dc06d24e02c858c43d70eaa70453d51cdff (patch) | |
tree | d29378c81ec8a9498a33ed7276722031c1f12981 | |
parent | bfdc6bd7380fda2d5d8ca78a462047069c4020bc (diff) | |
download | semanticscuttle-1d059dc06d24e02c858c43d70eaa70453d51cdff.tar.gz semanticscuttle-1d059dc06d24e02c858c43d70eaa70453d51cdff.tar.bz2 |
New Feature: add users admin page with delete function
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@146 b3834d28-1941-0410-a4f8-b48e95affb8f
-rw-r--r-- | services/bookmark2tagservice.php | 20 | ||||
-rw-r--r-- | services/bookmarkservice.php | 11 | ||||
-rw-r--r-- | services/tag2tagservice.php | 14 | ||||
-rw-r--r-- | services/userservice.php | 29 | ||||
-rw-r--r-- | templates/toolbar.inc.php | 5 | ||||
-rw-r--r-- | templates/userlist.tpl.php | 34 |
6 files changed, 107 insertions, 6 deletions
diff --git a/services/bookmark2tagservice.php b/services/bookmark2tagservice.php index 121ba8d..31ae4d2 100644 --- a/services/bookmark2tagservice.php +++ b/services/bookmark2tagservice.php @@ -179,6 +179,26 @@ class Bookmark2TagService { return true; } + /* Allow deletion in admin page */ + function deleteTagsForUser($uId) {
+ $qmask = 'DELETE FROM %s USING %s, %s WHERE %s.bId = %s.bId AND %s.uId = %d';
+ $query = sprintf($qmask,
+ $this->getTableName(),
+ $this->getTableName(),
+ $GLOBALS['tableprefix'].'bookmarks',
+ $this->getTableName(),
+ $GLOBALS['tableprefix'].'bookmarks',
+ $GLOBALS['tableprefix'].'bookmarks',
+ $uId);
+
+ if (!($dbresult =& $this->db->sql_query($query))) {
+ message_die(GENERAL_ERROR, 'Could not delete tags', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+
+ return true;
+ } + function &getTagsForBookmark($bookmarkid) { if (!is_int($bookmarkid)) { message_die(GENERAL_ERROR, 'Could not get tags (invalid bookmarkid)', '', __LINE__, __FILE__, $query); diff --git a/services/bookmarkservice.php b/services/bookmarkservice.php index 2cd42e2..150abc3 100644 --- a/services/bookmarkservice.php +++ b/services/bookmarkservice.php @@ -416,6 +416,17 @@ class BookmarkService { return true; } + function deleteBookmarksForUser($uId) {
+ $query = 'DELETE FROM '. $GLOBALS['tableprefix'] .'bookmarks WHERE uId = '. intval($uId);
+
+ if (!($dbresult = & $this->db->sql_query($query))) {
+ message_die(GENERAL_ERROR, 'Could not delete bookmarks', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+
+ return true;
+ } + function countOthers($address) { if (!$address) { return false; diff --git a/services/tag2tagservice.php b/services/tag2tagservice.php index bf4f866..f24ef79 100644 --- a/services/tag2tagservice.php +++ b/services/tag2tagservice.php @@ -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); diff --git a/services/userservice.php b/services/userservice.php index 3d2058f..f620735 100644 --- a/services/userservice.php +++ b/services/userservice.php @@ -336,6 +336,35 @@ class UserService { return true; } + function getAllUsers ( ) {
+ $query = 'SELECT * FROM '. $this->getTableName();
+
+ if (! ($dbresult =& $this->db->sql_query($query)) ) {
+ message_die(GENERAL_ERROR, 'Could not get users', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+
+ $rows = array();
+
+ while ( $row = $this->db->sql_fetchrow($dbresult) ) {
+ $rows[] = $row;
+ }
+
+ return $rows;
+ }
+
+ function deleteUser($uId) {
+ $query = 'DELETE FROM '. $this->getTableName() .' WHERE uId = '. intval($uId);
+
+ if (!($dbresult = & $this->db->sql_query($query))) {
+ message_die(GENERAL_ERROR, 'Could not delete user', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+
+ return true;
+ }
+ + function sanitisePassword($password) { return sha1(trim($password)); } diff --git a/templates/toolbar.inc.php b/templates/toolbar.inc.php index 593ee0f..92d8d59 100644 --- a/templates/toolbar.inc.php +++ b/templates/toolbar.inc.php @@ -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): ?>
+ <li><a href="<?php echo createURL('admin', ''); ?>"><?php echo '['.T_('Admin').']'; ?></a></li>
+ <?php endif; ?> + </ul> <?php diff --git a/templates/userlist.tpl.php b/templates/userlist.tpl.php new file mode 100644 index 0000000..e05ea6d --- /dev/null +++ b/templates/userlist.tpl.php @@ -0,0 +1,34 @@ +<?php
+
+$userservice =& ServiceFactory::getServiceInstance('UserService'); + +$currentUser = $userservice->getCurrentUser();
+$currentUserID = $userservice->getCurrentUserId();
+$currentUsername = $currentUser[$userservice->getFieldName('username')]; +
+
+$this->includeTemplate($GLOBALS['top_include']);
+
+echo '<ol id="bookmarks">';
+
+foreach(array_keys($users) as $key) {
+
+ echo '<li class="xfolkentry">'."\n";
+
+ echo '<div class="link">';
+ echo '<a href="'.createURL('profile', $users[$key][$userservice->getFieldname('username')]).'">'.$users[$key][$userservice->getFieldName('username')].'</a>';
+ echo '</div>';
+ + if($users[$key][$userservice->getFieldName('username')] != $currentUsername) {
+ echo '<div class="meta">';
+ echo '<a href="'.createURL('admin','delete/'.$users[$key][$userservice->getFieldname('username')]).'" onclick="return confirm(\''.T_('Are you sure?').'\');">'.T_('Delete').'</a>';
+ echo '</div>'; + }
+
+ echo '</li>'."\n";
+}
+
+$this->includeTemplate('sidebar.tpl');
+$this->includeTemplate($GLOBALS['bottom_include']);
+
+?>
|