function exec($args, $stdin, &$stdout, &$stderr, &$system) { if (!isAdmin()) { $stderr = ucf(i18n("not enough rights to add user to group")); return true; } if (empty($args)) { $stdout = "Usage: gadduser [group] [username]\n"; $stdout .= "Example: gadduser admins admin"; } else { list($groupname, $username) = explode(" ", $args); $user = new mUser(); $user->setByUsername($username); if ($user->id <= 0) { $stderr = ucf(i18n("no user named"))." $username ".i18n("found"); return true; } $group = new mGroup(); $group->setByName($groupname); if ($group->id <= 0) { $stderr = ucf(i18n("no group named"))." $groupname ".i18n("found"); return true; } $user_groups = $user->getGroups(); if (in_array($groupname, $user_groups)) { $stderr = $username." ".i18n("is already a member of")." $groupname"; return true; } $user->groups .= " $groupname"; $user->save(); $stdout = ucf(i18n("added"))." $username ".i18n("to")." $groupname"; } return true; }
function createUser($name, $username, $password, $email, $groups, $create_home = true) { if (!isAdmin) return ucf(i18n("not enough rights to create new user")); if (empty($name)) return ucf(i18n("a name must be specified")); if (empty($username)) return ucf(i18n("a username must be specified")); $user = new mUser(); $user->setByUsername($username); if ($user->id > 0) return ucf(i18n("a user with that username already exists")); $group = new mGroup(); $group->setByName($username); if ($group->id > 0) $group_id = $group->id; else $group_id = createGroup($username, "This is the group of $name", false); $group = new mGroup($group_id); $groups = $group->name." $groups"; $groups = trim($groups); $user->name = $name; $user->username = $username; $user->password = md5($password); $user->groups = $groups; $user->email = $email; $ret = $user->save(); if ($create_home && getNode("/root/home/users/".$username) <= 0) { $home = new mObject(); $home->setClassName("folder"); $home->loadVars(); $home->name = $username; $home->language = $_SESSION['murrix']['language']; $home->rights = "$username=rc"; $home->setVarValue("description", "This is the home of $name"); if ($home->save()) { $home->setMeta("initial_rights", "$username=rwc"); $home_folder = new mObject(getNode("/root/home/users")); $home->linkWithNode($home_folder->getNodeId()); } else { $message = "Operation unsuccessfull.<br/>"; $message .= "Error output:<br/>"; $message .= $home->getLastError(); return $message; } $user->home_id = $home->getNodeId(); $user->save(); } return $ret; }