forked from WindowStations/VB6NameSpaces
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUser.cls
61 lines (57 loc) · 1.77 KB
/
User.cls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
VERSION 1.0 CLASS
BEGIN
MultiUse = -1
Persistable = 0
DataBindingBehavior = 0
DataSourceBehavior = 0
MTSTransactionMode = 0
END
Attribute VB_Name = "User"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit
'VERSION 1.0 CLASS
'BEGIN
' MultiUse = -1 'True
' Persistable = 0 'NotPersistable
' DataBindingBehavior = 0 'vbNone
' DataSourceBehavior = 0 'vbNone
' MTSTransactionMode = 0 'NotAnMTSObject
'END
'Attribute VB_Name = "User"
'Attribute VB_GlobalNameSpace = False
'Attribute VB_Creatable = True
'Attribute VB_PredeclaredId = False
'Attribute VB_Exposed = False
'Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
'Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
'Option Explicit
Private Declare Function apiGetUserName Lib "advapi32" Alias "GetUserNameA" (ByVal lpBuffer As String, ByRef nSize As Long) As Long
Private Declare Function apiIsUserAnAdmin Lib "shell32" Alias "IsUserAnAdmin" () As Long
Private mvarCurrentPrincipal As Object
Friend Function Name() As String
On Error Resume Next
Dim buff As String
Dim lSize As Long
buff = Space(260)
lSize = Len(buff)
Call apiGetUserName(buff, lSize)
Name = Left(buff, lSize)
End Function
Friend Function IsInRole(ByVal role As String) As Boolean
IsInRole = CBool(apiIsUserAnAdmin)
End Function
Friend Function IsAuthenticated() As Boolean
'todo
End Function
Friend Sub InitializeWithWindowsUser()
'todo
End Sub
Friend Property Get CurrentPrincipal() As Object
CurrentPrincipal = mvarCurrentPrincipal 'todo
End Property
Friend Property Let CurrentPrincipal(ByVal vData As Object)
mvarCurrentPrincipal = vData 'todo
End Property