fixes
All checks were successful
Build And Push Image / docker (push) Successful in 2m55s

This commit is contained in:
2025-08-08 19:55:32 +02:00
parent 5535b7905d
commit 4365cc53ff
2 changed files with 337 additions and 90 deletions

View File

@@ -56,19 +56,32 @@
<p class="mb-4">Manage user accounts, roles, and permissions for the MonacoUSA Portal.</p>
<v-row>
<v-col cols="12" md="4">
<v-col cols="12" md="3">
<v-btn
color="primary"
block
size="large"
@click="manageUsers"
@click="navigateTo('/dashboard/member-list')"
>
<v-icon start>mdi-account-cog</v-icon>
Manage Users
</v-btn>
</v-col>
<v-col cols="12" md="4">
<v-col cols="12" md="3">
<v-btn
color="success"
variant="outlined"
block
size="large"
@click="showCreateUserDialog = true"
>
<v-icon start>mdi-account-plus</v-icon>
Create User Account
</v-btn>
</v-col>
<v-col cols="12" md="3">
<v-btn
color="secondary"
variant="outlined"
@@ -81,13 +94,13 @@
</v-btn>
</v-col>
<v-col cols="12" md="4">
<v-col cols="12" md="3">
<v-btn
color="secondary"
variant="outlined"
block
size="large"
@click="portalSettings"
@click="showAdminConfig = true"
>
<v-icon start>mdi-cog</v-icon>
Portal Settings
@@ -145,6 +158,85 @@
v-model="showNocoDBSettings"
@settings-saved="handleSettingsSaved"
/>
<!-- Admin Configuration Dialog -->
<AdminConfigurationDialog
v-model="showAdminConfig"
@settings-saved="handleAdminConfigSaved"
/>
<!-- Create User Dialog -->
<v-dialog v-model="showCreateUserDialog" max-width="600">
<v-card>
<v-card-title class="text-h5">
<v-icon left>mdi-account-plus</v-icon>
Create User Account
</v-card-title>
<v-card-text>
<v-alert type="info" variant="tonal" class="mb-4">
<v-alert-title>Create Portal Account</v-alert-title>
This will create a new user account in the MonacoUSA Portal with email verification.
</v-alert>
<v-form ref="createUserForm" v-model="createUserValid">
<v-row>
<v-col cols="6">
<v-text-field
v-model="newUser.firstName"
label="First Name"
:rules="[v => !!v || 'First name is required']"
variant="outlined"
required
/>
</v-col>
<v-col cols="6">
<v-text-field
v-model="newUser.lastName"
label="Last Name"
:rules="[v => !!v || 'Last name is required']"
variant="outlined"
required
/>
</v-col>
</v-row>
<v-text-field
v-model="newUser.email"
label="Email Address"
type="email"
:rules="[
v => !!v || 'Email is required',
v => /.+@.+\..+/.test(v) || 'Email must be valid'
]"
variant="outlined"
required
/>
<v-select
v-model="newUser.role"
label="User Role"
:items="roleOptions"
item-title="title"
item-value="value"
variant="outlined"
required
/>
</v-form>
</v-card-text>
<v-card-actions>
<v-spacer />
<v-btn text @click="showCreateUserDialog = false">Cancel</v-btn>
<v-btn
color="primary"
:loading="creatingUser"
:disabled="!createUserValid"
@click="createUserAccount"
>
Create Account
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</div>
</template>
@@ -159,6 +251,24 @@ const { firstName } = useAuth();
// Reactive data
const userCount = ref(0);
const loading = ref(false);
const showCreateUserDialog = ref(false);
const showAdminConfig = ref(false);
// Create user dialog data
const createUserValid = ref(false);
const creatingUser = ref(false);
const newUser = ref({
firstName: '',
lastName: '',
email: '',
role: 'user'
});
const roleOptions = [
{ title: 'User', value: 'user' },
{ title: 'Board Member', value: 'board' },
{ title: 'Administrator', value: 'admin' }
];
const recentActivity = ref([
{
@@ -234,6 +344,43 @@ const handleSettingsSaved = () => {
console.log('NocoDB settings saved successfully');
};
const handleAdminConfigSaved = () => {
console.log('Admin configuration saved successfully');
showAdminConfig.value = false;
};
const createUserAccount = async () => {
if (!createUserValid.value) return;
creatingUser.value = true;
try {
console.log('Creating user account:', newUser.value);
// TODO: Implement actual user creation using enhanced Keycloak API
// For now, just show success
await new Promise(resolve => setTimeout(resolve, 2000)); // Simulate API call
// Reset form
newUser.value = {
firstName: '',
lastName: '',
email: '',
role: 'user'
};
showCreateUserDialog.value = false;
console.log('User account created successfully');
// TODO: Show success notification
// TODO: Refresh user list
} catch (error) {
console.error('Failed to create user account:', error);
// TODO: Show error notification
} finally {
creatingUser.value = false;
}
};
const createUser = () => {
console.log('Create new user');
// TODO: Implement create user dialog/form