feat: Add Guest Mode at settings

This commit is contained in:
langren1353 2023-08-10 20:45:52 +08:00
parent 184b7c14f2
commit f8a55aa972
30 changed files with 89 additions and 9 deletions

View File

@ -25,7 +25,7 @@
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
max-width: 16em;
max-width: 17em;
width: 90%;
}

View File

@ -102,6 +102,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "Create an account",
"loginInstead": "Already have an account",
"password": "كلمة المرور",
@ -165,6 +166,7 @@
"allowEdit": "تعديل، إعادة تسمية وحذف الملفات والمجلدات",
"allowNew": "إنشاء ملفات ومجلدات جديدة",
"allowPublish": "نشر مقالات وصفحات جديدة",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "Allow users to signup",
"avoidChanges": "(أتركه فارغاً إن لم ترد تغييره)",
"branding": "Branding",

View File

@ -108,6 +108,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "Account erstellen",
"loginInstead": "Account besteht bereits",
"password": "Passwort",
@ -174,6 +175,7 @@
"allowEdit": "Bearbeiten, Umbenennen und Löschen von Dateien oder Ordnern",
"allowNew": "Erstellen neuer Dateien und Ordner",
"allowPublish": "Veröffentlichen von neuen Beiträgen und Seiten",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "Erlaube Benutzern sich zu registrieren",
"avoidChanges": "(leer lassen um Änderungen zu vermeiden)",
"branding": "Design",

View File

@ -110,6 +110,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "Create an account",
"loginInstead": "Already have an account",
"password": "Password",
@ -176,6 +177,7 @@
"allowEdit": "Edit, rename and delete files or directories",
"allowNew": "Create new files and directories",
"allowPublish": "Publish new posts and pages",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "Allow users to signup",
"avoidChanges": "(leave blank to avoid changes)",
"branding": "Branding",

View File

@ -108,6 +108,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "Crear una cuenta",
"loginInstead": "Usuario ya existente",
"password": "Contraseña",
@ -174,6 +175,7 @@
"allowEdit": "Editar, renombrar y borrar archivos o carpetas",
"allowNew": "Crear nuevos archivos y carpetas",
"allowPublish": "Publicar nuevos posts y páginas",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "Permitir registro de usuarios",
"avoidChanges": "(dejar en blanco para evitar cambios)",
"branding": "Marca",

View File

@ -108,6 +108,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "Créer un compte",
"loginInstead": "Vous avez déjà un compte",
"password": "Mot de passe",
@ -174,6 +175,7 @@
"allowEdit": "Editer, renommer et supprimer des fichiers ou des dossiers",
"allowNew": "Créer de nouveaux fichiers et dossiers",
"allowPublish": "Publier de nouveaux posts et pages",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "Autoriser les utilisateurs à s'inscrire",
"avoidChanges": "(Laisser vide pour conserver l'actuel)",
"branding": "Image de marque",

View File

@ -108,6 +108,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "צור חשבון",
"loginInstead": "חשבון קיים",
"password": "סיסמא",
@ -174,6 +175,7 @@
"allowEdit": "ערוך, שנה שם ומחק קבצים או תקיות",
"allowNew": "צור קבצים ותקיות חדשות",
"allowPublish": "פרסם פוסטים ודפים חדשים",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "אפשר למשתמשים להירשם",
"avoidChanges": "(השאר ריק כדי למנוע שינויים)",
"branding": "מיתוג",

View File

@ -108,6 +108,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "Fiók létrehozása",
"loginInstead": "Már van fiókom",
"password": "Jelszó",
@ -174,6 +175,7 @@
"allowEdit": "Fájlok és mappák szerkesztése, átnevezése és törlése",
"allowNew": "Új fájlok és mappák létrehozása",
"allowPublish": "Új bejegyzések és oldalak létrehozása",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "Felhasználók regisztrációjának engedélyezése",
"avoidChanges": "(üresen hagyva nincs változás)",
"branding": "Márkázás",

View File

@ -102,6 +102,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "Búa til nýjan aðgang",
"loginInstead": "Þú ert þegar með aðgang",
"password": "Lykilorð",
@ -165,6 +166,7 @@
"allowEdit": "Breyta, endurnefna og eyða skjölum eða möppum",
"allowNew": "Búa til ný skjöl og möppur",
"allowPublish": "Gefa út nýjar færslur og síður",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "Leyfa nýjum notendum að skrá sig",
"avoidChanges": "(engar breytingar ef ekkert er skrifað)",
"branding": "Útlit",

View File

@ -102,6 +102,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "Crea un account",
"loginInstead": "Hai già un account",
"password": "Password",
@ -165,6 +166,7 @@
"allowEdit": "Modifica, rinomina ed elimina file o cartelle",
"allowNew": "Crea nuovi files o cartelle",
"allowPublish": "Pubblica nuovi post e pagine",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "Permetti agli utenti di registrarsi",
"avoidChanges": "(lascia vuoto per evitare cambiamenti)",
"branding": "Branding",

View File

@ -102,6 +102,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "Create an account",
"loginInstead": "Already have an account",
"password": "パスワード",
@ -165,6 +166,7 @@
"allowEdit": "ファイルやディレクトリの編集、名前変更と削除",
"allowNew": "ファイルとディレクトリの作成",
"allowPublish": "ポストとぺーじの発表",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "Allow users to signup",
"avoidChanges": "(変更を避けるために空白にしてください)",
"branding": "Branding",

View File

@ -102,6 +102,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "계정 생성",
"loginInstead": "이미 계정이 있습니다",
"password": "비밀번호",
@ -165,6 +166,7 @@
"allowEdit": "파일/디렉토리의 수정/변경/삭제 허용",
"allowNew": "파일/디렉토리 생성 허용",
"allowPublish": "새 포스트/페이지 생성 허용",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "사용자 가입 허용",
"avoidChanges": "(수정하지 않으면 비워두세요)",
"branding": "브랜딩",

View File

@ -102,6 +102,7 @@
"zhTW": "Chinees (traditioneel)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "Account aanmaken",
"loginInstead": "Heeft al een account",
"password": "Wachtwoord",
@ -165,6 +166,7 @@
"allowEdit": "Bestanden of mappen aanpassen, hernoemen of verwijderen",
"allowNew": "Nieuwe bestanden of mappen aanmaken",
"allowPublish": "Publiceer nieuwe berichten en pagina's",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "Sta gebruikers toe om zich te registreren",
"avoidChanges": "(laat leeg om wijzigingen te voorkomen)",
"branding": "Branding",

View File

@ -102,6 +102,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "Utwórz konto",
"loginInstead": "Takie konto już istnieje",
"password": "Hasło",
@ -166,6 +167,7 @@
"allowEdit": "Edycja, zmiana nazwy i usuniecie plików lub folderów",
"allowNew": "Tworzenie nowych plików lub folderów",
"allowPublish": "Tworzenie nowych wpisów i stron",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "Zezwól na rejestrację użytkowników",
"avoidChanges": "(pozostaw puste aby nie zosatało zmienione)",
"branding": "Branding",

View File

@ -108,6 +108,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "Criar uma conta",
"loginInstead": "Já possui uma conta",
"password": "Senha",
@ -174,6 +175,7 @@
"allowEdit": "Editar, renomear e apagar arquivos ou pastas",
"allowNew": "Criar novos arquivos e pastas",
"allowPublish": "Publicar novas páginas e conteúdos",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "Permitir cadastro de usuários",
"avoidChanges": "(deixe em branco para manter)",
"branding": "Customização",

View File

@ -102,6 +102,7 @@
"zhTW": "Chinês tradicional"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "Criar uma conta",
"loginInstead": "Já tenho uma conta",
"password": "Palavra-passe",
@ -165,6 +166,7 @@
"allowEdit": "Editar, renomear e eliminar ficheiros ou pastas",
"allowNew": "Criar novos ficheiros e pastas",
"allowPublish": "Publicar novas páginas e conteúdos",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "Permitir que os utilizadores criem contas",
"avoidChanges": "(deixe em branco para manter)",
"branding": "Marca",

View File

@ -102,6 +102,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "Crează cont",
"loginInstead": "Am deja cont",
"password": "Parola",
@ -165,6 +166,7 @@
"allowEdit": "Modifică, redenumește și șterge fișiere sau directoare",
"allowNew": "Crează noi fișiere sau directoare",
"allowPublish": "Publică noi pagini și postări",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "Permite utilizatorilor să se înregistreze",
"avoidChanges": "(lasă gol pentru a nu schimba)",
"branding": "Branding",

View File

@ -108,6 +108,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "Создать аккаунт",
"loginInstead": "Уже есть аккаунт",
"password": "Пароль",
@ -173,6 +174,7 @@
"allowEdit": "Редактирование, переименование и удаление файлов или каталогов",
"allowNew": "Создание новых файлов или каталогов",
"allowPublish": "Публикация новых записей и страниц",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "Разрешить пользователям регистрироваться",
"avoidChanges": "(оставьте поле пустым, чтобы избежать изменений)",
"branding": "Брендинг",

View File

@ -108,6 +108,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "Vytvoriť účet",
"loginInstead": "Už mám účet",
"password": "Heslo",
@ -173,6 +174,7 @@
"allowEdit": "Upravovať, premenovať a odstraňovať súbory a priečinky",
"allowNew": "Vytvárať nové súbory a priečinky",
"allowPublish": "Zverejňovať nové príspevky a stránky",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "Povoliť registráciu používateľov",
"avoidChanges": "(nechajte prázdne, aby sa nezmenilo)",
"branding": "Vlastný vzhľad",

View File

@ -102,6 +102,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "Skapa ett konto",
"loginInstead": "Du har redan ett konto",
"password": "Lösenord",
@ -165,6 +166,7 @@
"allowEdit": "Ändra, döp om och ta bort filer eller mappar",
"allowNew": "Skapa nya filer eller mappar",
"allowPublish": "Publicera nya inlägg och sidor",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "Tillåt användare att registrera sig",
"avoidChanges": "(lämna blankt för att undvika ändringar)",
"branding": "Varumärke",

View File

@ -106,6 +106,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "Bir hesap oluşturun",
"loginInstead": "Zaten hesabınız var mı",
"password": "Şifre",
@ -171,6 +172,7 @@
"allowEdit": "Dosyaları veya dizinleri düzenleyin, yeniden adlandırın ve silin",
"allowNew": "Yeni dosyalar ve dizinler oluşturun",
"allowPublish": "Yeni linkler ve sayfaları yayınlayın",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "Kullanıcıların kaydolmasına izin ver",
"avoidChanges": "(değişiklikleri önlemek için boş bırakın)",
"branding": "Marka",

View File

@ -108,6 +108,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "Guest mod on, buuto login failed",
"createAnAccount": "Створити обліковий запис",
"loginInstead": "Вже є обліковий запис",
"password": "Пароль",
@ -173,7 +174,8 @@
"allowEdit": "Редагування, перейменування та видалення файлів чи каталогів",
"allowNew": "Створення нових файлів або каталогів",
"allowPublish": "Публікація нових записів та сторінок",
"allowSignup": "Дозволити користувачам реєструватися",
"enableGuest": "Open guest mod & guest auto login (Please add userguest/guest and permission)",
"allowSignup": "Дозволити користувачам реєструватися",
"avoidChanges": "(залишіть поле порожнім, щоб уникнути змін)",
"branding": "Брендинг",
"brandingDirectoryPath": "Шлях до каталогу брендів",

View File

@ -108,6 +108,7 @@
"zhTW": "中文(繁體)"
},
"login": {
"guestLoginFail": "已开启guest模式但无法自动登录",
"createAnAccount": "创建用户",
"loginInstead": "已有用户登录",
"password": "密码",
@ -173,6 +174,7 @@
"allowEdit": "编辑、重命名或删除文件/目录",
"allowNew": "创建新文件和目录",
"allowPublish": "发布新的帖子与页面",
"enableGuest": "开启Guest模式并自动登录注意手动添加用户guest/guest并注意权限",
"allowSignup": "允许用户注册",
"avoidChanges": "(留空以避免更改)",
"branding": "品牌",

View File

@ -102,6 +102,7 @@
"zhTW": "中文 (繁體)"
},
"login": {
"guestLoginFail": "已開啟guest模式但無法自動登錄",
"createAnAccount": "新建賬戶",
"loginInstead": "已有賬戶登錄",
"password": "密碼",
@ -165,6 +166,7 @@
"allowEdit": "編輯、重命名或刪除檔案/目錄",
"allowNew": "創建新檔案和目錄",
"allowPublish": "發佈新的貼文與頁面",
"enableGuest": "開啟Guest模式並自動登錄註意手動添加用戶guest/guest並註意權限",
"allowSignup": "允許使用者註冊",
"avoidChanges": "(留空以避免更改)",
"branding": "品牌",

View File

@ -6,6 +6,7 @@ const staticURL = window.FileBrowser.StaticURL;
const recaptcha = window.FileBrowser.ReCaptcha;
const recaptchaKey = window.FileBrowser.ReCaptchaKey;
const signup = window.FileBrowser.Signup;
const enableGuest = window.FileBrowser.EnableGuest;
const version = window.FileBrowser.Version;
const logoURL = `${staticURL}/img/logo.svg`;
const noAuth = window.FileBrowser.NoAuth;
@ -27,6 +28,7 @@ export {
logoURL,
recaptcha,
recaptchaKey,
enableGuest,
signup,
version,
noAuth,

View File

@ -51,14 +51,25 @@ import {
recaptcha,
recaptchaKey,
signup,
enableGuest,
} from "@/utils/constants";
let isFromLogOut = false;
export default {
name: "login",
computed: {
enableGuest: () => enableGuest,
signup: () => signup,
name: () => name,
logoURL: () => logoURL,
redirectURL() {
let redirect = this.$route.query.redirect;
if (redirect === "" || redirect === undefined || redirect === null) {
redirect = "/files/";
}
return redirect;
},
},
data: function () {
return {
@ -70,6 +81,22 @@ export default {
passwordConfirm: "",
};
},
beforeRouteEnter(to, from, next) {
if (from.path.startsWith("/files")) {
isFromLogOut = true;
}
next();
},
async beforeMount() {
if (this.enableGuest && !isFromLogOut) {
try {
await auth.login("guest", "guest", "");
await this.$router.push({ path: this.redirectURL });
} catch (e) {
this.error = this.$t("login.guestLoginFail");
}
}
},
mounted() {
if (!recaptcha) return;
@ -87,11 +114,6 @@ export default {
event.preventDefault();
event.stopPropagation();
let redirect = this.$route.query.redirect;
if (redirect === "" || redirect === undefined || redirect === null) {
redirect = "/files/";
}
let captcha = "";
if (recaptcha) {
captcha = window.grecaptcha.getResponse();
@ -115,9 +137,10 @@ export default {
}
await auth.login(this.username, this.password, captcha);
this.$router.push({ path: redirect });
this.$router.push({ path: this.redirectURL });
} catch (e) {
if (e.message == 409) {
console.error(e);
if (e.message === 409) {
this.error = this.$t("login.usernameTaken");
} else {
this.error = this.$t("login.wrongCredentials");

View File

@ -8,6 +8,10 @@
</div>
<div class="card-content">
<p>
<input type="checkbox" v-model="settings.enableGuest" />
{{ $t("settings.enableGuest") }}
</p>
<p>
<input type="checkbox" v-model="settings.signup" />
{{ $t("settings.allowSignup") }}

View File

@ -9,6 +9,7 @@ import (
)
type settingsData struct {
EnableGuest bool `json:"enableGuest"`
Signup bool `json:"signup"`
CreateUserDir bool `json:"createUserDir"`
UserHomeBasePath string `json:"userHomeBasePath"`
@ -22,6 +23,7 @@ type settingsData struct {
var settingsGetHandler = withAdmin(func(w http.ResponseWriter, r *http.Request, d *data) (int, error) {
data := &settingsData{
EnableGuest: d.settings.EnableGuest,
Signup: d.settings.Signup,
CreateUserDir: d.settings.CreateUserDir,
UserHomeBasePath: d.settings.UserHomeBasePath,
@ -43,6 +45,7 @@ var settingsPutHandler = withAdmin(func(w http.ResponseWriter, r *http.Request,
return http.StatusBadRequest, err
}
d.settings.EnableGuest = req.EnableGuest
d.settings.Signup = req.Signup
d.settings.CreateUserDir = req.CreateUserDir
d.settings.UserHomeBasePath = req.UserHomeBasePath

View File

@ -34,6 +34,7 @@ func handleWithStaticData(w http.ResponseWriter, _ *http.Request, d *data, fSys
"BaseURL": d.server.BaseURL,
"Version": version.Version,
"StaticURL": path.Join(d.server.BaseURL, "/static"),
"EnableGuest": d.settings.EnableGuest,
"Signup": d.settings.Signup,
"NoAuth": d.settings.AuthMethod == auth.MethodNoAuth,
"AuthMethod": d.settings.AuthMethod,

View File

@ -15,6 +15,7 @@ type AuthMethod string
// Settings contain the main settings of the application.
type Settings struct {
Key []byte `json:"key"`
EnableGuest bool `json:"enableGuest"`
Signup bool `json:"signup"`
CreateUserDir bool `json:"createUserDir"`
UserHomeBasePath string `json:"userHomeBasePath"`