filebrowser/frontend/src/components/settings/UserForm.vue

120 lines
2.9 KiB
Vue
Raw Normal View History

<template>
<div>
<p v-if="!isDefault">
2021-03-21 11:51:58 +00:00
<label for="username">{{ $t("settings.username") }}</label>
<input
class="input input--block"
type="text"
v-model="user.username"
id="username"
/>
</p>
<p v-if="!isDefault">
2021-03-21 11:51:58 +00:00
<label for="password">{{ $t("settings.password") }}</label>
<input
class="input input--block"
type="password"
:placeholder="passwordPlaceholder"
v-model="user.password"
id="password"
/>
</p>
<p>
2021-03-21 11:51:58 +00:00
<label for="scope">{{ $t("settings.scope") }}</label>
<input
:disabled="createUserDirData"
:placeholder="scopePlaceholder"
2021-03-21 11:51:58 +00:00
class="input input--block"
type="text"
v-model="user.scope"
id="scope"
/>
</p>
<p class="small" v-if="displayHomeDirectoryCheckbox">
<input type="checkbox" v-model="createUserDirData" />
{{ $t("settings.createUserHomeDirectory") }}
</p>
<p>
2021-03-21 11:51:58 +00:00
<label for="locale">{{ $t("settings.language") }}</label>
<languages
class="input input--block"
id="locale"
:locale.sync="user.locale"
></languages>
</p>
<p v-if="!isDefault">
2021-03-21 11:51:58 +00:00
<input
type="checkbox"
:disabled="user.perm.admin"
v-model="user.lockPassword"
/>
{{ $t("settings.lockPassword") }}
</p>
<permissions :perm.sync="user.perm" />
2020-10-01 14:45:24 +00:00
<commands v-if="isExecEnabled" :commands.sync="user.commands" />
<div v-if="!isDefault">
2021-03-21 11:51:58 +00:00
<h3>{{ $t("settings.rules") }}</h3>
<p class="small">{{ $t("settings.rulesHelp") }}</p>
<rules :rules.sync="user.rules" />
</div>
</div>
</template>
<script>
2021-03-21 11:51:58 +00:00
import Languages from "./Languages";
import Rules from "./Rules";
import Permissions from "./Permissions";
import Commands from "./Commands";
import { enableExec } from "@/utils/constants";
export default {
2021-03-21 11:51:58 +00:00
name: "user",
data: () => {
return {
createUserDirData: false,
originalUserScope: "/",
};
},
components: {
Permissions,
Languages,
Rules,
2021-03-21 11:51:58 +00:00
Commands,
},
props: ["user", "createUserDir", "isNew", "isDefault"],
created() {
this.originalUserScope = this.user.scope;
this.createUserDirData = this.createUserDir;
},
computed: {
2021-03-21 11:51:58 +00:00
passwordPlaceholder() {
return this.isNew ? "" : this.$t("settings.avoidChanges");
2020-10-01 14:45:24 +00:00
},
scopePlaceholder() {
return this.createUserDir
? this.$t("settings.userScopeGenerationPlaceholder")
: "";
},
displayHomeDirectoryCheckbox() {
return this.isNew && this.createUserDir;
},
2021-03-21 11:51:58 +00:00
isExecEnabled: () => enableExec,
},
watch: {
2021-03-21 11:51:58 +00:00
"user.perm.admin": function () {
if (!this.user.perm.admin) return;
this.user.lockPassword = false;
},
createUserDirData() {
this.user.scope = this.createUserDirData ? "" : this.originalUserScope;
},
2021-03-21 11:51:58 +00:00
},
};
</script>