-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathUserManagement.puml
60 lines (51 loc) · 1.45 KB
/
UserManagement.puml
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
@startuml
Interface Manager
Interface StorageController<T> {
+ T Query()
+ void Add()
+ void Remove()
+ void Update()
}
class UserACL {
+ bool canAddPost
+ bool canRemovePost
+ bool canUpdatePost
+ bool canGainMileage
+ bool canExchangeAtShop
+ bool isAdministrator
+ int ToBitwiseInteger()
+ bool Contains(UserACL other)
}
class User {
+ UserUUID identifier
+ String loginID
+ String loginPasswordHash
+ String email
+ UserACL acl
}
class UserManager implements Manager {
+ void Register(User _new)
}
UserManager --- User : use
UserManager --- UserStorageController : use
class UserSessionManager implements Manager {
+ void LoginUser(String loginID, String loginPasswordHash)
+ void Logout()
+ User GetCurrentLogin()
}
UserSessionManager --- User : use
UserSessionManager --- UserStorageController : use
class UserStorageController<T> implements StorageController {}
UserStorageController --- User : use
User "1" o-- "1" UserUUID : contains
User "1" o-- "1" UserACL : contains
' User Management SubSystem
class UserManagementSubSystem {
+ {static} UserManager userManager
+ {static} UserSessionManager userSessionManager
+ {static} UserStorageController userStorageController
}
UserManagementSubSystem "1" o-- "1" UserManager : contains
UserManagementSubSystem "1" o-- "1" UserSessionManager : contains
UserManagementSubSystem "1" o-- "1" UserStorageController : contains
@enduml