User Management
User Management Documentation
This section provides comprehensive information on managing users within ProjectHub, including user creation, role assignments, and account management.
Component Hierarchy
graph TD
%% Main Components
Root[BorderPane: Root]
Content[SplitPane: Content]
List[VBox: UserList]
Details[ScrollPane: UserDetails]
%% List Components
SearchBar[TextField: Search]
UserTable[TableView: Users]
AddButton[Button: AddUser]
%% Details Components
UserForm[Form: UserDetails]
NameField[TextField: Name]
EmailField[TextField: Email]
RoleSelect[ComboBox: Role]
Activities[TableView: Activities]
%% Actions
Actions[HBox: Actions]
SaveBtn[Button: Save]
ResetPwdBtn[Button: ResetPassword]
%% Hierarchy
Root --> Content
Content --> List
Content --> Details
List --> SearchBar
List --> UserTable
List --> AddButton
Details --> UserForm
UserForm --> NameField
UserForm --> EmailField
UserForm --> RoleSelect
Details --> Activities
Details --> Actions
Actions --> SaveBtn
Actions --> ResetPwdBtn
%% Styling
classDef container fill:#e1f5fe,stroke:#01579b
classDef component fill:#fff,stroke:#0288d1
classDef control fill:#e8f5e9,stroke:#2e7d32
class Root,Content container
class List,Details,UserForm component
class SearchBar,UserTable,NameField,EmailField,RoleSelect,Activities,SaveBtn,ResetPwdBtn control
User Management Sequence
sequenceDiagram
actor Admin
participant View as UserManagement
participant Controller
participant ViewModel
participant Service
participant DB
%% Load Users
Admin->>View: Open Users
View->>Controller: initialize()
Controller->>ViewModel: loadUsers()
ViewModel->>Service: getUsers()
Service->>DB: fetchUsers()
DB-->>Service: users
Service-->>ViewModel: usersList
ViewModel-->>View: updateUserTable()
%% User Operations
Admin->>View: Select User
View->>Controller: handleUserSelect()
Controller->>ViewModel: loadUserDetails()
ViewModel->>Service: getUserDetails()
Service->>DB: fetchDetails()
DB-->>Service: userDetails
Service-->>ViewModel: userDTO
ViewModel-->>View: displayUserDetails()
%% Edit User
Admin->>View: Edit User
View->>Controller: handleEditUser()
Controller->>ViewModel: validateUserData()
alt Valid Input
ViewModel->>Service: updateUser()
Service->>DB: saveUser()
DB-->>Service: success
Service-->>ViewModel: updated
ViewModel-->>View: showSuccess()
else Invalid Input
ViewModel-->>View: showValidationError()
end
%% Role Management
Admin->>View: Change Role
View->>Controller: handleRoleChange()
Controller->>ViewModel: updateUserRole()
ViewModel->>Service: changeRole()
Service->>DB: updateRole()
DB-->>Service: success
Service-->>View: refreshUserDetails()
Data Dictionary
User Entity
Field | Type | Description |
---|---|---|
String | User email | |
role | UserRole | User permission level |
status | UserStatus | Account status |
Activity Log
Field | Type | Description |
---|---|---|
logId | UUID | Activity identifier |
userId | UUID | User reference |
action | ActivityType | Type of activity |
timestamp | DateTime | When activity occurred |
User Management Documentation
This section provides comprehensive information on managing users within ProjectHub, including user creation, role assignments, and account management.