PossedeRole

PossedeRole

Messagepar oguruma » 29 Juil 2005 à 12:37

[syntax="ls"]Function PossedeRole (Role As String) As Integer
'//=============================================
'// = détection d'un rôle

'//=============================================
Const Cmd ="@UserRoles"
Dim EstRole As Integer
Dim ListeRoles As Variant
EstRole=False
ListeRoles=Evaluate(Cmd)
Forall R In ListeRoles
If Ucase$(R)=Ucase$(Role) Then
EstRole=True
Exit Forall
End If
End Forall
PossedeRole=EstRole
End Function[/syntax]

c'est un peu à la hache sur la boucle mais elle fonctionne depuis plus de 5 ans
Bien à vous

http://www.dominoarea.org/oguruma/

Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci

Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)
Avatar de l’utilisateur
oguruma
Super V.I.P.
Super V.I.P.
 
Message(s) : 4086
Inscrit(e) le : 16 Déc 2004 à 08:50
Localisation : LILLE

Messagepar Michael DELIQUE » 29 Juil 2005 à 12:46

Une Autre Version inspiré par le Maitre

[syntax="ls"] ]Function HasRole(wRole As String) As Integer

'wRole = "[Role1]:[Role]" liste des roles autorisés

'declaration Variable
Dim vrValue As Variant

On Error Goto ErreurHasRole

HasRole = False
If Trim(wRole) <> "" Then
vrValue = Evaluate({@UserRoles})
Select Case Datatype(vrValue)
Case 0,1,9 ' EMPTY, NULL ,OLE object or NOTHING
'on fait rien
Case Else
Forall Value In vrValue
If Trim(Cstr(Value)) <> "" Then
If Instr(Ucase(Trim(wRole)),Ucase(Trim(Value))) > 0 Then
HasRole = True
vrValue = Null
Exit Function
End If
End If
End Forall

End Select
vrValue = Null
End If

Exit Function
ErreurHasRole:
Msgbox "(HasRole) Erreur " + Str(Err) + " : " + Cstr(Error)+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
HasRole = False
Exit Function
End Function[/syntax]
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Aquanotes » 11 Août 2005 à 08:53

Une autre pour tester 1 seul rôle :
[syntax="ls"]
Function IsMemberRole(sRole As String) As Variant
Dim vEval As Variant
vEval = Evaluate({@ismember("}+sRole+{";@userroles)})
IsMemberRole = vEval(0)
End Function
[/syntax][/code]
Aquanotes
Posteur habitué
Posteur habitué
 
Message(s) : 295
Inscrit(e) le : 16 Déc 2004 à 12:13
Localisation : Niort


Retour vers ACL, sécurité