mirror of
https://github.com/nextcloud/server.git
synced 2026-04-22 14:50:17 -04:00
More error checking in user management
This commit is contained in:
parent
fe90bf4bdc
commit
da30671ec4
7 changed files with 79 additions and 16 deletions
|
|
@ -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" )));
|
||||
|
|
|
|||
|
|
@ -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" )));
|
||||
|
|
|
|||
|
|
@ -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" )));
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -261,6 +268,17 @@ $(document).ready(function(){
|
|||
// Dialogs
|
||||
//#########################################################################
|
||||
|
||||
// Removing users
|
||||
$( "#errordialog" ).dialog({
|
||||
autoOpen: false,
|
||||
modal: true,
|
||||
buttons: {
|
||||
OK: function() {
|
||||
$( this ).dialog( "close" );
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Removing users
|
||||
$( "#removeuserform" ).dialog({
|
||||
autoOpen: false,
|
||||
|
|
@ -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" );
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -108,6 +108,10 @@ class OC_GROUP {
|
|||
if( !$gid ){
|
||||
return false;
|
||||
}
|
||||
// No duplicate group names
|
||||
if( in_array( $gid, self::getGroups())){
|
||||
return false;
|
||||
}
|
||||
|
||||
$run = true;
|
||||
OC_HOOK::emit( "OC_GROUP", "pre_createGroup", array( "run" => &$run, "gid" => $gid ));
|
||||
|
|
@ -167,6 +171,16 @@ class OC_GROUP {
|
|||
* Adds a user to a group.
|
||||
*/
|
||||
public static function addToGroup( $uid, $gid ){
|
||||
// Does the user exist?
|
||||
if( !in_array( $uid, OC_USER::getUsers())){
|
||||
return false;
|
||||
}
|
||||
// Does the group exist?
|
||||
if( !in_array( $gid, self::getGroups())){
|
||||
return false;
|
||||
}
|
||||
|
||||
// Go go go
|
||||
$run = true;
|
||||
OC_HOOK::emit( "OC_GROUP", "pre_addToGroup", array( "run" => &$run, "uid" => $uid, "gid" => $gid ));
|
||||
|
||||
|
|
|
|||
|
|
@ -118,6 +118,11 @@ class OC_USER {
|
|||
if( !$uid ){
|
||||
return false;
|
||||
}
|
||||
// Check if user already exists
|
||||
if( in_array( $uid, self::getUsers())){
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$run = true;
|
||||
OC_HOOK::emit( "OC_USER", "pre_createUser", array( "run" => &$run, "uid" => $uid, "password" => $password ));
|
||||
|
|
|
|||
Loading…
Reference in a new issue