package components import ( "context" "github.com/starfleetcptn/gomft/internal/db" "strconv" ) type UserManagementData struct { Users []db.User Roles []db.Role ActiveTab string // "list", "create", or "edit" EditUser *db.User UserRoles []db.Role ErrorMessage string } templ UserManagement(ctx context.Context, data UserManagementData) { @LayoutWithContext("User Management", ctx) {

User Management

if data.ErrorMessage != "" { }
if data.ActiveTab == "list" || data.ActiveTab == "" { @userList(data.Users) } else if data.ActiveTab == "create" { @userForm(nil, true, data.Roles) } else if data.ActiveTab == "edit" && data.EditUser != nil { @userForm(data.EditUser, false, data.Roles) }
} } // User listing component templ userList(users []db.User) {
if len(users) == 0 { } else { for _, user := range users { } }
Email
Role
Status
Actions
No users found. Click the "Add User" button to create your first user.
{ user.Email } if user.GetIsAdmin() { Admin } else { User } if user.GetAccountLocked() { Locked } else { Active }
} // User form component for creating/editing users templ userForm(user *db.User, isNew bool, availableRoles []db.Role) {

if isNew { Create New User } else { Edit User: { user.Email } }

if isNew { Create a new user account with appropriate permissions. } else { Update user information and permissions. }

Passwords do not match

Grant administrative privileges to this user

if !isNew {

Account Status

Prevent user from logging in

} if len(availableRoles) > 0 {

Roles

for _, role := range availableRoles {

{ role.Description }

}
}
} // Helper function to check if a user has a specific role func hasRole(user *db.User, roleID uint) bool { for _, role := range user.Roles { if role.ID == roleID { return true } } return false }