swt23w23/src/main/asciidoc/models/design/seq_users.puml
Simon Bruder bac025fd0a
Make project REUSE compliant
This finally makes the licensing under AGPL-3.0-or-later explicit after
I got the okay from the kickstart source owners.

This also checks the REUSE compliance in a pre commit hook, and
therefore also in CI.
2023-12-11 17:59:14 +01:00

143 lines
4.5 KiB
Plaintext

' SPDX-License-Identifier: AGPL-3.0-or-later
' SPDX-FileCopyrightText: 2023 swt23w23
@startuml
participant User
participant "User:customer" as User_customer
participant "User:admin" as User_admin
participant "UserAccount:userAccount" as userAccount
participant UserController
participant UserManagement
participant UserRepository
participant UserDataInitializier
participant Spring
participant RegistrationForm
== Create Admin ==
UserDataInitializier -> UserManagement : createAdmin()
activate UserDataInitializier
activate UserManagement
UserManagement -> UserRepository : "save(User:admin)"
activate User_admin
activate UserRepository
UserManagement <-- UserRepository : User_admin
deactivate UserRepository
UserDataInitializier <-- UserManagement : User
deactivate UserManagement
deactivate UserDataInitializier
deactivate User_admin
== Register Customer ==
Spring -> UserController : register
activate UserController
activate RegistrationForm
activate Spring
UserController -> RegistrationForm : getUsername()
UserController <-- RegistrationForm : String
UserController -> RegistrationForm : getPassword()
UserController <-- RegistrationForm : String
UserController -> RegistrationForm : getAddress()
UserController <-- RegistrationForm : String
UserController -> RegistrationForm : getFullName()
UserController <-- RegistrationForm : String
UserController -> UserManagement : createCustomer(String,String,String,String)
activate UserManagement
UserManagement -> UserRepository : "save(User:customer)"
activate User_customer
activate UserRepository
UserManagement <-- UserRepository : User
deactivate UserRepository
UserController <-- UserManagement : User
deactivate UserManagement
Spring <-- UserController : "redirect:/login"
deactivate UserController
deactivate User_customer
deactivate RegistrationForm
deactivate Spring
== Disable Customer by Customer ==
Spring -> UserController : disableUser(UserAccount:userAccount)
activate User_customer
activate Spring
activate UserController
UserController -> UserManagement : disableUserAccount(UserAccount:userAccount)
activate UserManagement
UserManagement -> userAccount : getId()
activate userAccount
UserManagement -> userAccount : UserIdentifier
deactivate userAccount
UserManagement -> UserRepository : disable(UserIdentifier)
activate UserRepository
UserManagement <-- UserRepository
deactivate UserRepository
UserController <-- UserManagement
deactivate UserManagement
UserController <-- Spring: "redirect:/"
deactivate UserController
deactivate Spring
deactivate User_customer
== View Profile ==
Spring -> UserController : viewProfile(Model:model,UserAccount:userAccount)
activate User
activate Spring
activate UserController
UserController -> UserManagement : getUserByAccount(UserAccount:userAccount)
activate UserManagement
UserManagement -> UserRepository : findAll()
activate UserRepository
UserManagement <-- UserRepository : Streamble
deactivate UserRepository
UserController <-- UserManagement : Optional<User>
UserController -> User : getUsername()
UserController <-- User : String
UserController -> User : getFullName()
UserController <-- User : String
UserController -> User : getAddress()
UserController <-- User : String
deactivate UserManagement
UserController -> Spring : model.addAttribute("profileForm",ProfileForm)
UserController <-- Spring : Model
Spring <-- UserController : "profile"
deactivate Spring
deactivate UserController
deactivate User
== Edit Profile ==
Spring -> UserController : editProfile(UserAccount:LoggedIn,ProfileForm:form,Erros:result,Model:model)
activate User
activate Spring
activate UserController
UserController -> UserManagement : getUserByAccount(UserAccount:LoggedIn)
activate UserManagement
UserManagement -> UserRepository : findAll()
activate UserRepository
UserManagement <-- UserRepository : Streamble
deactivate UserRepository
UserController <-- UserManagement : Optional<User:user>
deactivate UserManagement
UserController -> User : setUsername(String:username)
UserController <-- User : boolean
UserController -> User : setAddress(String:address)
UserController <-- User : boolean
UserController -> User : [!form.getUsername().equals(user.getUsername())] setPassword(String:password)
UserController <-- User : boolean
UserController -> UserManagement : save(User:LoggedIn)
activate UserManagement
UserManagement -> UserRepository : save(User:LoggedIn)
activate UserRepository
UserManagement <-- UserRepository : User
deactivate UserRepository
UserController <-- UserManagement : User
deactivate UserManagement
deactivate Spring
deactivate UserController
deactivate User
@enduml