server/settings/ajax/createuser.php
Thomas Müller 05b46f7828 on creation only test for existing users if the backend supports user creation
this solves the issue where no users can be created any more if backends are active which always return true on userExists() like WebDAV Auth
2013-02-08 17:16:18 +01:00

47 lines
1.2 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 {
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(
"username" => $username,
"groups" => implode( ", ", OC_Group::getUserGroups( $username )))));
} catch (Exception $exception) {
OC_JSON::error(array("data" => array( "message" => $exception->getMessage())));
}