From 85209a0a001081c4b82007aea06807922754a059 Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Wed, 14 Nov 2012 21:23:27 +0100 Subject: [PATCH 1/5] Cleanup user settings js --- settings/js/users.js | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/settings/js/users.js b/settings/js/users.js index 249d529df4f..cad3667c50e 100644 --- a/settings/js/users.js +++ b/settings/js/users.js @@ -29,7 +29,6 @@ var UserList={ $('#notification').html(t('users', 'deleted')+' '+uid+''+t('users', 'undo')+''); $('#notification').data('deleteuser',true); $('#notification').fadeIn(); - }, /** @@ -57,7 +56,6 @@ var UserList={ $('#notification').fadeOut(); $('tr').filterAttr('data-uid', UserList.deleteUid).remove(); UserList.deleteCanceled = true; - UserList.deleteFiles = null; if (ready) { ready(); } @@ -401,13 +399,8 @@ $(document).ready(function(){ $('#notification').hide(); $('#notification .undo').live('click', function() { if($('#notification').data('deleteuser')) { - $('tbody tr').each(function(index, row) { - if ($(row).data('uid') == UserList.deleteUid) { - $(row).show(); - } - }); + $('tbody tr').filterAttr('data-uid', UserList.deleteUid).show(); UserList.deleteCanceled=true; - UserList.deleteFiles=null; } $('#notification').fadeOut(); }); From 4eff27ed421205d6627e96203e03516666125b70 Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Wed, 14 Nov 2012 21:28:23 +0100 Subject: [PATCH 2/5] Always have the username as string in user admin --- settings/js/users.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/settings/js/users.js b/settings/js/users.js index cad3667c50e..91be1a44385 100644 --- a/settings/js/users.js +++ b/settings/js/users.js @@ -67,7 +67,7 @@ var UserList={ add:function(username, groups, subadmin, quota, sort) { var tr = $('tbody tr').first().clone(); - tr.data('uid', username); + tr.attr('data-uid', username); tr.find('td.name').text(username); var groupsSelect = $(''); img.css('display','none'); img.parent().children('span').replaceWith(input); @@ -304,7 +304,7 @@ $(document).ready(function(){ $('select.quota, select.quota-user').live('change',function(){ var select=$(this); - var uid=$(this).parent().parent().parent().data('uid'); + var uid=$(this).parent().parent().parent().attr('data-uid'); var quota=$(this).val(); var other=$(this).next(); if(quota!='other'){ @@ -322,7 +322,7 @@ $(document).ready(function(){ }) $('input.quota-other').live('change',function(){ - var uid=$(this).parent().parent().parent().data('uid'); + var uid=$(this).parent().parent().parent().attr('data-uid'); var quota=$(this).val(); var select=$(this).prev(); var other=$(this); From 59627367ae4ba41c84f14e55ef4fe57c2924b7ab Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Wed, 14 Nov 2012 21:44:44 +0100 Subject: [PATCH 3/5] Better check and handling of user creation --- lib/user.php | 2 +- settings/ajax/createuser.php | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/user.php b/lib/user.php index 801ab7f608d..872fff9b2d9 100644 --- a/lib/user.php +++ b/lib/user.php @@ -182,7 +182,7 @@ class OC_User { $backend->createUser($uid, $password); OC_Hook::emit( "OC_User", "post_createUser", array( "uid" => $uid, "password" => $password )); - return true; + return self::userExists($uid); } } return false; diff --git a/settings/ajax/createuser.php b/settings/ajax/createuser.php index 16b48c8a9ca..addae78517a 100644 --- a/settings/ajax/createuser.php +++ b/settings/ajax/createuser.php @@ -29,14 +29,17 @@ $username = $_POST["username"]; $password = $_POST["password"]; // Does the group exist? -if( in_array( $username, OC_User::getUsers())) { +if(OC_User::userExists($username)) { OC_JSON::error(array("data" => array( "message" => "User already exists" ))); exit(); } // Return Success story try { - OC_User::createUser($username, $password); + if (!OC_User::createUser($username, $password)) { + OC_JSON::error(array('data' => array( 'message' => 'User creation failed for '.$username ))); + exit(); + } foreach( $groups as $i ) { if(!OC_Group::groupExists($i)) { OC_Group::createGroup($i); From 343e9d86213edb832455338816527e9cbab0d6e0 Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Wed, 14 Nov 2012 21:45:03 +0100 Subject: [PATCH 4/5] Better check and handing of user deletion --- lib/user.php | 2 +- settings/js/users.js | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/user.php b/lib/user.php index 872fff9b2d9..a60ebbe4423 100644 --- a/lib/user.php +++ b/lib/user.php @@ -216,7 +216,7 @@ class OC_User { // Emit and exit OC_Hook::emit( "OC_User", "post_deleteUser", array( "uid" => $uid )); - return true; + return !self::userExists($uid); } else{ return false; diff --git a/settings/js/users.js b/settings/js/users.js index 91be1a44385..517984f9247 100644 --- a/settings/js/users.js +++ b/settings/js/users.js @@ -59,6 +59,8 @@ var UserList={ if (ready) { ready(); } + } else { + oc.dialogs.alert(result.data.message, t('settings', 'Unable to remove user')); } } }); From 9419913c06bc0fc7795243d9a9f8800f5e2a7ac4 Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Thu, 15 Nov 2012 18:10:40 +0100 Subject: [PATCH 5/5] Better place to check for user removal --- lib/user.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/user.php b/lib/user.php index a60ebbe4423..31c93740d77 100644 --- a/lib/user.php +++ b/lib/user.php @@ -204,6 +204,9 @@ class OC_User { foreach(self::$_usedBackends as $backend) { $backend->deleteUser($uid); } + if (self::userExists($uid)) { + return false; + } // We have to delete the user from all groups foreach( OC_Group::getUserGroups( $uid ) as $i ) { OC_Group::removeFromGroup( $uid, $i ); @@ -216,7 +219,7 @@ class OC_User { // Emit and exit OC_Hook::emit( "OC_User", "post_deleteUser", array( "uid" => $uid )); - return !self::userExists($uid); + return true; } else{ return false;