Handling user roles in Lotus script
Problem description: In lotus notes development it is quite often, we developers face situations, where based on the user's role we have to grant/restrict some of the functions for him/her.
 
Solution: Solution is quite simple. we can use 'Evaluate' function as follows.
 
Step1:
 
Create a function in the script library as below.
%REM
=============================================================
Input: Role name should be passed to this function, without square brackets
Return value: True if the passed role is enabled for current user. Else false. 
=============================================================
%END REM
 
Function CheckUserRole(RoleName As String) As Variant
 Dim CheckRole As String
 Dim Userroles As Variant
 CheckUserRole=False
 CheckRole="["+RoleName+"]"
 UserRoles= Evaluate("@UserRoles")
 
 If Not Isempty(UserRoles ) Then
  If Not Isnull(Arraygetindex(UserRoles,CheckRole,0)) Then
   CheckUserRole=True
  End If
 End If
End Function
 
Step2:
 
Now use the above function, wherever it is required as follows.
 
Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
'If the user do not have [Admin] role then do not allow him to delete a document
 
 Dim Response As Integer
 
 If Not CheckUserRole("Admin") Then
  Msgbox "You are not authorized to delete document from the database", 16, "Warning"
  Continue = False
  Exit Sub 
 End If
 
End Sub
 
1 comment:
Thanks for this. Was a great help
Post a Comment