Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
dolibarr
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Container Registry
Model registry
Analyze
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Software_Artifact_Infrastructure_Repository
dolibarr
Commits
8554f09f
Commit
8554f09f
authored
20 years ago
by
Laurent Destailleur
Browse files
Options
Downloads
Patches
Plain Diff
New: Ajout possibilité de mettre des permissions sur les groupes
New: Ajout clés d'intégrité sur les groupes et users.
parent
09c80214
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
htdocs/user.class.php
+231
-238
231 additions, 238 deletions
htdocs/user.class.php
htdocs/usergroup.class.php
+246
-47
246 additions, 47 deletions
htdocs/usergroup.class.php
with
477 additions
and
285 deletions
htdocs/user.class.php
+
231
−
238
View file @
8554f09f
...
...
@@ -84,165 +84,228 @@ class User
return
1
;
}
/**
* \brief
Ajoute un droit a l'utilisateur
* \param
rid id du droit ajoute
r
* \brief
Charge un objet user avec toutes ces caractristiques depuis un id ou login
* \param
login login a charg
er
*/
function
addrights
(
$rid
)
function
fetch
(
$login
=
''
)
{
if
(
strlen
(
$rid
)
==
2
)
{
$topid
=
substr
(
$rid
,
0
,
1
);
$lowid
=
substr
(
$rid
,
1
,
1
);
}
if
(
strlen
(
$rid
)
==
3
)
$sql
=
"SELECT u.rowid, u.name, u.firstname, u.email, u.code, u.admin, u.login, u.pass, u.webcal_login, u.note"
;
$sql
.
=
", "
.
$this
->
db
->
pdate
(
"u.datec"
)
.
" datec, "
.
$this
->
db
->
pdate
(
"u.tms"
)
.
" datem"
;
$sql
.
=
" FROM "
.
MAIN_DB_PREFIX
.
"user as u"
;
if
(
$this
->
id
)
{
$topid
=
substr
(
$rid
,
0
,
2
);
$lowid
=
substr
(
$rid
,
2
,
1
);
$sql
.
=
" WHERE u.rowid =
$this->id
"
;
}
if
(
$lowid
==
1
)
else
{
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"user_rights WHERE fk_user =
$this->id
AND fk_id=
$rid
"
;
$this
->
db
->
query
(
$sql
);
$sql
=
"INSERT INTO "
.
MAIN_DB_PREFIX
.
"user_rights (fk_user, fk_id) VALUES (
$this->id
,
$rid
)"
;
//$sql = "UPDATE ".MAIN_DB_PREFIX."user_rights SET fk_user = $this->id fk_id = $rid";
if
(
$this
->
db
->
query
(
$sql
))
{
}
$sql
.
=
" WHERE u.login = '
$login
'"
;
}
if
(
$lowid
>
1
)
{
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"user_rights WHERE fk_user =
$this->id
AND fk_id=
$rid
"
;
$this
->
db
->
query
(
$sql
);
$sql
=
"INSERT INTO "
.
MAIN_DB_PREFIX
.
"user_rights (fk_user, fk_id) VALUES (
$this->id
,
$rid
)"
;
$result
=
$this
->
db
->
query
(
$sql
);
//$sql = "UPDATE ".MAIN_DB_PREFIX."user_rights SET fk_user = $this->id fk_id = $rid";
if
(
$this
->
db
->
query
(
$sql
))
if
(
$result
)
{
if
(
$this
->
db
->
num_rows
(
$result
))
{
}
$nid
=
$topid
.
"1"
;
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"user_rights WHERE fk_user =
$this->id
AND fk_id=
$nid
"
;
$this
->
db
->
query
(
$sql
);
$obj
=
$this
->
db
->
fetch_object
(
$result
);
$this
->
id
=
$obj
->
rowid
;
$this
->
nom
=
stripslashes
(
$obj
->
name
);
$this
->
prenom
=
stripslashes
(
$obj
->
firstname
);
$this
->
fullname
=
$this
->
prenom
.
' '
.
$this
->
nom
;
$this
->
code
=
$obj
->
code
;
$this
->
login
=
$obj
->
login
;
$this
->
pass
=
$obj
->
pass
;
$this
->
email
=
$obj
->
email
;
$this
->
admin
=
$obj
->
admin
;
$this
->
contact_id
=
$obj
->
fk_socpeople
;
$this
->
note
=
stripslashes
(
$obj
->
note
);
$this
->
datec
=
$obj
->
datec
;
$this
->
datem
=
$obj
->
datem
;
$sql
=
"INSERT INTO "
.
MAIN_DB_PREFIX
.
"user_rights (fk_user, fk_id) VALUES (
$this->id
,
$nid
)"
;
if
(
$this
->
db
->
query
(
$sql
))
{
$this
->
webcal_login
=
$obj
->
webcal_login
;
$this
->
societe_id
=
$obj
->
fk_societe
;
$this
->
egroupware_id
=
$obj
->
egroupware_id
;
}
else
{
$this
->
db
->
free
();
}
else
{
dolibarr_print_error
(
$this
->
db
);
}
}
if
(
$lowid
==
0
)
$sql
=
"SELECT param, value FROM "
.
MAIN_DB_PREFIX
.
"user_param"
;
$sql
.
=
" WHERE fk_user = "
.
$this
->
id
;
$sql
.
=
" AND page = '"
.
$_SERVER
[
"SCRIPT_URL"
]
.
"'"
;
if
(
$this
->
db
->
query
(
$sql
)
);
{
for
(
$i
=
1
;
$i
<
10
;
$i
++
)
$num
=
$this
->
db
->
num_rows
();
$i
=
0
;
$page_param_url
=
''
;
$this
->
page_param
=
array
();
while
(
$i
<
$num
)
{
$nid
=
$topid
.
"
$i
"
;
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"user_rights WHERE fk_user =
$this->id
AND fk_id=
$nid
"
;
$this
->
db
->
query
(
$sql
);
$sql
=
"INSERT INTO "
.
MAIN_DB_PREFIX
.
"user_rights (fk_user, fk_id) VALUES (
$this->id
,
$nid
)"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
else
{
dolibarr_print_error
(
$this
->
db
);
}
$obj
=
$this
->
db
->
fetch_object
();
$this
->
page_param
[
$obj
->
param
]
=
$obj
->
value
;
$page_param_url
.
=
$obj
->
param
.
"="
.
$obj
->
value
.
"&"
;
$i
++
;
}
$this
->
page_param_url
=
$page_param_url
;
}
return
1
;
}
/**
* \brief Ajoute un droit a l'utilisateur
* \param rid id du droit ajouter
* \return int > 0 si ok, < 0 si erreur
*/
function
addrights
(
$rid
)
{
if
(
strlen
(
$rid
)
==
2
)
{
$topid
=
substr
(
$rid
,
0
,
1
);
$lowid
=
substr
(
$rid
,
1
,
1
);
}
if
(
strlen
(
$rid
)
==
3
)
{
$topid
=
substr
(
$rid
,
0
,
2
);
$lowid
=
substr
(
$rid
,
2
,
1
);
}
if
(
$lowid
==
1
)
{
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"user_rights WHERE fk_user =
$this->id
AND fk_id=
$rid
"
;
$this
->
db
->
query
(
$sql
);
$sql
=
"INSERT INTO "
.
MAIN_DB_PREFIX
.
"user_rights (fk_user, fk_id) VALUES (
$this->id
,
$rid
)"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
}
if
(
$lowid
>
1
)
{
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"user_rights WHERE fk_user =
$this->id
AND fk_id=
$rid
"
;
$this
->
db
->
query
(
$sql
);
$sql
=
"INSERT INTO "
.
MAIN_DB_PREFIX
.
"user_rights (fk_user, fk_id) VALUES (
$this->id
,
$rid
)"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
$nid
=
$topid
.
"1"
;
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"user_rights WHERE fk_user =
$this->id
AND fk_id=
$nid
"
;
$this
->
db
->
query
(
$sql
);
$sql
=
"INSERT INTO "
.
MAIN_DB_PREFIX
.
"user_rights (fk_user, fk_id) VALUES (
$this->id
,
$nid
)"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
else
{
dolibarr_print_error
(
$this
->
db
);
}
}
if
(
$lowid
==
0
)
{
for
(
$i
=
1
;
$i
<
10
;
$i
++
)
{
$nid
=
$topid
.
"
$i
"
;
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"user_rights WHERE fk_user =
$this->id
AND fk_id=
$nid
"
;
$this
->
db
->
query
(
$sql
);
$sql
=
"INSERT INTO "
.
MAIN_DB_PREFIX
.
"user_rights (fk_user, fk_id) VALUES (
$this->id
,
$nid
)"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
else
{
dolibarr_print_error
(
$this
->
db
);
}
}
}
return
1
;
}
/**
* \brief Retire un droit a l'utilisateur
* \param rid id du droit retirer
* \return int > 0 si ok, < 0 si erreur
*/
function
delrights
(
$rid
)
function
delrights
(
$rid
)
{
if
(
strlen
(
$rid
)
==
2
)
{
$topid
=
substr
(
$rid
,
0
,
1
);
$lowid
=
substr
(
$rid
,
1
,
1
);
}
if
(
strlen
(
$rid
)
==
3
)
{
$topid
=
substr
(
$rid
,
0
,
2
);
$lowid
=
substr
(
$rid
,
2
,
1
);
}
if
(
$lowid
>
1
)
{
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"user_rights WHERE fk_user =
$this->id
AND fk_id=
$rid
"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
}
if
(
$lowid
==
1
)
{
$fid
=
$topid
.
"0"
;
$lid
=
$topid
.
"9"
;
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"user_rights WHERE fk_user =
$this->id
AND fk_id >=
$fid
AND fk_id <=
$lid
"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
else
{
print
$sql
;
}
}
if
(
$lowid
==
0
)
{
for
(
$i
=
1
;
$i
<
10
;
$i
++
)
{
$nid
=
$topid
.
"
$i
"
;
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"user_rights WHERE fk_user =
$this->id
AND fk_id=
$nid
"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
else
{
print
$sql
;
}
}
}
return
1
;
if
(
strlen
(
$rid
)
==
2
)
{
$topid
=
substr
(
$rid
,
0
,
1
);
$lowid
=
substr
(
$rid
,
1
,
1
);
}
if
(
strlen
(
$rid
)
==
3
)
{
$topid
=
substr
(
$rid
,
0
,
2
);
$lowid
=
substr
(
$rid
,
2
,
1
);
}
if
(
$lowid
>
1
)
{
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"user_rights WHERE fk_user =
$this->id
AND fk_id=
$rid
"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
}
if
(
$lowid
==
1
)
{
$fid
=
$topid
.
"0"
;
$lid
=
$topid
.
"9"
;
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"user_rights WHERE fk_user =
$this->id
AND fk_id >=
$fid
AND fk_id <=
$lid
"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
else
{
dolibarr_print_error
(
$this
->
db
);
}
}
if
(
$lowid
==
0
)
{
for
(
$i
=
1
;
$i
<
10
;
$i
++
)
{
$nid
=
$topid
.
"
$i
"
;
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"user_rights WHERE fk_user =
$this->id
AND fk_id=
$nid
"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
else
{
dolibarr_print_error
(
$this
->
db
);
}
}
}
return
1
;
}
/**
* \brief Charge dans l'objet user, la liste des permissions auquels l'utilisateur a droit
* \brief Charge dans l'objet user, la liste des permissions au
x
quels l'utilisateur a droit
* \param module nom du module dont il faut rcuprer les droits ('' par defaut signifie tous les droits)
*/
...
...
@@ -296,119 +359,45 @@ class User
/**
* \brief Charge un objet user avec toutes ces caractristiques depuis un login
* \param login login a charger
* \brief Dsactive un utilisateur
*/
function
fetch
(
$login
=
''
)
function
disable
(
)
{
$sql
=
"SELECT u.rowid, u.name, u.firstname, u.email, u.code, u.admin, u.login, u.pass, u.webcal_login, u.note"
;
$sql
.
=
", "
.
$this
->
db
->
pdate
(
"u.datec"
)
.
" datec, "
.
$this
->
db
->
pdate
(
"u.tms"
)
.
" datem"
;
$sql
.
=
" FROM "
.
MAIN_DB_PREFIX
.
"user as u"
;
if
(
$this
->
id
)
{
$sql
.
=
" WHERE u.rowid =
$this->id
"
;
}
else
{
$sql
.
=
" WHERE u.login = '
$login
'"
;
}
$result
=
$this
->
db
->
query
(
$sql
);
if
(
$result
)
{
if
(
$this
->
db
->
num_rows
(
$result
))
{
$obj
=
$this
->
db
->
fetch_object
(
$result
);
$this
->
id
=
$obj
->
rowid
;
$this
->
nom
=
stripslashes
(
$obj
->
name
);
$this
->
prenom
=
stripslashes
(
$obj
->
firstname
);
$this
->
fullname
=
$this
->
prenom
.
' '
.
$this
->
nom
;
$this
->
code
=
$obj
->
code
;
$this
->
login
=
$obj
->
login
;
$this
->
pass
=
$obj
->
pass
;
$this
->
email
=
$obj
->
email
;
$this
->
admin
=
$obj
->
admin
;
$this
->
contact_id
=
$obj
->
fk_socpeople
;
$this
->
note
=
stripslashes
(
$obj
->
note
);
$this
->
datec
=
$obj
->
datec
;
$this
->
datem
=
$obj
->
datem
;
$this
->
webcal_login
=
$obj
->
webcal_login
;
$this
->
societe_id
=
$obj
->
fk_societe
;
$this
->
egroupware_id
=
$obj
->
egroupware_id
;
}
$this
->
db
->
free
();
}
else
{
dolibarr_print_error
(
$this
->
db
);
}
$sql
=
"SELECT param, value FROM "
.
MAIN_DB_PREFIX
.
"user_param"
;
$sql
.
=
" WHERE fk_user = "
.
$this
->
id
;
$sql
.
=
" AND page = '"
.
$_SERVER
[
"SCRIPT_URL"
]
.
"'"
;
if
(
$this
->
db
->
query
(
$sql
)
);
{
$num
=
$this
->
db
->
num_rows
();
$i
=
0
;
$page_param_url
=
''
;
$this
->
page_param
=
array
();
while
(
$i
<
$num
)
{
$obj
=
$this
->
db
->
fetch_object
();
$this
->
page_param
[
$obj
->
param
]
=
$obj
->
value
;
$page_param_url
.
=
$obj
->
param
.
"="
.
$obj
->
value
.
"&"
;
$i
++
;
}
$this
->
page_param_url
=
$page_param_url
;
}
}
// Dsactive utilisateur
$sql
=
"UPDATE "
.
MAIN_DB_PREFIX
.
"user SET login = '' WHERE rowid =
$this->id
"
;
$result
=
$this
->
db
->
query
(
$sql
);
}
/**
* \brief
Efface de la base,
un utilisateur
* \brief
Supprime compltement
un utilisateur
*/
function
delete
()
function
delete
()
{
if
(
$this
->
contact_id
)
{
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"user WHERE rowid =
$this->id
"
;
$result
=
$this
->
db
->
query
(
$sql
);
$sql
=
"UPDATE "
.
MAIN_DB_PREFIX
.
"socpeople SET fk_user = 0 WHERE idp =
$this->contact_id
"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
}
else
{
$sql
=
"UPDATE "
.
MAIN_DB_PREFIX
.
"user SET login = '' WHERE rowid =
$this->id
"
;
// Supprime droits
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"user_rights WHERE fk_user =
$this->id
"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
// Si contact, supprime lien
if
(
$this
->
contact_id
)
{
$sql
=
"UPDATE "
.
MAIN_DB_PREFIX
.
"socpeople SET fk_user = null WHERE idp =
$this->contact_id
"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
}
// Supprime utilisateur
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"user WHERE rowid =
$this->id
"
;
$result
=
$this
->
db
->
query
(
$sql
);
}
$result
=
$this
->
db
->
query
(
$sql
);
}
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"user_rights WHERE fk_user =
$this->id
"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
}
/**
* \brief Cre un utilisateur en base
...
...
@@ -667,6 +656,7 @@ class User
}
}
/**
* \brief Renvoie la dernire erreur fonctionnelle de manipulation de l'objet
* \return string chaine erreur
...
...
@@ -676,10 +666,10 @@ class User
{
return
$this
->
error
;
}
/**
* Lecture des infos de click to dial
*
* \brief Lecture des infos de click to dial
*/
function
fetch_clicktodial
()
{
...
...
@@ -715,9 +705,9 @@ class User
print
$this
->
db
->
error
();
}
}
/**
* Mise jour des infos de click to dial
*
* \brief Mise jour des infos de click to dial
*/
function
update_clicktodial
()
{
...
...
@@ -746,8 +736,10 @@ class User
}
}
/**
* \brief Ajoute l'utilisateur dans un groupe
* \brief Ajoute l'utilisateur dans un groupe
* \param group id du groupe
*/
function
SetInGroup
(
$group
)
...
...
@@ -766,7 +758,8 @@ class User
}
/**
* \brief Ajoute l'utilisateur dans un groupe
* \brief Retire l'utilisateur d'un groupe
* \param group id du groupe
*/
function
RemoveFromGroup
(
$group
)
...
...
This diff is collapsed.
Click to expand it.
htdocs/usergroup.class.php
+
246
−
47
View file @
8554f09f
...
...
@@ -28,85 +28,284 @@
*/
/**
\class User
\class User
Group
\brief Classe permettant la gestion des groupes d'utilisateur
*/
class
UserGroup
{
var
$db
;
var
$id
;
var
$label
;
var
$db
;
var
$id
;
var
$label
;
/**
* \brief Constructeur de la classe
* \param $DB handler accs base de donnes
* \param $id id du groupe (0 par dfaut)
*/
function
UserGroup
(
$DB
)
{
$this
->
db
=
$DB
;
return
0
;
}
function
UserGroup
(
$DB
,
$id
=
0
)
{
$this
->
db
=
$DB
;
$this
->
id
=
$id
;
return
0
;
}
/**
* \brief
Ajoute un droit a l'utilisateur
* \param
r
id
id du
d
ro
it ajout
er
* \brief
Charge un objet user avec toutes ces caractristiques
* \param id id du
g
ro
upe charg
er
*/
function
fetch
(
$id
)
{
$this
->
id
=
$id
;
$sql
=
"SELECT g.rowid, g.nom, g.note"
;
$sql
.
=
" FROM "
.
MAIN_DB_PREFIX
.
"usergroup as g"
;
$sql
.
=
" WHERE g.rowid = "
.
$this
->
id
;
$result
=
$this
->
db
->
query
(
$sql
);
if
(
$result
)
{
if
(
$this
->
db
->
num_rows
(
$result
))
{
$obj
=
$this
->
db
->
fetch_object
(
$result
);
$this
->
id
=
$obj
->
rowid
;
$this
->
nom
=
$obj
->
nom
;
$this
->
note
=
$obj
->
note
;
}
$this
->
db
->
free
(
$result
);
}
else
{
dolibarr_syslog
(
"UserGroup::Fetch Erreur"
);
}
}
/**
* \brief Charge un objet user avec toutes ces caractristiques depuis un login
* \param login login a charger
* \brief Ajoute un droit au groupe
* \param rid id du droit ajouter
* \return int > 0 si ok, < 0 si erreur
*/
function
fetch
(
$id
)
{
$this
->
id
=
$id
;
function
addrights
(
$rid
)
{
if
(
strlen
(
$rid
)
==
2
)
{
$topid
=
substr
(
$rid
,
0
,
1
);
$lowid
=
substr
(
$rid
,
1
,
1
);
}
if
(
strlen
(
$rid
)
==
3
)
{
$topid
=
substr
(
$rid
,
0
,
2
);
$lowid
=
substr
(
$rid
,
2
,
1
);
}
if
(
$lowid
==
1
)
{
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"usergroup_rights WHERE fk_usergroup =
$this->id
AND fk_id=
$rid
"
;
$this
->
db
->
query
(
$sql
);
$sql
=
"INSERT INTO "
.
MAIN_DB_PREFIX
.
"usergroup_rights (fk_usergroup, fk_id) VALUES (
$this->id
,
$rid
)"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
}
if
(
$lowid
>
1
)
{
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"usergroup_rights WHERE fk_usergroup =
$this->id
AND fk_id=
$rid
"
;
$this
->
db
->
query
(
$sql
);
$sql
=
"INSERT INTO "
.
MAIN_DB_PREFIX
.
"usergroup_rights (fk_usergroup, fk_id) VALUES (
$this->id
,
$rid
)"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
$nid
=
$topid
.
"1"
;
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"usergroup_rights WHERE fk_usergroup =
$this->id
AND fk_id=
$nid
"
;
$this
->
db
->
query
(
$sql
);
$sql
=
"INSERT INTO "
.
MAIN_DB_PREFIX
.
"usergroup_rights (fk_usergroup, fk_id) VALUES (
$this->id
,
$nid
)"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
else
{
dolibarr_print_error
(
$this
->
db
);
}
}
if
(
$lowid
==
0
)
{
for
(
$i
=
1
;
$i
<
10
;
$i
++
)
{
$nid
=
$topid
.
"
$i
"
;
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"usergroup_rights WHERE fk_usergroup =
$this->id
AND fk_id=
$nid
"
;
$this
->
db
->
query
(
$sql
);
$sql
=
"INSERT INTO "
.
MAIN_DB_PREFIX
.
"usergroup_rights (fk_usergroup, fk_id) VALUES (
$this->id
,
$nid
)"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
else
{
dolibarr_print_error
(
$this
->
db
);
}
}
}
return
1
;
}
$sql
=
"SELECT g.rowid, g.nom, g.note FROM "
.
MAIN_DB_PREFIX
.
"usergroup as g"
;
$sql
.
=
" WHERE g.rowid = "
.
$this
->
id
;
/**
* \brief Retire un droit au groupe
* \param rid id du droit retirer
* \return int > 0 si ok, < 0 si erreur
*/
function
delrights
(
$rid
)
{
if
(
strlen
(
$rid
)
==
2
)
{
$topid
=
substr
(
$rid
,
0
,
1
);
$lowid
=
substr
(
$rid
,
1
,
1
);
}
if
(
strlen
(
$rid
)
==
3
)
{
$topid
=
substr
(
$rid
,
0
,
2
);
$lowid
=
substr
(
$rid
,
2
,
1
);
}
if
(
$lowid
>
1
)
{
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"usergroup_rights WHERE fk_usergroup =
$this->id
AND fk_id=
$rid
"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
}
if
(
$lowid
==
1
)
{
$fid
=
$topid
.
"0"
;
$lid
=
$topid
.
"9"
;
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"usergroup_rights WHERE fk_usergroup =
$this->id
AND fk_id >=
$fid
AND fk_id <=
$lid
"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
else
{
dolibarr_print_error
(
$this
->
db
);
}
}
$result
=
$this
->
db
->
query
(
$sql
);
if
(
$lowid
==
0
)
{
for
(
$i
=
1
;
$i
<
10
;
$i
++
)
{
$nid
=
$topid
.
"
$i
"
;
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"usergroup_rights WHERE fk_usergroup =
$this->id
AND fk_id=
$nid
"
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
else
{
dolibarr_print_error
(
$this
->
db
);
}
}
}
return
1
;
}
if
(
$result
)
{
if
(
$this
->
db
->
num_rows
(
$result
))
{
$obj
=
$this
->
db
->
fetch_object
(
$result
);
$this
->
id
=
$obj
->
rowid
;
$this
->
nom
=
$obj
->
nom
;
$this
->
note
=
$obj
->
note
;
}
$this
->
db
->
free
(
$result
);
}
else
/**
* \brief Charge dans l'objet group, la liste des permissions auquels l'utilisateur a droit
* \param module nom du module dont il faut rcuprer les droits ('' par defaut signifie tous les droits)
*/
function
getrights
(
$module
=
''
)
{
if
(
$this
->
all_permissions_are_loaded
)
{
dolibarr_syslog
(
"UserGroup::Fetch Erreur"
);
// Si les permissions ont dja t charg pour ce user, on quitte
return
;
}
}
/*
* Rcupration des droits
*/
$sql
=
"SELECT r.module, r.perms, r.subperms "
;
$sql
.
=
" FROM "
.
MAIN_DB_PREFIX
.
"usergroup_rights as u, "
.
MAIN_DB_PREFIX
.
"rights_def as r"
;
$sql
.
=
" WHERE r.id = u.fk_id AND u.fk_usergroup=
$this->id
AND r.perms IS NOT NULL"
;
if
(
$this
->
db
->
query
(
$sql
))
{
$num
=
$this
->
db
->
num_rows
();
$i
=
0
;
while
(
$i
<
$num
)
{
$row
=
$this
->
db
->
fetch_row
();
if
(
strlen
(
$row
[
1
])
>
0
)
{
if
(
strlen
(
$row
[
2
])
>
0
)
{
$this
->
rights
->
$row
[
0
]
->
$row
[
1
]
->
$row
[
2
]
=
1
;
}
else
{
$this
->
rights
->
$row
[
0
]
->
$row
[
1
]
=
1
;
}
}
$i
++
;
}
}
if
(
$module
==
''
)
{
// Si module etait non defini, alors on a tout charg, on peut donc considrer
// que les droits sont en cache (car tous chargs) pour cet instance de user
$this
->
all_permissions_are_loaded
=
1
;
}
}
/**
* \brief Efface un groupe de la base
* \brief Efface un groupe de la base
* \return < 0 si erreur, > 0 si ok
*/
function
delete
()
{
$sql
=
"DELETE FROM "
.
MAIN_DB_PREFIX
.
"usergroup"
;
$sql
.
=
" WHERE rowid = "
.
$this
->
id
;
if
(
$this
->
db
->
query
(
$sql
))
{
}
$result
=
$this
->
db
->
query
(
$sql
);
if
(
$result
)
{
return
1
;
}
else
{
dolibarr_print_error
(
$this
->
db
);
return
-
1
;
}
}
/**
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment