working on permissions
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
function addPermission(userEmail,permission){
|
||||
if (confirm("Really give permission to "+userEmail+"?")){
|
||||
$.post('/api/user/addpermission',{email:userEmail,permissions:permission},reload,'json');
|
||||
}
|
||||
}
|
||||
|
||||
function disableList(listEmail){
|
||||
$.post('/api/list/disable',{list:listEmail},showListResult,'json');
|
||||
}
|
||||
@@ -6,6 +12,13 @@ function dropList(listEmail){
|
||||
console.log('dopList('+listEmail+')');
|
||||
}
|
||||
|
||||
function dropPermission(userEmail,permission){
|
||||
if (confirm("Really withdraw permission from "+userEmail+"?")){
|
||||
$.post('/api/user/droppermission',{email:userEmail,permissions:permission},reload,'json');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function enableList(listEmail){
|
||||
$.post('/api/list/enable',{list:listEmail},showListResult,'json');
|
||||
}
|
||||
@@ -55,7 +68,7 @@ function showListOfEditableLists(data){
|
||||
let select = $('<select/>',{name:addr}).change(function () {
|
||||
let action = $(this).children("option:selected").val();
|
||||
let list = $(this).attr('name');
|
||||
if (confirm("This will "+action+" '"+list+"'. Are you sure?"))self[action+'List'](list);
|
||||
if (confirm("This will "+action+" '"+list+"'. Are you sure?")) self[action+'List'](list);
|
||||
});
|
||||
$('<option/>').text('Actions').appendTo(select);
|
||||
['enable','disable','drop','hide','show','test'].forEach(val => $('<option/>',{value:val}).text(val).appendTo(select));
|
||||
@@ -70,7 +83,6 @@ function showListOfEditableLists(data){
|
||||
$('<td/>').text(list.smtp_user).appendTo(row);
|
||||
row.appendTo('#listlist');
|
||||
}
|
||||
console.log(data.user);
|
||||
if (data.user.permissions.includes('create lists')){
|
||||
$('a[href=add_list]').show();
|
||||
} else {
|
||||
@@ -97,7 +109,6 @@ function showListList(data){
|
||||
}
|
||||
|
||||
function showListResult(result){
|
||||
console.log(result);
|
||||
if ('error' in result){
|
||||
alert(result.error);
|
||||
return;
|
||||
@@ -123,6 +134,7 @@ function showMembers(data){
|
||||
}
|
||||
|
||||
function showUserList(data){
|
||||
let isAdmin = data.user.permissions.includes('admin');
|
||||
for (let i in data.users){
|
||||
let user = data.users[i];
|
||||
let row = $('<tr/>');
|
||||
@@ -130,9 +142,23 @@ function showUserList(data){
|
||||
$('<td/>').text(user.email).appendTo(row);
|
||||
$('<td/>').text(user.password).appendTo(row);
|
||||
$('<td/>').text(user.permissions).appendTo(row);
|
||||
let permissions = $('<span/>');
|
||||
if (isAdmin){
|
||||
if (user.permissions.includes('admin')){
|
||||
$('<button/>').text("- admin").click(() => dropPermission(user.email,1)).appendTo(permissions);
|
||||
} else {
|
||||
$('<button/>').text("+ admin").click(() => addPermission(user.email,1)).appendTo(permissions);
|
||||
}
|
||||
if (user.permissions.includes('create lists')){
|
||||
$('<button/>').text("- create lists").click(() => dropPermission(user.email,2)).appendTo(permissions);
|
||||
} else {
|
||||
$('<button/>').text("+ create lists").click(() => addPermission(user.email,2)).appendTo(permissions);
|
||||
}
|
||||
}
|
||||
permissions.appendTo(row);
|
||||
row.appendTo('#userlist');
|
||||
}
|
||||
if (data.user.permissions.includes('admin')){
|
||||
if (isAdmin){
|
||||
$('a[href=register]').show();
|
||||
} else {
|
||||
$('a[href=register]').hide();
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
<th>Email</th>
|
||||
<th>Password</th>
|
||||
<th>Permissions</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
</table>
|
||||
<a href="register">Register new user</a>
|
||||
|
||||
Reference in New Issue
Block a user