diff options
author | Jakob Sack <kde@jakobsack.de> | 2011-04-18 12:39:28 +0200 |
---|---|---|
committer | Jakob Sack <kde@jakobsack.de> | 2011-04-18 12:39:28 +0200 |
commit | da30671ec474bfa522d0a0b21d3e457437b9b57b (patch) | |
tree | 1776076ec122cb1c60d089d15abf6a674f474012 /admin | |
parent | fe90bf4bdce4eb03722382ecbd054035d6b3c590 (diff) | |
download | nextcloud-server-da30671ec474bfa522d0a0b21d3e457437b9b57b.tar.gz nextcloud-server-da30671ec474bfa522d0a0b21d3e457437b9b57b.zip |
More error checking in user management
Diffstat (limited to 'admin')
-rw-r--r-- | admin/ajax/creategroup.php | 12 | ||||
-rw-r--r-- | admin/ajax/createuser.php | 8 | ||||
-rw-r--r-- | admin/ajax/togglegroups.php | 12 | ||||
-rw-r--r-- | admin/js/users.js | 32 | ||||
-rw-r--r-- | admin/templates/users.php | 12 |
5 files changed, 60 insertions, 16 deletions
diff --git a/admin/ajax/creategroup.php b/admin/ajax/creategroup.php index bfa4099b889..eec27587930 100644 --- a/admin/ajax/creategroup.php +++ b/admin/ajax/creategroup.php @@ -12,11 +12,17 @@ if( !OC_USER::isLoggedIn() || !OC_GROUP::inGroup( $_SESSION['user_id'], 'admin' exit(); } -$name = $_POST["groupname"]; +$groupname = $_POST["groupname"]; + +// Does the group exist? +if( in_array( $groupname, OC_GROUP::getGroups())){ + echo json_encode( array( "status" => "error", "data" => array( "message" => "Group already exists" ))); + exit(); +} // Return Success story -if( OC_GROUP::createGroup( $name )){ - echo json_encode( array( "status" => "success", "data" => array( "groupname" => $name ))); +if( OC_GROUP::createGroup( $groupname )){ + echo json_encode( array( "status" => "success", "data" => array( "groupname" => $groupname ))); } else{ 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 4aa082a25e6..a6e4ec0e93d 100644 --- a/admin/ajax/createuser.php +++ b/admin/ajax/createuser.php @@ -19,12 +19,18 @@ if( isset( $_POST["groups"] )){ $username = $_POST["username"]; $password = $_POST["password"]; +// Does the group exist? +if( in_array( $username, OC_USER::getUsers())){ + echo json_encode( array( "status" => "error", "data" => array( "message" => "User already exists" ))); + exit(); +} + // 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 )))); + echo json_encode( array( "status" => "success", "data" => array( "username" => $username, "groups" => implode( ", ", OC_GROUP::getUserGroups( $username ))))); } else{ echo json_encode( array( "status" => "error", "data" => array( "message" => "Unable to add user" ))); diff --git a/admin/ajax/togglegroups.php b/admin/ajax/togglegroups.php index cd26dbc1440..86834f56ea3 100644 --- a/admin/ajax/togglegroups.php +++ b/admin/ajax/togglegroups.php @@ -13,24 +13,28 @@ if( !OC_USER::isLoggedIn() || !OC_GROUP::inGroup( $_SESSION['user_id'], 'admin' } $success = true; +$error = "add user to"; +$action = "add"; $username = $_POST["username"]; $group = $_POST["group"]; // Toggle group if( OC_GROUP::inGroup( $username, $group )){ - OC_GROUP::removeFromGroup( $username, $group ); + $action = "remove"; + $error = "remove user from"; + $success = OC_GROUP::removeFromGroup( $username, $group ); } else{ - OC_GROUP::addToGroup( $username, $group ); + $success = OC_GROUP::addToGroup( $username, $group ); } // Return Success story if( $success ){ - echo json_encode( array( "status" => "success", "data" => array( "username" => $username ))); + echo json_encode( array( "status" => "success", "data" => array( "username" => $username, "action" => $action, "groupname" => $groupname ))); } else{ - echo json_encode( array( "status" => "error", "data" => array( "message" => "Unable to delete user" ))); + echo json_encode( array( "status" => "error", "data" => array( "message" => "Unable to $error group $group" ))); } ?> diff --git a/admin/js/users.js b/admin/js/users.js index 6a9ae9fc114..a649d641c80 100644 --- a/admin/js/users.js +++ b/admin/js/users.js @@ -31,12 +31,18 @@ $(document).ready(function(){ } } else{ - alert( "something went wrong! sorry!" ); + printError( data.data.message ); } }); return false; } + function printError( message ){ + $("#errormessage").text( message ); + $("#errordialog").dialog( "open" ); + return false; + } + //######################################################################### // Functions for editing the dom after user manipulation //######################################################################### @@ -131,7 +137,7 @@ $(document).ready(function(){ $('#changepassword').hide(); } else{ - alert( "something went wrong! sorry!" ); + printError( data.data.message ); } }); return false; @@ -202,7 +208,8 @@ $(document).ready(function(){ // Show the create user form $( "#createuseroptionbutton" ) .click(function(){ - $( "#createuserform" ).toggle(); + $("#createuserform").show(); + $("#createuseroption").hide(); return false; }); @@ -219,7 +226,7 @@ $(document).ready(function(){ userCreated( data.data.username, data.data.groups ); } else{ - alert( "Bug By Jakob (c)" ); + printError( data.data.message ); } }); return false; @@ -243,7 +250,7 @@ $(document).ready(function(){ groupCreated( data.data.groupname ); } else{ - alert( "something went wrong! sorry!" ); + printError( data.data.message ); } }); return false; @@ -262,6 +269,17 @@ $(document).ready(function(){ //######################################################################### // Removing users + $( "#errordialog" ).dialog({ + autoOpen: false, + modal: true, + buttons: { + OK: function() { + $( this ).dialog( "close" ); + } + } + }); + + // Removing users $( "#removeuserform" ).dialog({ autoOpen: false, height: 300, @@ -275,7 +293,7 @@ $(document).ready(function(){ userRemoved( uid ); } else{ - alert( "Bug By Jakob (c)" ); + printError( data.data.message ); } }); $( this ).dialog( "close" ); @@ -304,7 +322,7 @@ $(document).ready(function(){ groupRemoved( gid ); } else{ - alert( "Bug By Jakob (c)" ); + printError( data.data.message ); } }); $( this ).dialog( "close" ); diff --git a/admin/templates/users.php b/admin/templates/users.php index e769dcd4fc5..235df5bf829 100644 --- a/admin/templates/users.php +++ b/admin/templates/users.php @@ -63,7 +63,13 @@ <?php foreach($_["groups"] as $group): ?> <tr x-gid="<?php echo $group["name"]; ?>"> <td><?php echo $group["name"] ?></td> - <td><a class="removegroupbutton" href="">remove</a></td> + <td> + <?php if( $group["name"] != "admin" ): ?> + <a class="removegroupbutton" href="">remove</a> + <?php else: ?> + + <?php endif; ?> + </td> </tr> <?php endforeach; ?> </tbody> @@ -104,3 +110,7 @@ <input id="removegroupnamefield" type="hidden" name="groupname" value=""> </form> </div> + +<div id="errordialog" title="Error"> + <span id="errormessage"></span> +</div> |