More error checking in user management

remotes/origin/stable
Jakob Sack 14 years ago
parent fe90bf4bdc
commit da30671ec4
  1. 12
      admin/ajax/creategroup.php
  2. 8
      admin/ajax/createuser.php
  3. 12
      admin/ajax/togglegroups.php
  4. 32
      admin/js/users.js
  5. 12
      admin/templates/users.php
  6. 14
      lib/group.php
  7. 5
      lib/user.php

@ -12,11 +12,17 @@ if( !OC_USER::isLoggedIn() || !OC_GROUP::inGroup( $_SESSION['user_id'], 'admin'
exit(); 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 // Return Success story
if( OC_GROUP::createGroup( $name )){ if( OC_GROUP::createGroup( $groupname )){
echo json_encode( array( "status" => "success", "data" => array( "groupname" => $name ))); echo json_encode( array( "status" => "success", "data" => array( "groupname" => $groupname )));
} }
else{ else{
echo json_encode( array( "status" => "error", "data" => array( "message" => "Unable to add group" ))); echo json_encode( array( "status" => "error", "data" => array( "message" => "Unable to add group" )));

@ -19,12 +19,18 @@ if( isset( $_POST["groups"] )){
$username = $_POST["username"]; $username = $_POST["username"];
$password = $_POST["password"]; $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 // Return Success story
if( OC_USER::createUser( $username, $password )){ if( OC_USER::createUser( $username, $password )){
foreach( $groups as $i ){ foreach( $groups as $i ){
OC_GROUP::addToGroup( $username, $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{ 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 user" )));

@ -13,24 +13,28 @@ if( !OC_USER::isLoggedIn() || !OC_GROUP::inGroup( $_SESSION['user_id'], 'admin'
} }
$success = true; $success = true;
$error = "add user to";
$action = "add";
$username = $_POST["username"]; $username = $_POST["username"];
$group = $_POST["group"]; $group = $_POST["group"];
// Toggle group // Toggle group
if( OC_GROUP::inGroup( $username, $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{ else{
OC_GROUP::addToGroup( $username, $group ); $success = OC_GROUP::addToGroup( $username, $group );
} }
// Return Success story // Return Success story
if( $success ){ 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{ 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{ else{
alert( "something went wrong! sorry!" ); printError( data.data.message );
} }
}); });
return false; return false;
} }
function printError( message ){
$("#errormessage").text( message );
$("#errordialog").dialog( "open" );
return false;
}
//######################################################################### //#########################################################################
// Functions for editing the dom after user manipulation // Functions for editing the dom after user manipulation
//######################################################################### //#########################################################################
@ -131,7 +137,7 @@ $(document).ready(function(){
$('#changepassword').hide(); $('#changepassword').hide();
} }
else{ else{
alert( "something went wrong! sorry!" ); printError( data.data.message );
} }
}); });
return false; return false;
@ -202,7 +208,8 @@ $(document).ready(function(){
// Show the create user form // Show the create user form
$( "#createuseroptionbutton" ) $( "#createuseroptionbutton" )
.click(function(){ .click(function(){
$( "#createuserform" ).toggle(); $("#createuserform").show();
$("#createuseroption").hide();
return false; return false;
}); });
@ -219,7 +226,7 @@ $(document).ready(function(){
userCreated( data.data.username, data.data.groups ); userCreated( data.data.username, data.data.groups );
} }
else{ else{
alert( "Bug By Jakob (c)" ); printError( data.data.message );
} }
}); });
return false; return false;
@ -243,7 +250,7 @@ $(document).ready(function(){
groupCreated( data.data.groupname ); groupCreated( data.data.groupname );
} }
else{ else{
alert( "something went wrong! sorry!" ); printError( data.data.message );
} }
}); });
return false; return false;
@ -261,6 +268,17 @@ $(document).ready(function(){
// Dialogs // Dialogs
//######################################################################### //#########################################################################
// Removing users
$( "#errordialog" ).dialog({
autoOpen: false,
modal: true,
buttons: {
OK: function() {
$( this ).dialog( "close" );
}
}
});
// Removing users // Removing users
$( "#removeuserform" ).dialog({ $( "#removeuserform" ).dialog({
autoOpen: false, autoOpen: false,
@ -275,7 +293,7 @@ $(document).ready(function(){
userRemoved( uid ); userRemoved( uid );
} }
else{ else{
alert( "Bug By Jakob (c)" ); printError( data.data.message );
} }
}); });
$( this ).dialog( "close" ); $( this ).dialog( "close" );
@ -304,7 +322,7 @@ $(document).ready(function(){
groupRemoved( gid ); groupRemoved( gid );
} }
else{ else{
alert( "Bug By Jakob (c)" ); printError( data.data.message );
} }
}); });
$( this ).dialog( "close" ); $( this ).dialog( "close" );

@ -63,7 +63,13 @@
<?php foreach($_["groups"] as $group): ?> <?php foreach($_["groups"] as $group): ?>
<tr x-gid="<?php echo $group["name"]; ?>"> <tr x-gid="<?php echo $group["name"]; ?>">
<td><?php echo $group["name"] ?></td> <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> </tr>
<?php endforeach; ?> <?php endforeach; ?>
</tbody> </tbody>
@ -104,3 +110,7 @@
<input id="removegroupnamefield" type="hidden" name="groupname" value=""> <input id="removegroupnamefield" type="hidden" name="groupname" value="">
</form> </form>
</div> </div>
<div id="errordialog" title="Error">
<span id="errormessage"></span>
</div>

@ -108,6 +108,10 @@ class OC_GROUP {
if( !$gid ){ if( !$gid ){
return false; return false;
} }
// No duplicate group names
if( in_array( $gid, self::getGroups())){
return false;
}
$run = true; $run = true;
OC_HOOK::emit( "OC_GROUP", "pre_createGroup", array( "run" => &$run, "gid" => $gid )); 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. * Adds a user to a group.
*/ */
public static function addToGroup( $uid, $gid ){ 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; $run = true;
OC_HOOK::emit( "OC_GROUP", "pre_addToGroup", array( "run" => &$run, "uid" => $uid, "gid" => $gid )); OC_HOOK::emit( "OC_GROUP", "pre_addToGroup", array( "run" => &$run, "uid" => $uid, "gid" => $gid ));

@ -118,6 +118,11 @@ class OC_USER {
if( !$uid ){ if( !$uid ){
return false; return false;
} }
// Check if user already exists
if( in_array( $uid, self::getUsers())){
return false;
}
$run = true; $run = true;
OC_HOOK::emit( "OC_USER", "pre_createUser", array( "run" => &$run, "uid" => $uid, "password" => $password )); OC_HOOK::emit( "OC_USER", "pre_createUser", array( "run" => &$run, "uid" => $uid, "password" => $password ));

Loading…
Cancel
Save