mirror of
https://github.com/tuxis-ie/nsedit.git
synced 2025-04-20 20:13:40 +03:00
Allow removal of members from groups.
This commit is contained in:
parent
417e9ca848
commit
d915137eff
3 changed files with 48 additions and 5 deletions
18
groups.php
18
groups.php
|
@ -100,8 +100,8 @@ case "addmember":
|
||||||
if (user_exists($user)) {
|
if (user_exists($user)) {
|
||||||
if(is_group_member($groupid,$user)) {
|
if(is_group_member($groupid,$user)) {
|
||||||
jtable_respond(null, 'error', "User already a member of the group");
|
jtable_respond(null, 'error', "User already a member of the group");
|
||||||
} elseif(add_group_member($groupid,$user)) {
|
} elseif(!is_null($id=add_group_member($groupid,$user))) {
|
||||||
$entry = array('user' => $user);
|
$entry = array('id' => $id,'user' => $user);
|
||||||
jtable_respond($entry, 'single');
|
jtable_respond($entry, 'single');
|
||||||
} else {
|
} else {
|
||||||
jtable_respond(null, 'error', "Failed to add user to group");
|
jtable_respond(null, 'error', "Failed to add user to group");
|
||||||
|
@ -114,6 +114,20 @@ case "addmember":
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "removemember":
|
||||||
|
$id = isset($_POST['id']) ? $_POST['id'] : '';
|
||||||
|
|
||||||
|
if ($id != '') {
|
||||||
|
if(remove_group_member($id)) {
|
||||||
|
jtable_respond(null, 'delete');
|
||||||
|
} else {
|
||||||
|
jtable_respond(null, 'error', "Failed to delete user from group");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
jtable_respond(null, 'error', 'ID not specified');
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
jtable_respond(null, 'error', 'Invalid action');
|
jtable_respond(null, 'error', 'Invalid action');
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -24,7 +24,7 @@ function get_group_info($name) {
|
||||||
|
|
||||||
function get_group_name($id) {
|
function get_group_name($id) {
|
||||||
$db = get_db();
|
$db = get_db();
|
||||||
$q = $db->prepare('SELECT * FROM groups WHERE id = ?');
|
$q = $db->prepare('SELECT name FROM groups WHERE id = ?');
|
||||||
$q->bindValue(1, $id, SQLITE3_INTEGER);
|
$q->bindValue(1, $id, SQLITE3_INTEGER);
|
||||||
$r = $q->execute();
|
$r = $q->execute();
|
||||||
$ret = $r->fetchArray(SQLITE3_NUM);
|
$ret = $r->fetchArray(SQLITE3_NUM);
|
||||||
|
@ -142,12 +142,36 @@ function add_group_member($id,$user) {
|
||||||
$q->bindValue(1, $id, SQLITE3_INTEGER);
|
$q->bindValue(1, $id, SQLITE3_INTEGER);
|
||||||
$q->bindValue(2, $userid, SQLITE3_INTEGER);
|
$q->bindValue(2, $userid, SQLITE3_INTEGER);
|
||||||
$ret = $q->execute();
|
$ret = $q->execute();
|
||||||
$db->close();
|
|
||||||
|
|
||||||
if($ret) {
|
if($ret) {
|
||||||
writelog("Added user $user to group " . get_group_name($id) . ".");
|
writelog("Added user $user to group " . get_group_name($id) . ".");
|
||||||
|
return $db->lastInsertRowID();
|
||||||
} else {
|
} else {
|
||||||
writelog("Failed to add user $user to group " . get_group_name($id) . ".");
|
writelog("Failed to add user $user to group " . get_group_name($id) . ".");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function remove_group_member($id) {
|
||||||
|
$db = get_db();
|
||||||
|
|
||||||
|
$q = $db->prepare('SELECT groups.name,users.emailaddress FROM groupmembers,users,groups WHERE groupmembers.id=? AND groupmembers.user=users.id AND groupmembers."group"=groups.id');
|
||||||
|
$q->bindValue(1, $id, SQLITE3_INTEGER);
|
||||||
|
$r = $q->execute();
|
||||||
|
$ret = $r->fetchArray(SQLITE3_NUM);
|
||||||
|
$group=$ret[0];
|
||||||
|
$user=$ret[1];
|
||||||
|
$q->close();
|
||||||
|
|
||||||
|
$q = $db->prepare('DELETE FROM groupmembers WHERE id=?');
|
||||||
|
$q->bindValue(1, $id, SQLITE3_INTEGER);
|
||||||
|
$ret = $q->execute();
|
||||||
|
$db->close();
|
||||||
|
|
||||||
|
if($ret) {
|
||||||
|
writelog("Removed user $user from group $group.");
|
||||||
|
} else {
|
||||||
|
writelog("Failed to remove user $user from group $group.");
|
||||||
}
|
}
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1069,9 +1069,14 @@ $(document).ready(function () {
|
||||||
$('#Groups').jtable('openChildTable',
|
$('#Groups').jtable('openChildTable',
|
||||||
$img.closest('tr'), {
|
$img.closest('tr'), {
|
||||||
title: 'Members of ' + data.record.name,
|
title: 'Members of ' + data.record.name,
|
||||||
|
messages: {
|
||||||
|
addNewRecord: 'Add group member',
|
||||||
|
deleteConfirmation: 'This user will be removed from the group. Are you sure?'
|
||||||
|
},
|
||||||
actions: {
|
actions: {
|
||||||
listAction: 'groups.php?action=listmembers&groupid=' + data.record.id,
|
listAction: 'groups.php?action=listmembers&groupid=' + data.record.id,
|
||||||
createAction: 'groups.php?action=addmember&groupid=' + data.record.id
|
createAction: 'groups.php?action=addmember&groupid=' + data.record.id,
|
||||||
|
deleteAction: 'groups.php?action=removemember&groupid=' + data.record.id
|
||||||
},
|
},
|
||||||
fields: {
|
fields: {
|
||||||
id: {
|
id: {
|
||||||
|
|
Loading…
Add table
Reference in a new issue