2023-11-02 06:33:27 +01:00
|
|
|
@startuml
|
|
|
|
'maybe for sneidc since he did videoshop:cahnge-password'
|
|
|
|
skinparam linetype ortho
|
|
|
|
skinparam groupInheritance 2
|
|
|
|
|
|
|
|
package Salespoint {
|
2023-11-02 16:00:10 +01:00
|
|
|
interface UserAccountManagement
|
|
|
|
interface DataInitalizer
|
|
|
|
class UserAccount
|
2023-11-15 18:14:45 +01:00
|
|
|
class AbstractAggregateRoot
|
|
|
|
class Role
|
|
|
|
}
|
|
|
|
|
|
|
|
package Spring {
|
2023-11-08 16:02:41 +01:00
|
|
|
class CrudRepository
|
2023-11-15 18:14:45 +01:00
|
|
|
class Streamable
|
2023-11-02 06:33:27 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
package catering.users {
|
2023-11-08 16:02:41 +01:00
|
|
|
class User {
|
|
|
|
- address : String
|
|
|
|
+ User(userAccount : UserAccount, address : String)
|
|
|
|
+ User()
|
2023-11-02 16:00:10 +01:00
|
|
|
+ getAddress() : String
|
2023-11-15 18:14:45 +01:00
|
|
|
+ setAddress(address:String) : String
|
2023-11-08 16:02:41 +01:00
|
|
|
+ getUsername() : String
|
2023-11-15 18:14:45 +01:00
|
|
|
+ setUsername(username:String) : boolean
|
2023-11-02 16:00:10 +01:00
|
|
|
+ getUserAccount() : UserAccount
|
2023-11-08 16:02:41 +01:00
|
|
|
+ getId() : UserIdentifier
|
2023-11-15 18:14:45 +01:00
|
|
|
+ isEnabled() : boolean
|
|
|
|
+ hasRole(role:String) : boolean
|
2023-11-02 06:33:27 +01:00
|
|
|
}
|
2023-11-15 18:14:45 +01:00
|
|
|
User ..> Role : "<<use>>"
|
2023-11-08 16:02:41 +01:00
|
|
|
User --> UserAccount : "-userAccount"
|
2023-11-15 18:14:45 +01:00
|
|
|
User --|> AbstractAggregateRoot : <<extends>>
|
2023-11-02 06:33:27 +01:00
|
|
|
|
2023-11-02 16:00:10 +01:00
|
|
|
class UserController {
|
2023-11-08 16:02:41 +01:00
|
|
|
+ UserController(userManagement: UserManagement)
|
2023-11-15 18:14:45 +01:00
|
|
|
+ unauthorized() : String
|
|
|
|
+ register() : String
|
|
|
|
+ register(form:RegistrationForm,result:Erros) : String
|
|
|
|
+ loginPage() : String
|
|
|
|
+ viewProfile(model:Model,userAccount:UserAccount) : String
|
|
|
|
+ editProfile(userAccount:UserAccount,username:String,password:String,address:String) : String
|
|
|
|
+ disableUser(userAccount:UserAccount) : String
|
|
|
|
+ getCustomer(model:Model) : String
|
|
|
|
+ removeCustomer(user:User,model:Model) : String
|
|
|
|
+ editCustomer(user:User,model:Model) : String
|
|
|
|
+ updateCustomer(user:User,username:String,address:String,model:Model)
|
2023-11-02 06:33:27 +01:00
|
|
|
}
|
2023-11-08 16:02:41 +01:00
|
|
|
UserController --> UserManagement : "-userManagement"
|
2023-11-15 18:14:45 +01:00
|
|
|
UserController ..> User : "<<use>>"
|
|
|
|
UserController ..> UserAccount : "<<use>>"
|
|
|
|
UserController ..> Role : "<<use>>"
|
|
|
|
UserController ..> RegistrationForm : "<<use>>"
|
2023-11-02 06:33:27 +01:00
|
|
|
|
2023-11-08 16:02:41 +01:00
|
|
|
class UserManagement {
|
2023-11-15 18:14:45 +01:00
|
|
|
+ UserManagement(users:UserRepository,userAccounts:UserAccountManagement)
|
|
|
|
+ createCustomer(name:String, password:String, address:String) : User
|
|
|
|
+ createAdmin(name:String, password:String, address:String) : User
|
|
|
|
+ save(user:User) : User
|
|
|
|
+ getUsers() : UserRepository
|
|
|
|
+ disableUserAccount(userAccount:UserAccount) : void
|
|
|
|
+ getUserByAccount(userAccount:UserAccount) : Optional<User>
|
2023-11-02 16:00:10 +01:00
|
|
|
}
|
2023-11-15 18:14:45 +01:00
|
|
|
UserManagement --> UserAccountManagement : "-userAccounts"
|
|
|
|
UserManagement --> UserRepository : "-users"
|
|
|
|
UserManagement ..> User : "<<use>>"
|
2023-11-08 16:02:41 +01:00
|
|
|
class UserDataInitalizer {
|
|
|
|
- userManagement : UserManagement
|
|
|
|
+ UserDataInitalizer(userManagement : UserManagement)
|
2023-11-02 16:00:10 +01:00
|
|
|
+ initalize() : void
|
|
|
|
}
|
2023-11-08 16:02:41 +01:00
|
|
|
UserDataInitalizer --> UserManagement : "-userManagement"
|
|
|
|
UserDataInitalizer ..|> DataInitalizer
|
|
|
|
class UserRepository {
|
2023-11-15 18:14:45 +01:00
|
|
|
+ findAll() : Streamable<User>
|
|
|
|
}
|
|
|
|
UserRepository --|> CrudRepository : <<extends>>
|
|
|
|
UserRepository ..|> Streamable : <<use>>
|
|
|
|
UserRepository o-- User
|
|
|
|
class RegistrationForm {
|
|
|
|
- username: String
|
|
|
|
- password: String
|
|
|
|
- address: String
|
|
|
|
+ RegistrationForm(username:String,password:String,address:String)
|
|
|
|
+ getUsername() : String
|
|
|
|
+ getPassword() : String
|
|
|
|
+ getAddress() : String
|
|
|
|
+ validate(errors:Erros) : void
|
2023-11-08 16:02:41 +01:00
|
|
|
}
|
2023-11-02 06:33:27 +01:00
|
|
|
}
|
2023-11-08 16:02:41 +01:00
|
|
|
@enduml
|