Platform  3.1
PHP API documentation
 All Data Structures Namespaces Files Functions Variables Pages
fdl_resetprofiling.php
Go to the documentation of this file.
1 <?php
2 /*
3  * @author Anakeen
4  * @license http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ Anakeen - licence CC
5  * @package FDL
6 */
7 /**
8  * reset profiling use when restore context from archive
9  * all document has the same profil
10  *
11  * @author Anakeen 2010
12  * @version $Id: $
13  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
14  * @package FDL
15  *
16  *
17  * @global login Http var : login
18  * @global password Http var : password
19  /**
20  */
21 
22 include_once ("FDL/Class.Doc.php");
23 
24 $usage = "usage --login=<user login> --password=<user password>";
25 
26 $dbaccess = $action->GetParam("FREEDOM_DB");
27 $coreaccess = $action->GetParam("CORE_DB");
28 
29 if ($dbaccess == "") {
30  print "Database not found : param FREEDOM_DB";
31  exit;
32 }
33 
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");
38 
39 $u = new User($coreaccess);
40 $u->setLogin($user, 0);
41 $uid = $u->id;
42 if (!$uid) {
43  $du = createDoc($dbaccess, "IUSER");
44  if ($du) {
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");
51  $err = $du->Add();
52  if ($err == "") {
53  $err = $du->postModify();
54  if ($err == "") {
55  $err = $du->modify();
56  if ($err == "") {
57  printf(_("new user # %d") , $du->getValue("us_whatid")); // affichage de l'identifiant système
58  $g = new_Doc($dbaccess, "GDEFAULT");
59  if ($g) {
60  $err = $g->addFile($du->initid);
61  }
62  }
63  }
64  }
65  if ($err) print "\nerreur:$err\n";
66  $uid = $du->getValue("us_whatid");
67  }
68 }
69 if ($uid > 0) {
70  $pname = strtoupper($user . "PROFIL");
71  $pdoc = new_doc($dbaccess, $pname);
72 
73  if (!$pdoc->isAffected()) {
74  $pdoc = createDoc($dbaccess, "PDIR");
75  if ($pdoc) {
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
79  $err = $pdoc->Add();
80  if ($err == "") {
81  // ajout d'ACLs
82  $pdoc->setControl(false); // activ profil
83  printf(_("new profil %d") , $pdoc->id);
84 
85  $perm = new DocPerm($dbaccess);
86  $perm->docid = $pdoc->id;
87  $perm->userid = $uid;
88  $perm->upacl = - 2 & (~(1 << 2)); // all privileges except read => read only
89  $perm->unacl = 0;
90  $perm->cacl = 0;
91  // add all privileges to user
92  $err = $perm->Add();
93  if ($err == "") {
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));
97  }
98  }
99  }
100  if ($err) print "\nerreur:$err\n";
101  }
102 }
103 ?>
← centre documentaire © anakeen - published under CC License - Dynacase