diff options
author | Jakob Sack <kde@jakobsack.de> | 2011-04-17 01:04:23 +0200 |
---|---|---|
committer | Jakob Sack <kde@jakobsack.de> | 2011-04-17 01:04:23 +0200 |
commit | c4287162c4fb16e5b85a103aabbbbe7a7eebe4c7 (patch) | |
tree | 40ce06b0efc339956b7f5c117e87827cd094ce10 /admin | |
parent | b129079bed8ebd1b5051dabe15eccdc17bf4b403 (diff) | |
download | nextcloud-server-c4287162c4fb16e5b85a103aabbbbe7a7eebe4c7.tar.gz nextcloud-server-c4287162c4fb16e5b85a103aabbbbe7a7eebe4c7.zip |
Some work on the fancy user management
Diffstat (limited to 'admin')
-rw-r--r-- | admin/ajax/creategroup.php | 17 | ||||
-rw-r--r-- | admin/ajax/createuser.php | 7 | ||||
-rw-r--r-- | admin/ajax/removegroup.php | 25 | ||||
-rw-r--r-- | admin/ajax/removeuser.php | 25 | ||||
-rw-r--r-- | admin/js/users.js | 57 | ||||
-rw-r--r-- | admin/templates/users.php | 21 |
6 files changed, 114 insertions, 38 deletions
diff --git a/admin/ajax/creategroup.php b/admin/ajax/creategroup.php index ab99d2a5bee..bfa4099b889 100644 --- a/admin/ajax/creategroup.php +++ b/admin/ajax/creategroup.php @@ -12,23 +12,14 @@ if( !OC_USER::isLoggedIn() || !OC_GROUP::inGroup( $_SESSION['user_id'], 'admin' exit(); } -$groups = array(); -if( isset( $_POST["groups"] )){ - $groups = $_POST["groups"]; -} -$username = $_POST["username"]; -$password = $_POST["password"]; - -foreach( $groups as $i ){ - OC_GROUP::addToGroup( $username, $i ); -} +$name = $_POST["groupname"]; // Return Success story -if( OC_USER::createUser( $username, $password )){ - echo json_encode( array( "status" => "success", "data" => array( "username" => $username, "groups" => implode( ", ", $groups )))); +if( OC_GROUP::createGroup( $name )){ + echo json_encode( array( "status" => "success", "data" => array( "groupname" => $name ))); } else{ - echo json_encode( array( "status" => "error", "data" => array( "message" => "Unable to add user" ))); + echo json_encode( array( "status" => "error", "data" => array( "message" => "Unable to add group" ))); } ?> diff --git a/admin/ajax/createuser.php b/admin/ajax/createuser.php index ab99d2a5bee..4aa082a25e6 100644 --- a/admin/ajax/createuser.php +++ b/admin/ajax/createuser.php @@ -19,12 +19,11 @@ if( isset( $_POST["groups"] )){ $username = $_POST["username"]; $password = $_POST["password"]; -foreach( $groups as $i ){ - OC_GROUP::addToGroup( $username, $i ); -} - // Return Success story if( OC_USER::createUser( $username, $password )){ + foreach( $groups as $i ){ + OC_GROUP::addToGroup( $username, $i ); + } echo json_encode( array( "status" => "success", "data" => array( "username" => $username, "groups" => implode( ", ", $groups )))); } else{ diff --git a/admin/ajax/removegroup.php b/admin/ajax/removegroup.php new file mode 100644 index 00000000000..c7991ba5819 --- /dev/null +++ b/admin/ajax/removegroup.php @@ -0,0 +1,25 @@ +<?php + +// Init owncloud +require_once('../../lib/base.php'); + +// We send json data +header( "Content-Type: application/jsonrequest" ); + +// Check if we are a user +if( !OC_USER::isLoggedIn() || !OC_GROUP::inGroup( $_SESSION['user_id'], 'admin' )){ + echo json_encode( array( "status" => "error", "data" => array( "message" => "Authentication error" ))); + exit(); +} + +$name = $_POST["groupname"]; + +// Return Success story +if( OC_GROUP::deleteGroup( $name )){ + echo json_encode( array( "status" => "success", "data" => array( "groupname" => $name ))); +} +else{ + echo json_encode( array( "status" => "error", "data" => array( "message" => "Unable to delete group" ))); +} + +?> diff --git a/admin/ajax/removeuser.php b/admin/ajax/removeuser.php new file mode 100644 index 00000000000..12a27fff58d --- /dev/null +++ b/admin/ajax/removeuser.php @@ -0,0 +1,25 @@ +<?php + +// Init owncloud +require_once('../../lib/base.php'); + +// We send json data +header( "Content-Type: application/jsonrequest" ); + +// Check if we are a user +if( !OC_USER::isLoggedIn() || !OC_GROUP::inGroup( $_SESSION['user_id'], 'admin' )){ + echo json_encode( array( "status" => "error", "data" => array( "message" => "Authentication error" ))); + exit(); +} + +$name = $_POST["username"]; + +// Return Success story +if( OC_USER::deleteUser( $name )){ + echo json_encode( array( "status" => "success", "data" => array( "username" => $name ))); +} +else{ + echo json_encode( array( "status" => "error", "data" => array( "message" => "Unable to delete user" ))); +} + +?> diff --git a/admin/js/users.js b/admin/js/users.js index 0713cf8e5dc..7cd1ed6f624 100644 --- a/admin/js/users.js +++ b/admin/js/users.js @@ -12,10 +12,15 @@ $(document).ready(function(){ "Create an account": function() { var post = $( "#createuserdata" ).serialize(); $.post( 'ajax/createuser.php', post, function(data){ - var newrow = '<tr><td>' + data.data.username + '</td>'; - newrow = newrow + '<td>' + data.data.groups + '</td>'; - newrow = newrow + '<td><a href="" class="edituser-button">edit</a> | <a class="removeuser-button" href="">remove</a></td></tr>'; - $("#userstable").append( newrow ); + if( data.status == "success" ){ + var newrow = '<tr><td>' + data.data.username + '</td>'; + newrow = newrow + '<td>' + data.data.groups + '</td>'; + newrow = newrow + '<td><a href="" class="edituser-button">edit</a> | <a class="removeuser-button" href="">remove</a></td></tr>'; + $("#userstable").append( newrow ); + } + else{ + alert( "Bug By Jakob (c)" ); + } }); $( this ).dialog( "close" ); }, @@ -61,7 +66,7 @@ $(document).ready(function(){ return false; }); - // Dialog for adding users + // Removing users $( "#removeuser-form" ).dialog({ autoOpen: false, height: 300, @@ -69,6 +74,15 @@ $(document).ready(function(){ modal: true, buttons: { "Remove user": function() { + var post = $( "#removeuserdata" ).serialize(); + $.post( 'ajax/removeuser.php', post, function(data){ + if( data.status == "success" ){ + $( "a[x-uid='"+uid+"']" ).parent().remove(); + } + else{ + alert( "Bug By Jakob (c)" ); + } + }); $( this ).dialog( "close" ); }, Cancel: function() { @@ -76,7 +90,7 @@ $(document).ready(function(){ } }, close: function() { - allFields.val( "" ).removeClass( "ui-state-error" ); + true; } }); @@ -84,10 +98,28 @@ $(document).ready(function(){ .click(function() { uid = $( this ).parent().attr( 'x-uid' ); $("#deleteuserusername").html(uid); + $("#deleteusernamefield").val(uid); $( "#removeuser-form" ).dialog( "open" ); return false; }); + // Add a group + $( "#creategroupbutton" ) + .click(function(){ + var post = $( "#creategroupdata" ).serialize(); + $.post( 'ajax/creategroup.php', post, function(data){ + if( data.status == "success" ){ + var newrow = '<tr><td>' + data.data.groupname + '</td>'; + newrow = newrow + '<td><a class="removegroup-button" href="">remove</a></td></tr>'; + $("#groupstable").append( newrow ); + } + else{ + alert( "something went wrong! sorry!" ); + } + }); + return false; + }); + // Dialog for adding users $( "#removegroup-form" ).dialog({ autoOpen: false, @@ -96,9 +128,14 @@ $(document).ready(function(){ modal: true, buttons: { "Remove group": function(){ - var post = $( "#deletegroupdata" ).serialize(); - $.post( 'ajax/deletegroup.php', post, function(data){ - $( "a[x-gid='"+gid+"']" ).parent().remove(); + var post = $( "#removegroupdata" ).serialize(); + $.post( 'ajax/removegroup.php', post, function(data){ + if( data.status == "success" ){ + $( "a[x-gid='"+gid+"']" ).parent().remove(); + } + else{ + alert( "Bug By Jakob (c)" ); + } }); $( this ).dialog( "close" ); }, @@ -107,7 +144,7 @@ $(document).ready(function(){ } }, close: function(){ - allFields.val( "" ).removeClass( "ui-state-error" ); + true; } }); diff --git a/admin/templates/users.php b/admin/templates/users.php index ce78ffac775..b2172b05399 100644 --- a/admin/templates/users.php +++ b/admin/templates/users.php @@ -28,7 +28,7 @@ <a id="adduser-button" href="">New user</a> <h2>Groups</h2> -<form> +<form id="creategroupdata"> <table id="groupstable"> <thead> <tr> @@ -36,6 +36,12 @@ <th></th> </tr> </thead> + <tfoot> + <tr> + <td><input type="text" name="groupname" id="creategroupname" /></td> + <td><button id="creategroupbutton">Create group</button></td> + </tr> + </tfoot> <tbody> <?php foreach($_["groups"] as $group): ?> <tr> @@ -43,17 +49,10 @@ <td x-gid="<?php echo $group["name"]; ?>"><a class="removegroup-button" href="">remove</a></td> </tr> <?php endforeach; ?> - <tr> - <td><input type="text" name="name" /></td> - <td><input type="submit" /></td> - </tr> </tbody> </table> </form> -<a id="addgroup-button" href="">Add group</a> - - <div id="adduser-form" title="Add user"> <form id="createuserdata"> <fieldset> @@ -82,13 +81,13 @@ <div id="removeuser-form" title="Remove user"> <form id="removeuserdata"> Do you really want to delete user <span id="deleteuserusername">$user</span>? - <input type="hidden" name="username" value=""> + <input id="deleteusernamefield" type="hidden" name="username" value=""> </form> </div> <div id="removegroup-form" title="Remove Group"> - <form id="removeuserdata"> + <form id="removegroupdata"> Do you really want to delete group <span id="deletegroupgroupname">$group</span>? - <input id="deletegroupnamefield" type="hidden" name="username" value=""> + <input id="deletegroupnamefield" type="hidden" name="groupname" value=""> </form> </div> |