Fixes to users view and new pankow version

This commit is contained in:
Johannes Zellner
2025-03-17 19:02:41 +01:00
parent 3383a84fa6
commit 7cddf8ae6a
4 changed files with 27 additions and 30 deletions

View File

@@ -29,14 +29,14 @@ async function onSubmit() {
formError.value = '';
if (group.value) {
const [error] = await groupsModel.update(group.value.id, name.value, users.value.map(u => u.id), apps.value.map(u => u.id));
const [error] = await groupsModel.update(group.value.id, name.value, users.value, apps.value);
if (error) {
formError.value = error.body ? error.body.message : 'Internal error';
busy.value = false;
return console.error(error);
}
} else {
const [error] = await groupsModel.add(name.value, users.value.map(u => u.id), apps.value.map(u => u.id));
const [error] = await groupsModel.add(name.value, users.value, apps.value);
if (error) {
formError.value = error.body ? error.body.message : 'Internal error';
busy.value = false;
@@ -58,13 +58,13 @@ defineExpose({
if (error) return console.error(error);
result.forEach(u => u.label = (u.username || u.email));
allUsers.value = result;
users.value = g ? g.userIds.map(id => { return result.find(u => u.id === id); }) : [];
users.value = g ? g.userIds : [];
[error, result] = await appsModel.list();
if (error) return console.error(error);
result.forEach(a => a.label = (a.label || a.fqdn));
allApps.value = result;
apps.value = g ? g.appIds.map(id => { return result.find(a => a.id === id); }) : [];
apps.value = g ? g.appIds : [];
dialog.value.open();
}
@@ -95,7 +95,7 @@ defineExpose({
<FormGroup>
<label for="usersInput">{{ $t('users.group.users') }}</label>
<div v-if="group?.source"><span ng-repeat="user in groupEdit.selectedUsers"> {{ (user.username || user.email) }}</span></div>
<MultiSelect v-else v-model="users" :options="allUsers" />
<MultiSelect v-else v-model="users" :options="allUsers"/>
</FormGroup>
<FormGroup>

View File

@@ -100,7 +100,7 @@ async function onSubmit() {
return console.error(error);
}
const [groupError] = await usersModel.setLocalGroups(userId, localGroups.value.map(g => g.id));
const [groupError] = await usersModel.setLocalGroups(userId, localGroups.value);
if (groupError) {
busy.value = false;
return console.error(error);
@@ -137,8 +137,8 @@ defineExpose({
result.forEach(g => g.label = g.name);
allGroups.value = result;
allLocalGroups.value = result.filter(g => !g.source);
groups.value = u ? u.groupIds.map(id => { return result.find(g => g.id === id); }) : [];
localGroups.value = (u ? u.groupIds.map(id => { return result.find(g => g.id === id); }) : []).filter(g => !g.source);
groups.value = u ? u.groupIds : [];
localGroups.value = (u ? u.groupIds.filter(g => !g.source) : []);
[error, result] = await profileModel.get();
if (error) return console.error(error);
@@ -176,12 +176,12 @@ defineExpose({
<FormGroup>
<label for="displayNameInput">{{ $t('users.user.fullName') }}</label>
<TextInput id="displayNameInput" v-model="displayName" :disabled="user && user.source" :placeholder="$t('users.user.displayNamePlaceholder')"/>
<TextInput id="displayNameInput" v-model="displayName" :disabled="(user && user.source) ? true : null" :placeholder="$t('users.user.displayNamePlaceholder')"/>
</FormGroup>
<FormGroup>
<label for="emailInput">{{ $t('users.user.primaryEmail') }} <sup><a href="https://docs.cloudron.io/profile/#primary-email" class="help" target="_blank"><i class="fa fa-question-circle"></i></a></sup></label>
<TextInput id="emailInput" v-model="email" :disabled="user && user.source" required />
<TextInput id="emailInput" v-model="email" :disabled="(user && user.source) ? true : null" required />
</FormGroup>
<FormGroup>
@@ -206,10 +206,7 @@ defineExpose({
<MultiSelect v-if="allLocalGroups.length" v-model="localGroups" :options="allLocalGroups" />
</FormGroup>
<br/>
<Checkbox v-model="active" :label="$t('users.user.activeCheckbox')" /><sup><a href="https://docs.cloudron.io/user-management/#disable-user" class="help" target="_blank"><i class="fa fa-question-circle"></i></a></sup>
<br/>
<Checkbox v-model="active" :label="$t('users.user.activeCheckbox')" /><sup><a href="https://docs.cloudron.io/user-management/#disable-user" class="help" target="_blank"><i class="fa fa-question-circle"></i></a></sup><br/>
<Checkbox v-if="!user" v-model="sendInvite" :label="$t('users.addUserDialog.sendInviteCheckbox')" />
</fieldset>
</form>