22 include_once ("FDL/Class.Doc.php");
24 $usage = "usage --login=<user login> --password=<user password>";
26 $dbaccess = $action->GetParam("FREEDOM_DB");
27 $coreaccess = $action->GetParam("CORE_DB");
29 if ($dbaccess == "") {
30 print "Database not found : param FREEDOM_DB";
34 $user = $action->getArgument("login"); // special docid
35 $password = $action->getArgument("password"); // number of childs
36 if (empty($user)) $action->exitError("login needed :\n $usage");
37 if (empty($password)) $action->exitError("password needed :\n $usage");
39 $u = new User($coreaccess);
40 $u->setLogin($user, 0);
43 $du = createDoc($dbaccess, "IUSER");
45 $du->setValue("us_login", $user);
46 $du->setValue("us_lname", $user);
47 $du->setValue("us_fname", "");
48 $du->setValue("us_passwd1", $password);
49 $du->setValue("us_passwd2", $password);
50 $du->setValue("us_iddomain", "0");
53 $err = $du->postModify();
57 printf(_("new user # %d") , $du->getValue("us_whatid")); // affichage de l'identifiant système
58 $g = new_Doc($dbaccess, "GDEFAULT");
60 $err = $g->addFile($du->initid);
65 if ($err) print "\nerreur:$err\n";
66 $uid = $du->getValue("us_whatid");
70 $pname = strtoupper($user . "PROFIL");
71 $pdoc = new_doc($dbaccess, $pname);
73 if (!$pdoc->isAffected()) {
74 $pdoc = createDoc($dbaccess, "PDIR");
76 $pdoc->setValue("ba_title", "profil de " . $user);
77 $pdoc->setValue("prf_desc", "profil de " . $user);
78 $pdoc->name = strtoupper($pname); // on donne un nom logique pour le retrouver après
82 $pdoc->setControl(false); // activ profil
83 printf(_("new profil %d") , $pdoc->id);
85 $perm = new DocPerm($dbaccess);
86 $perm->docid = $pdoc->id;
88 $perm->upacl = - 2 & (~(1 << 2)); // all privileges except read => read only
91 // add all privileges to user
94 // reset all profil big security
95 $err = simpleQuery($dbaccess, sprintf("update doc set profid=%d,dprofid=0", $pdoc->id) , $res);
96 $err.= simpleQuery($dbaccess, sprintf("INSERT INTO permission (id_user, id_application, id_acl) SELECT users.id as uid, id_application as appid,acl.id as aclid from acl, users where users.id=%d", $uid));
100 if ($err) print "\nerreur:$err\n";