summaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
authorJakob Sack <kde@jakobsack.de>2011-04-18 12:39:28 +0200
committerJakob Sack <kde@jakobsack.de>2011-04-18 12:39:28 +0200
commitda30671ec474bfa522d0a0b21d3e457437b9b57b (patch)
tree1776076ec122cb1c60d089d15abf6a674f474012 /admin
parentfe90bf4bdce4eb03722382ecbd054035d6b3c590 (diff)
downloadnextcloud-server-da30671ec474bfa522d0a0b21d3e457437b9b57b.tar.gz
nextcloud-server-da30671ec474bfa522d0a0b21d3e457437b9b57b.zip
More error checking in user management
Diffstat (limited to 'admin')
-rw-r--r--admin/ajax/creategroup.php12
-rw-r--r--admin/ajax/createuser.php8
-rw-r--r--admin/ajax/togglegroups.php12
-rw-r--r--admin/js/users.js32
-rw-r--r--admin/templates/users.php12
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: ?>
+ &nbsp;
+ <?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>