summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorGravatar mensonge2008-09-11 16:51:00 +0000
committerGravatar mensonge2008-09-11 16:51:00 +0000
commit1d059dc06d24e02c858c43d70eaa70453d51cdff (patch)
treed29378c81ec8a9498a33ed7276722031c1f12981
parentbfdc6bd7380fda2d5d8ca78a462047069c4020bc (diff)
downloadscuttle-1d059dc06d24e02c858c43d70eaa70453d51cdff.tar.gz
scuttle-1d059dc06d24e02c858c43d70eaa70453d51cdff.zip
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.php20
-rw-r--r--services/bookmarkservice.php11
-rw-r--r--services/tag2tagservice.php14
-rw-r--r--services/userservice.php29
-rw-r--r--templates/toolbar.inc.php5
-rw-r--r--templates/userlist.tpl.php34
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']);
+
+?>