server/settings/ajax/createuser.php
Vincent Petry 1ee4b680f6 Fixed user dir existence check when creating new user
The check was done too later. It turns out that createUser() had already
created the dir, which caused the warning message to be shown every
time.
2013-10-25 16:23:29 +02:00

54 lines
1.4 KiB
PHP

<?php
OCP\JSON::callCheck();
OC_JSON::checkSubAdminUser();
if(OC_User::isAdminUser(OC_User::getUser())) {
$groups = array();
if( isset( $_POST["groups"] )) {
$groups = $_POST["groups"];
}
}else{
if(isset( $_POST["groups"] )) {
$groups = array();
foreach($_POST["groups"] as $group) {
if(OC_SubAdmin::isGroupAccessible(OC_User::getUser(), $group)) {
$groups[] = $group;
}
}
if(count($groups) === 0) {
$groups = OC_SubAdmin::getSubAdminsGroups(OC_User::getUser());
}
}else{
$groups = OC_SubAdmin::getSubAdminsGroups(OC_User::getUser());
}
}
$username = $_POST["username"];
$password = $_POST["password"];
// Return Success story
try {
// check whether the user's files home exists
$userDirectory = OC_User::getHome($username) . '/files/';
$homeExists = file_exists($userDirectory);
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);
}
OC_Group::addToGroup( $username, $i );
}
OC_JSON::success(array("data" =>
array(
// returns whether the home already existed
"homeExists" => $homeExists,
"username" => $username,
"groups" => OC_Group::getUserGroups( $username ))));
} catch (Exception $exception) {
OC_JSON::error(array("data" => array( "message" => $exception->getMessage())));
}