feat!: allow registration of multiple users (#340)

feat: administration area
feat: add reset password functionality
This commit is contained in:
Miguel Ribeiro
2024-05-26 23:30:51 +02:00
committed by GitHub
parent 57b5c3deec
commit e1006e5823
90 changed files with 3131 additions and 867 deletions
+4 -3
View File
@@ -8,6 +8,7 @@
$stmt->bindValue(':username', $username, SQLITE3_TEXT);
$result = $stmt->execute();
$userData = $result->fetchArray(SQLITE3_ASSOC);
$userId = $userData['id'];
if ($userData === false) {
header('Location: logout.php');
@@ -45,10 +46,10 @@
}
$userId = $userData['id'];
$main_currency = $userData['main_currency'];
$sql = "SELECT * FROM login_tokens WHERE user_id = ? AND token = ?";
$sql = "SELECT * FROM login_tokens WHERE user_id = :userId AND token = :token";
$stmt = $db->prepare($sql);
$stmt->bindParam(1, $userId, SQLITE3_TEXT);
$stmt->bindParam(2, $token, SQLITE3_TEXT);
$stmt->bindParam(':userId', $userId, SQLITE3_TEXT);
$stmt->bindParam(':token', $token, SQLITE3_TEXT);
$result = $stmt->execute();
$row = $result->fetchArray(SQLITE3_ASSOC);
+8
View File
@@ -12,4 +12,12 @@ require_once 'i18n/languages.php';
require_once 'i18n/getlang.php';
require_once 'i18n/' . $lang . '.php';
session_start();
if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
$userId = $_SESSION['userId'];
} else {
$userId = 0;
}
?>
+14 -7
View File
@@ -1,24 +1,29 @@
<?php
$currencies = array();
$query = "SELECT * FROM currencies";
$result = $db->query($query);
$query = "SELECT * FROM currencies WHERE user_id = :userId";
$stmt = $db->prepare($query);
$stmt->bindValue(':userId', $userId, SQLITE3_INTEGER);
$result = $stmt->execute();
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
$currencyId = $row['id'];
$currencies[$currencyId] = $row;
}
$members = array();
$query = "SELECT * FROM household";
$result = $db->query($query);
$query = "SELECT * FROM household WHERE user_id = :userId";
$stmt = $db->prepare($query);
$stmt->bindValue(':userId', $userId, SQLITE3_INTEGER);
$result = $stmt->execute();
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
$memberId = $row['id'];
$members[$memberId] = $row;
}
$payment_methods = array();
$query = $db->prepare("SELECT * FROM payment_methods WHERE enabled=:enabled");
$query = $db->prepare("SELECT * FROM payment_methods WHERE enabled=:enabled AND user_id = :userId");
$query->bindValue(':enabled', 1, SQLITE3_INTEGER);
$query->bindValue(':userId', $userId, SQLITE3_INTEGER);
$result = $query->execute();
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
$payment_methodId = $row['id'];
@@ -26,8 +31,10 @@
}
$categories = array();
$query = "SELECT * FROM categories ORDER BY `order` ASC";
$result = $db->query($query);
$query = "SELECT * FROM categories WHERE user_id = :userId ORDER BY `order` ASC";
$stmt = $db->prepare($query);
$stmt->bindValue(':userId', $userId, SQLITE3_INTEGER);
$result = $stmt->execute();
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
$categoryId = $row['id'];
$categories[$categoryId] = $row;
+9 -4
View File
@@ -1,7 +1,10 @@
<?php
$query = "SELECT * FROM settings";
$result = $db->query($query);
$query = "SELECT * FROM settings WHERE user_id = :userId";
$stmt = $db->prepare($query);
$stmt->bindValue(':userId', $userId, SQLITE3_INTEGER);
$result = $stmt->execute();
$settings = $result->fetchArray(SQLITE3_ASSOC);
if ($settings) {
$cookieExpire = time() + (30 * 24 * 60 * 60);
@@ -14,8 +17,10 @@ if ($settings) {
$settings['hideDisabledSubscriptions'] = $settings['hide_disabled'] ? 'true': 'false';
}
$query = "SELECT * FROM custom_colors";
$result = $db->query($query);
$query = "SELECT * FROM custom_colors WHERE user_id = :userId";
$stmt = $db->prepare($query);
$stmt->bindValue(':userId', $userId, SQLITE3_INTEGER);
$result = $stmt->execute();
$customColors = $result->fetchArray(SQLITE3_ASSOC);
if ($customColors) {
+27
View File
@@ -10,6 +10,8 @@ $i18n = [
"main_currency" => "Hauptwährung",
"language" => "Sprache",
"passwords_dont_match" => "Die Passwörter stimmen nicht überein",
"username_exists" => "Benutzername existiert bereits",
"email_exists" => "E-Mail existiert bereits",
"registration_failed" => "Registrierung fehlgeschlagen, bitte erneut versuchen.",
"register" => "Registrieren",
"restore_database" => "Datenbank wiederherstellen",
@@ -18,6 +20,13 @@ $i18n = [
'stay_logged_in' => "Angemeldet bleiben (30 Tage)",
'login' => "Login",
'login_failed' => "Loginangaben sind nicht korrekt",
'registration_successful' => "Registrierung erfolgreich",
'user_email_waiting_verification' => "Ihre E-Mail muss noch verifiziert werden. Bitte überprüfen Sie Ihre E-Mail.",
// Password Reset Page
'forgot_password' => "Passwort vergessen?",
'reset_password' => "Passwort zurücksetzen",
'reset_sent_check_email' => "Passwort zurücksetzen E-Mail wurde gesendet. Bitte überprüfen Sie Ihr Postfach.",
'password_reset_successful' => "Passwort erfolgreich zurückgesetzt",
// Header
'subscriptions' => "Abonnements",
'stats' => "Statistiken",
@@ -255,6 +264,24 @@ $i18n = [
// User
"error_updating_user_data" => "Benutzerangaben konnten nicht aktualisiert werden.",
"user_details_saved" => "Benutzerangaben gespeichert",
// Admin Page
"registrations" => "Registrierungen",
"enable_user_registrations" => "Benutzerregistrierungen aktivieren",
"maximum_number_users" => "Maximale Anzahl an Benutzern",
"require_email_verification" => "E-Mail Verifizierung erforderlich",
"configure_smtp_settings_to_enable" => "Konfiguriere SMTP Einstellungen um dies zu aktivieren",
"server_url" => "Server URL",
"server_url_info" => "Wird für die E-Mail-Überprüfung und die Passwortwiederherstellung verwendet. Muss eine gültige öffentliche URL sein.",
"server_url_password_reset" => "Wenn diese Option gesetzt ist, wird auch die Funktion zum Zurücksetzen des Passworts aktiviert.",
"max_users_info" => "0 für unbegrenzte Anzahl an Benutzern",
"user_management" => "Benutzerverwaltung",
"delete_user" => "Benutzer löschen",
"delete_user_info" => "Durch das Löschen eines Benutzers werden auch alle seine Abonnements und Einstellungen gelöscht.",
"smtp_settings" => "SMTP Einstellungen",
"smtp_usage_info" => "Wird für die Passwortwiederherstellung und andere System-E-Mails verwendet",
// Email Verification
"email_verified" => "E-Mail verifiziert",
"email_verification_failed" => "E-Mail konnte nicht verifiziert werden",
];
+27
View File
@@ -10,6 +10,8 @@ $i18n = [
"main_currency" => "Κύριο νόμισμα",
"language" => "Γλώσσα",
"passwords_dont_match" => "Οι κωδικοί πρόσβασης δεν ταιριάζουν",
"username_exists" => "Το όνομα χρήστη υπάρχει ήδη",
"email_exists" => "Το email υπάρχει ήδη",
"registration_failed" => "Η εγγραφή απέτυχε, παρακαλώ προσπάθησε ξανά.",
"register" => "Εγγραφή",
"restore_database" => "Επαναφορά βάσης δεδομένων",
@@ -18,6 +20,13 @@ $i18n = [
'stay_logged_in' => "Μείνε συνδεδεμένος (30 ημέρες)",
'login' => "Σύνδεση",
'login_failed' => "Τα στοιχεία σύνδεσης είναι λανθασμένα",
'registration_successful' => "Επιτυχής Εγγραφή",
'user_email_waiting_verification' => "Το email σας πρέπει να επαληθευτεί. Παρακαλούμε ελέγξτε το email σας",
// Password Reset Page
'forgot_password' => "Ξέχασες τον κωδικό σου; Κάνε κλικ",
'reset_password' => "Επαναφορά κωδικού πρόσβασης",
'reset_sent_check_email' => "Ένα email με οδηγίες για την επαναφορά του κωδικού πρόσβασης σας έχει σταλεί. Παρακαλώ ελέγξτε το email σας.",
'password_reset_successful' => "Επιτυχής επαναφορά κωδικού πρόσβασης",
// Header
'subscriptions' => "Συνδρομές",
'stats' => "Στατιστικές",
@@ -255,6 +264,24 @@ $i18n = [
// User
"error_updating_user_data" => "Σφάλμα ενημέρωσης δεδομένων χρήστη.",
"user_details_saved" => "Αποθήκευση στοιχείων χρήστη",
// Admin Page
"registrations" => "Εγγραφές",
"enable_user_registrations" => "Ενεργοποίηση εγγραφών χρηστών",
"maximum_number_users" => "Μέγιστος αριθμός χρηστών",
"require_email_verification" => "Απαιτείται επιβεβαίωση email",
"configure_smtp_settings_to_enable" => "Διαμόρφωσε τις ρυθμίσεις SMTP για να ενεργοποιήσεις αυτή την επιλογή",
"server_url" => "Διεύθυνση URL διακομιστή",
"server_url_info" => "Χρησιμοποιείται για επαλήθευση email και ανάκτηση κωδικού πρόσβασης. Πρέπει να είναι ένα έγκυρο δημόσιο URL.",
"server_url_password_reset" => "Εάν οριστεί, θα ενεργοποιήσει επίσης τη λειτουργία επαναφοράς κωδικού πρόσβασης.",
"max_users_info" => "Ο μέγιστος αριθμός χρηστών που μπορούν να εγγραφούν. Αν η τιμή είναι 0, δεν υπάρχει όριο.",
"user_management" => "Διαχείριση χρηστών",
"delete_user" => "Διαγραφή χρήστη",
"delete_user_info" => "Η διαγραφή ενός χρήστη θα διαγράψει επίσης όλες τις συνδρομές και τις ρυθμίσεις του.",
"smtp_settings" => "SMTP ρυθμίσεις",
"smtp_usage_info" => "Θα χρησιμοποιηθεί για ανάκτηση κωδικού πρόσβασης και άλλα μηνύματα ηλεκτρονικού ταχυδρομείου συστήματος.",
// Email Verification
"email_verified" => "Το email επιβεβαιώθηκε",
"email_verification_failed" => "Η επαλήθευση email απέτυχε",
];
+28
View File
@@ -10,6 +10,8 @@ $i18n = [
"main_currency" => "Main Currency",
"language" => "Language",
"passwords_dont_match" => "Passwords do not match",
"username_exists" => "Username already exists",
"email_exists" => "Email already exists",
"registration_failed" => "Registration failed, please try again.",
"register" => "Register",
"restore_database" => "Restore Database",
@@ -18,6 +20,13 @@ $i18n = [
'stay_logged_in' => "Stay logged in (30 days)",
'login' => "Login",
'login_failed' => "Login details are incorrect",
'registration_successful' => "Registration successful",
'user_email_waiting_verification' => "Your email needs to be verified. Please check your email.",
// Password Reset Page
'forgot_password' => "Forgot Password",
'reset_password' => "Reset Password",
'reset_sent_check_email' => "Reset email sent. Please check your email.",
'password_reset_successful' => "Password reset successful",
// Header
'subscriptions' => "Subscriptions",
'stats' => "Statistics",
@@ -255,6 +264,25 @@ $i18n = [
// User
"error_updating_user_data" => "Error updating user data.",
"user_details_saved" => "User details saved",
// Admin Page
"registrations" => "Registrations",
"enable_user_registrations" => "Enable user registrations",
"maximum_number_users" => "Maximum number of users",
"require_email_verification" => "Require email verification",
"configure_smtp_settings_to_enable" => "Configure SMTP settings to enable",
"server_url" => "Server URL",
"server_url_info" => "Used for email verification and password recovery. Must be a valid public URL.",
"server_url_password_reset" => "If set will also enable password reset functionality.",
"max_users_info" => "0 means unlimited",
"user_management" => "User Management",
"delete_user" => "Delete User",
"delete_user_info" => "Deleting a user will also delete all their subscriptions and settings.",
"smtp_settings" => "SMTP Settings",
"smtp_usage_info" => "Will be used for password recovery and other system emails.",
// Email Verification
"email_verified" => "Email verified successfully",
"email_verification_failed" => "Email verification failed",
];
+27
View File
@@ -10,6 +10,8 @@ $i18n = [
"main_currency" => "Moneda Principal",
"language" => "Idioma",
"passwords_dont_match" => "Las contraseñas no coinciden",
"username_exists" => "El nombre de usuario ya existe",
"email_exists" => "El correo electrónico ya está registrado",
"registration_failed" => "Error en el registro, por favor inténtalo de nuevo.",
"register" => "Registrar",
"restore_database" => "Restaurar Base de Datos",
@@ -18,6 +20,13 @@ $i18n = [
'stay_logged_in' => "Mantener sesión iniciada (30 días)",
'login' => "Iniciar Sesión",
'login_failed' => "Los detalles de inicio de sesión son incorrectos",
'registration_successful' => "Registro efectuado con éxito",
'user_email_waiting_verification' => "Tu correo electrónico necesita ser verificado. Por favor, compruebe su correo electrónico",
// Password Reset Page
'forgot_password' => "¿Olvidaste tu contraseña?",
'reset_password' => "Restablecer Contraseña",
'reset_sent_check_email' => "Se ha enviado un correo electrónico con instrucciones para restablecer la contraseña. Por favor, compruebe su correo electrónico.",
'password_reset_successful' => "Contraseña restablecida con éxito",
// Header
'subscriptions' => "Suscripciones",
'stats' => "Estadísticas",
@@ -255,6 +264,24 @@ $i18n = [
// User
"error_updating_user_data" => "Error al actualizar los datos del usuario.",
"user_details_saved" => "Detalles del usuario guardados",
// Admin Page
"registrations" => "Registro de Usuarios",
"enable_user_registrations" => "Habilitar registro de usuarios",
"maximum_number_users" => "Número máximo de usuarios",
"require_email_verification" => "Requerir verificación de correo electrónico",
"configure_smtp_settings_to_enable" => "Configura la configuración SMTP para habilitar",
"server_url" => "URL del Servidor",
"server_url_info" => "Se utiliza para verificar el correo electrónico y recuperar la contraseña. Debe ser una URL pública válida.",
"server_url_password_reset" => "Si se configura, también se habilitará la función de restablecimiento de contraseña.",
"max_users_info" => "0 para ilimitado",
"user_management" => "Gestión de Usuarios",
"delete_user" => "Eliminar Usuario",
"delete_user_info" => "Al eliminar un usuario, también se eliminarán todas sus suscripciones y configuraciones.",
"smtp_settings" => "Configuración SMTP",
"smtp_usage_info" => "Se utilizará para recuperar contraseñas y otros correos electrónicos del sistema.",
// Email Verification
"email_verified" => "Correo electrónico verificado",
"email_verification_failed" => "Error al verificar el correo electrónico",
];
+27
View File
@@ -10,6 +10,8 @@ $i18n = [
"main_currency" => "Devise principale",
"language" => "Langue",
"passwords_dont_match" => "Les mots de passe ne correspondent pas",
"username_exists" => "Le nom d'utilisateur existe déjà",
"email_exists" => "L'adresse courriel existe déjà",
"registration_failed" => "L'inscription a échoué, veuillez réessayer.",
"register" => "S'inscrire",
"restore_database" => "Restaurer la base de données",
@@ -18,6 +20,13 @@ $i18n = [
'stay_logged_in' => "Rester connecté (30 jours)",
'login' => "Se connecter",
'login_failed' => "Les détails de connexion sont incorrects",
'registration_successful' => "Inscription réussie",
'user_email_waiting_verification' => "Votre email doit être vérifié. Veuillez vérifier votre email",
// Password Reset Page
'forgot_password' => "Mot de passe oublié",
'reset_password' => "Réinitialiser le mot de passe",
'reset_sent_check_email' => "Un courriel a été envoyé à l'adresse fournie. Vérifiez votre boîte de réception.",
'password_reset_successful' => "Réinitialisation du mot de passe réussie",
// En-tête
'subscriptions' => "Abonnements",
'stats' => "Statistiques",
@@ -255,6 +264,24 @@ $i18n = [
// Utilisateur
"error_updating_user_data" => "Erreur lors de la mise à jour des données utilisateur.",
"user_details_saved" => "Détails de l'utilisateur enregistrés",
// Admin Page
"registrations" => "Inscriptions",
"enable_user_registrations" => "Activer les inscriptions d'utilisateurs",
"maximum_number_users" => "Nombre maximum d'utilisateurs",
"require_email_verification" => "Exiger la vérification de l'adresse courriel",
"configure_smtp_settings_to_enable" => "Configurer les paramètres SMTP pour activer",
"server_url" => "URL du serveur",
"server_url_info" => "Utilisé pour la vérification du courrier électronique et la récupération du mot de passe. Il doit s'agir d'une URL publique valide.",
"server_url_password_reset" => "Si cette option est activée, la fonction de réinitialisation du mot de passe sera également activée.",
"max_users_info" => "0 signifie un nombre illimité d'utilisateurs",
"user_management" => "Gestion des utilisateurs",
"delete_user" => "Supprimer l'utilisateur",
"delete_user_info" => "La suppression d'un utilisateur supprimera également tous ses abonnements et paramètres.",
"smtp_settings" => "Paramètres SMTP",
"smtp_usage_info" => "Sera utilisé pour la récupération du mot de passe et d'autres e-mails système.",
// Email Verification
"email_verified" => "Votre adresse courriel a été vérifiée avec succès",
"email_verification_failed" => "La vérification de l'adresse courriel a échoué",
];
+30
View File
@@ -10,6 +10,8 @@ $i18n = [
'main_currency' => 'Valuta principale',
'language' => 'Lingua',
'passwords_dont_match' => 'Le password non corrispondono',
'username_exists' => 'Il nome utente esiste già',
'email_exists' => 'L\'indirizzo email esiste già',
'registration_failed' => 'Registrazione fallita, riprova.',
'register' => 'Registrati',
"restore_database" => 'Ripristina database',
@@ -19,6 +21,14 @@ $i18n = [
'stay_logged_in' => 'Rimani connesso (30 giorni)',
'login' => 'Accedi',
'login_failed' => 'Le credenziali non sono corrette',
'registration_successful' => "L'account è stato creato con successo",
'user_email_waiting_verification' => "L'e-mail deve essere verificata. Controlla la tua email",
// Password Reset Page
'forgot_password' => "Hai dimenticato la password?",
'reset_password' => "Reimposta password",
'reset_sent_check_email' => "Un'email è stata inviata. Controlla la tua casella di posta",
'password_reset_successful' => "La password è stata reimpostata con successo",
// Header
'subscriptions' => 'Abbonamenti',
@@ -269,6 +279,26 @@ $i18n = [
// User
"error_updating_user_data" => "Errore nell'aggiornamento dei dati utente",
"user_details_saved" => "Dettagli utente salvati",
// Admin Page
"registrations" => "Registrazioni",
"enable_user_registrations" => "Abilita le registrazioni utente",
"maximum_number_users" => "Numero massimo di utenti",
"require_email_verification" => "Richiedi la verifica dell'e-mail",
"configure_smtp_settings_to_enable" => "Configura le impostazioni SMTP per abilitare",
"server_url" => "URL del server",
"server_url_info" => "Utilizzato per la verifica dell'e-mail e il recupero della password. Deve essere un URL pubblico valido.",
"server_url_password_reset" => "Se impostato, abilita anche la funzionalità di reimpostazione della password.",
"max_users_info" => "Impostare a 0 per un numero illimitato di utenti",
"user_management" => "Gestione utenti",
"delete_user" => "Elimina utente",
"delete_user_info" => "L'eliminazione di un utente eliminerà anche tutte le sue iscrizioni e impostazioni.",
"smtp_settings" => "Impostazioni SMTP",
"smtp_usage_info" => "Verrà utilizzato per il recupero della password e altre e-mail di sistema.",
// Email Verification
"email_verified" => "L'indirizzo email è stato verificato con successo",
"email_verification_failed" => "La verifica dell'email è fallita",
];
?>
+27
View File
@@ -10,6 +10,8 @@ $i18n = [
"main_currency" => "主要通貨",
"language" => "言語",
"passwords_dont_match" => "パスワードが違います",
"username_exists" => "ユーザー名が既に存在します",
"email_exists" => "メールアドレスが既に存在します",
"registration_failed" => "登録に失敗しました。もう一度お試しください。",
"register" => "登録する",
"restore_database" => "データベースをリストア",
@@ -18,6 +20,13 @@ $i18n = [
'stay_logged_in' => "ログインしたままにする (30日)",
'login' => "ログイン",
'login_failed' => "ログイン情報が間違っています",
'registration_successful' => "登録に成功",
'user_email_waiting_verification' => "Eメールの確認が必要です。メールを確認してください。",
// Password Reset Page
'forgot_password' => "パスワードを忘れた場合",
'reset_password' => "パスワードをリセット",
'reset_sent_check_email' => "パスワードリセットリンクが送信されました。メールを確認してください。",
'password_reset_successful' => "パスワードリセットに成功",
// Header
'subscriptions' => "定期購入",
'stats' => "統計",
@@ -255,6 +264,24 @@ $i18n = [
// User
"error_updating_user_data" => "ユーザデータの更新エラー",
"user_details_saved" => "ユーザー詳細の保存",
// Admin Page
"registrations" => "登録",
"enable_user_registrations" => "ユーザー登録を有効にする",
"maximum_number_users" => "最大ユーザ数",
"require_email_verification" => "メール確認を必要とする",
"configure_smtp_settings_to_enable" => "SMTP設定を構成して有効にする",
"server_url" => "サーバーURL",
"server_url_info" => "電子メール認証とパスワード回復に使用される。有効な公開URLでなければなりません。",
"server_url_password_reset" => "設定すると、パスワードリセット機能も有効になる。",
"max_users_info" => "0に設定すると無制限になります",
"user_management" => "ユーザー管理",
"delete_user" => "ユーザーを削除",
"delete_user_info" => "ユーザーを削除すると、そのユーザーのサブスクリプションと設定もすべて削除されます。",
"smtp_settings" => "SMTP設定",
"smtp_usage_info" => "パスワードの回復やその他のシステム電子メールに使用されます。",
// Email Verification
"email_verified" => "メールアドレスが確認されました",
"email_verification_failed" => "メールアドレスの確認に失敗しました",
];
+27
View File
@@ -10,6 +10,8 @@ $i18n = [
"main_currency" => "기본 통화",
"language" => "언어",
"passwords_dont_match" => "비밀번호가 일치하지 않습니다.",
"username_exists" => "이미 존재하는 유저명입니다.",
"email_exists" => "이미 존재하는 이메일입니다.",
"registration_failed" => "회원가입 실패. 다시 시도해 주세요.",
"register" => "회원가입",
"restore_database" => "데이터베이스 복구",
@@ -18,6 +20,13 @@ $i18n = [
'stay_logged_in' => "로그인 유지 (30일)",
'login' => "로그인",
'login_failed' => "로그인 정보가 부정확합니다.",
'registration_successful' => "등록 성공",
'user_email_waiting_verification' => "이메일을 인증해야 합니다. 이메일을 확인해 주세요.",
// Password Reset Page
'forgot_password' => "비밀번호를 잊으셨나요?",
'reset_password' => "비밀번호 재설정",
'reset_sent_check_email' => "비밀번호 재설정 이메일이 전송되었습니다. 이메일을 확인해 주세요.",
'password_reset_successful' => "비밀번호 재설정 성공",
// Header
'subscriptions' => "구독",
'stats' => "통계",
@@ -255,6 +264,24 @@ $i18n = [
// User
"error_updating_user_data" => "유저 데이터 갱신 실패.",
"user_details_saved" => "유저 세부정보 저장 성공",
// Admin Page
"registrations" => "회원가입",
"enable_user_registrations" => "유저 회원가입 활성화",
"maximum_number_users" => "최대 유저 수",
"require_email_verification" => "이메일 인증 필요",
"configure_smtp_settings_to_enable" => "SMTP 설정을 구성하여 이메일 인증을 활성화합니다.",
"server_url" => "서버 URL",
"server_url_info" => "이메일 인증 및 비밀번호 복구에 사용됩니다. 유효한 공개 URL이어야 합니다.",
"server_url_password_reset" => "설정하면 비밀번호 재설정 기능도 활성화됩니다.",
"max_users_info" => "0으로 설정하면 무제한으로 설정됩니다.",
"user_management" => "유저 관리",
"delete_user" => "유저 삭제",
"delete_user_info" => "사용자를 삭제하면 모든 구독 및 설정도 삭제됩니다.",
"smtp_settings" => "SMTP 설정",
"smtp_usage_info" => "비밀번호 복구 및 기타 시스템 이메일에 사용됩니다.",
// Email Verification
"email_verified" => "이메일 인증 완료",
"email_verification_failed" => "이메일 인증 실패",
];
+27
View File
@@ -10,6 +10,8 @@ $i18n = [
"main_currency" => "Główna waluta",
"language" => "Język",
"passwords_dont_match" => "Hasła nie pasują",
"username_exists" => "Nazwa użytkownika już istnieje",
"email_exists" => "E-mail już istnieje",
"registration_failed" => "Rejestracja nie powiodła się, spróbuj ponownie.",
"register" => "Rejestracja",
"restore_database" => "Przywróć bazę danych",
@@ -18,6 +20,13 @@ $i18n = [
'stay_logged_in' => "Pozostań zalogowany (30 dni)",
'login' => "Zaloguj się",
'login_failed' => "Dane logowania są nieprawidłowe",
'registration_successful' => "Pomyślnie zarejestrowano",
'user_email_waiting_verification' => "Twój adres e-mail musi zostać zweryfikowany. Sprawdź swój adres e-mail",
// Password Reset Page
'forgot_password' => "Zapomniałeś hasła? Kliknij tutaj",
'reset_password' => "Zresetuj hasło",
'reset_sent_check_email' => "Link do zresetowania hasła został wysłany na Twój adres e-mail",
'password_reset_successful' => "Hasło zostało zresetowane pomyślnie",
// Header
'subscriptions' => "Subskrypcje",
'stats' => "Statystyki",
@@ -255,6 +264,24 @@ $i18n = [
// User
"error_updating_user_data" => "Błąd podczas aktualizacji danych użytkownika.",
"user_details_saved" => "Dane użytkownika zostały zapisane",
// Admin Page
"registrations" => "Rejestracje",
"enable_user_registrations" => "Włącz rejestracje użytkowników",
"maximum_number_users" => "Maksymalna liczba użytkowników",
"require_email_verification" => "Wymagaj weryfikacji e-maila",
"configure_smtp_settings_to_enable" => "Skonfiguruj ustawienia SMTP, aby włączyć",
"server_url" => "Adres URL serwera",
"server_url_info" => "Służy do weryfikacji adresu e-mail i odzyskiwania hasła. Musi to być prawidłowy publiczny adres URL.",
"server_url_password_reset" => "Jeśli zostanie ustawiona, włączy również funkcję resetowania hasła.",
"max_users_info" => "Jeśli ustawisz 0, nie będzie limitu użytkowników.",
"user_management" => "Zarządzanie użytkownikami",
"delete_user" => "Usuń użytkownika",
"delete_user_info" => "Usunięcie użytkownika spowoduje również usunięcie wszystkich jego subskrypcji i ustawień.",
"smtp_settings" => "Ustawienia SMTP",
"smtp_usage_info" => "Będzie używany do odzyskiwania hasła i innych e-maili systemowych.",
// Email Verification
"email_verified" => "E-mail został zweryfikowany",
"email_verification_failed" => "Weryfikacja e-maila nie powiodła się",
];
+27
View File
@@ -10,6 +10,8 @@ $i18n = [
"main_currency" => "Moeda Principal",
"language" => "Linguagem",
"passwords_dont_match" => "As passwords não coincidem",
"username_exists" => "Nome de utilizador já existe",
"email_exists" => "Email já existe",
"registration_failed" => "O registo falhou. Tente novamente",
"register" => "Registar",
"restore_database" => "Restaurar base de dados",
@@ -18,6 +20,13 @@ $i18n = [
'stay_logged_in' => "Manter sessão (30 dias)",
'login' => "Iniciar Sessão",
'login_failed' => "Dados de autenticação incorrectos",
'registration_successful' => "Registo efectuado com sucesso.",
'user_email_waiting_verification' => "O seu e-mail precisa de ser validado. Verifique o seu correio eletrónico",
// Password Reset Page
'forgot_password' => "Esqueceu-se da password?",
'reset_password' => "Repor Password",
'reset_sent_check_email' => "Pedido de reposição de password enviado. Verifique o seu email.",
'password_reset_successful' => "Password reposta com sucesso",
// Header
'subscriptions' => "Subscrições",
'stats' => "Estatísticas",
@@ -255,6 +264,24 @@ $i18n = [
// User
"error_updating_user_data" => "Erro ao actualizar dados do utilizador.",
"user_details_saved" => "Dados do utiliador actualizados.",
// Admin Page
"registrations" => "Registos",
"enable_user_registrations" => "Activar Registos de Utilizadores",
"maximum_number_users" => "Número Máximo de Utilizadores",
"require_email_verification" => "Requerer verificação de email",
"configure_smtp_settings_to_enable" => "Configure as definições SMTP para activar esta funcionalidade.",
"server_url" => "URL do Servidor",
"server_url_info" => "Usado para gerar links de verificação de email. Deve ser um URL público e válido.",
"server_url_password_reset" => "Se definido, também activará a funcionalidade de reposição da palavra-passe.",
"max_users_info" => "0 para ilimitado",
"user_management" => "Gestão de Utilizadores",
"delete_user" => "Apagar Utilizador",
"delete_user_info" => "Apagar utilizador irá remover todas as suas subscrições e dados associados.",
"smtp_settings" => "Definições SMTP",
"smtp_usage_info" => "Será usado para recuperações de password e outros emails do sistema.",
// Email Verification
"email_verified" => "Email verificado",
"email_verification_failed" => "Verificação de email falhou",
];
+27
View File
@@ -10,6 +10,8 @@ $i18n = [
"main_currency" => "Moeda principal",
"language" => "Idioma",
"passwords_dont_match" => "As senhas não são iguais",
"username_exists" => "O nome de usuário já existe",
"email_exists" => "O email já está em uso",
"registration_failed" => "O registro falhou. Por favor, tente novamente",
"register" => "Registrar",
"restore_database" => "Restaurar banco de dados",
@@ -18,6 +20,13 @@ $i18n = [
'stay_logged_in' => "Me manter logado (30 dias)",
'login' => "Login",
'login_failed' => "As informações de login estão incorretas",
'registration_successful' => "Registro bem-sucedido",
'user_email_waiting_verification' => "Seu e-mail precisa ser validado. Por favor, verifique seu e-mail",
// Password Reset Page
'forgot_password' => "Esqueceu a senha?",
'reset_password' => "Redefinir senha",
'reset_sent_check_email' => "Redefinição de senha enviada. Por favor, verifique seu email",
'password_reset_successful' => "Senha redefinida com sucesso",
// Header
'subscriptions' => "Assinaturas",
'stats' => "Estatísticas",
@@ -253,6 +262,24 @@ $i18n = [
// User
"error_updating_user_data" => "Erro ao atualizar os dados do usuário",
"user_details_saved" => "Dados do usuário salvos",
// Admin Page
"registrations" => "Registros",
"enable_user_registrations" => "Ativar registros de usuários",
"maximum_number_users" => "Número máximo de usuários",
"require_email_verification" => "Requerer verificação de email",
"configure_smtp_settings_to_enable" => "Configure as configurações SMTP para ativar o envio de email",
"server_url" => "URL do servidor",
"server_url_info" => "Será usado para gerar links de verificação de email, deve ser um endereço público e válido.",
"server_url_password_reset" => "Se definido, também ativará a funcionalidade de redefinição de senha.",
"max_users_info" => "0 para ilimitado",
"user_management" => "Gerenciamento de usuários",
"delete_user" => "Excluir usuário",
"delete_user_info" => "Excluir um usuário também excluirá todas as assinaturas e dados associados",
"smtp_settings" => "Configurações SMTP",
"smtp_usage_info" => "Será usado para recuperação de senha e outros e-mails do sistema.",
// Email Verification
"email_verified" => "Email verificado",
"email_verification_failed" => "Falha na verificação do email",
];
+27
View File
@@ -10,6 +10,8 @@ $i18n = [
"main_currency" => "Основная валюта",
"language" => "Язык",
"passwords_dont_match" => "Пароли не совпадают",
"username_exists" => "Имя пользователя уже существует",
"email_exists" => "E-mail уже существует",
"registration_failed" => "Регистрация не удалась, попробуйте еще раз.",
"register" => "Регистрация",
"restore_database" => "Восстановить базу данных",
@@ -18,6 +20,13 @@ $i18n = [
'stay_logged_in' => "Оставаться в системе (30 дней)",
'login' => "Авторизоваться",
'login_failed' => "Данные для входа неверны",
'registration_successful' => "Регистрация прошла успешно",
'user_email_waiting_verification' => "Ваша электронная почта нуждается в проверке. Пожалуйста, проверьте свою электронную почту",
// Password Reset Page
'forgot_password' => "Забыли пароль?",
'reset_password' => "Сбросить пароль",
'reset_sent_check_email' => "Ссылка для сброса пароля отправлена на вашу электронную почту",
'password_reset_successful' => "Пароль успешно сброшен",
// Header
'subscriptions' => "Подписки",
'stats' => "Статистика",
@@ -255,6 +264,24 @@ $i18n = [
// User
"error_updating_user_data" => "Ошибка обновления пользовательских данных.",
"user_details_saved" => "Данные пользователя сохранены.",
// Admin Page
"registrations" => "Регистрации",
"enable_user_registrations" => "Включить регистрацию пользователей",
"maximum_number_users" => "Максимальное количество пользователей",
"require_email_verification" => "Требовать подтверждение по электронной почте",
"configure_smtp_settings_to_enable" => "Настройте SMTP, чтобы включить эту функцию.",
"server_url" => "URL-адрес сервера",
"server_url_info" => "Используется для проверки электронной почты и восстановления пароля. Должен быть действительным публичным URL.",
"server_url_password_reset" => "Если этот параметр установлен, он также включает функцию сброса пароля.",
"max_users_info" => "Установите 0 для неограниченного количества пользователей.",
"user_management" => "Управление пользователями",
"delete_user" => "Удалить пользователя",
"delete_user_info" => "Удаление пользователя также приведет к удалению всех его подписок и настроек.",
"smtp_settings" => "Настройки SMTP",
"smtp_usage_info" => "Будет использоваться для восстановления пароля и других системных писем.",
// Email Verification
"email_verified" => "Ваш адрес электронной почты подтвержден. Теперь вы можете войти.",
"email_verification_failed" => "Не удалось подтвердить ваш адрес электронной почты.",
];
+27
View File
@@ -10,6 +10,8 @@ $i18n = [
"main_currency" => "Главна валута",
"language" => "Језик",
"passwords_dont_match" => "Лозинке се не поклапају",
"username_exists" => "Корисничко име већ постоји",
"email_exists" => "Е-пошта већ постоји",
"registration_failed" => "Регистрација није успела, покушајте поново.",
"register" => "Региструј се",
"restore_database" => "Врати базу података",
@@ -18,6 +20,13 @@ $i18n = [
'stay_logged_in' => "Остани пријављен (30 дана)",
'login' => "Пријави се",
'login_failed' => "Подаци за пријаву нису исправни",
'registration_successful' => "Пријава успешна",
'user_email_waiting_verification' => "Ваша е-пошта треба да буде верификована. Молимо прегледајте Е-пошту",
// Password Reset Page
'forgot_password' => "Заборављена лозинка",
'reset_password' => "Ресетуј лозинку",
'reset_sent_check_email' => "Ресетовање лозинке је послато на вашу е-пошту",
'password_reset_successful' => "Ресетовање лозинке је успешно",
// Header
'subscriptions' => "Претплате",
'stats' => "Статистике",
@@ -254,6 +263,24 @@ $i18n = [
// Корисник
"error_updating_user_data" => "Грешка при ажурирању корисничких података.",
"user_details_saved" => "Кориснички подаци сачувани",
// Admin Page
"registrations" => "Регистрације",
"enable_user_registrations" => "Омогући регистрације корисника",
"maximum_number_users" => "Максималан број корисника",
"require_email_verification" => "Захтевај верификацију е-поште",
"configure_smtp_settings_to_enable" => "Конфигуришите SMTP подешавања да бисте омогућили ову опцију",
"server_url" => "URL сервера",
"server_url_info" => "Користи се за верификацију е-поште и опоравак лозинке. Мора да буде важећи јавни УРЛ.",
"server_url_password_reset" => "Ако је подешено, такође ће се омогућити функција ресетовања лозинке.",
"max_users_info" => "Максималан број корисника који могу бити регистровани. 0 за неограничено.",
"user_management" => "Управљање корисницима",
"delete_user" => "Обриши корисника",
"delete_user_info" => "Брисање корисника ће такође обрисати све његове претплате и податке.",
"smtp_settings" => "SMTP подешавања",
"smtp_usage_info" => "SMTP се користи за слање е-поште за обавештења.",
// Email Verification
"email_verified" => "Е-пошта је верификована",
"email_verification_failed" => "Верификација е-поште није успела",
];
+27
View File
@@ -10,6 +10,8 @@ $i18n = [
"main_currency" => "Glavna valuta",
"language" => "Jezik",
"passwords_dont_match" => "Lozinke se ne poklapaju",
"username_exists" => "Korisničko ime već postoji",
"email_exists" => "E-pošta već postoji",
"registration_failed" => "Registracija nije uspela, pokušajte ponovo.",
"register" => "Registruj se",
"restore_database" => "Vrati bazu podataka",
@@ -18,6 +20,13 @@ $i18n = [
'stay_logged_in' => "Ostani prijavljen (30 dana)",
'login' => "Prijavi se",
'login_failed' => "Podaci za prijavu nisu ispravni",
'registration_successful' => "Registracija uspešna",
'user_email_waiting_verification' => "Vaša e-pošta treba da bude verifikovana. Molimo pregledajte E-poštu",
// Password Reset Page
'forgot_password' => "Zaboravili ste lozinku?",
'reset_password' => "Resetuj lozinku",
'reset_sent_check_email' => "Poslali smo vam e-poštu sa uputstvima za resetovanje lozinke",
'password_reset_successful' => "Lozinka uspešno resetovana",
// Header
'subscriptions' => "Pretplate",
'stats' => "Statistike",
@@ -255,6 +264,24 @@ $i18n = [
// Korisnik
"error_updating_user_data" => "Greška pri ažuriranju korisničkih podataka.",
"user_details_saved" => "Korisnički podaci sačuvani",
// Admin Page
"registrations" => "Registracije",
"enable_user_registrations" => "Omogući registracije korisnika",
"maximum_number_users" => "Maksimalan broj korisnika",
"require_email_verification" => "Zahtevaj verifikaciju e-pošte",
"configure_smtp_settings_to_enable" => "Konfigurišite SMTP podešavanja da biste omogućili ovu opciju",
"server_url" => "URL servera",
"server_url_info" => "Koristi se za verifikaciju e-pošte i oporavak lozinke. Mora da bude važeći javni URL.",
"server_url_password_reset" => "Ako je podešeno, takođe će se omogućiti funkcija resetovanja lozinke.",
"max_users_info" => "0 za neograničen broj korisnika",
"user_management" => "Upravljanje korisnicima",
"delete_user" => "Izbriši korisnika",
"delete_user_info" => "Brisanjem korisnika izbrisaće se i sve njegove pretplate i podešavanja.",
"smtp_settings" => "SMTP podešavanja",
"smtp_usage_info" => "Koristiće se za oporavak lozinke i druge sistemske e-poruke.",
// Email Verification
"email_verified" => "E-pošta je uspešno verifikovana",
"email_verification_failed" => "Verifikacija e-pošte nije uspela",
];
+28
View File
@@ -10,6 +10,8 @@ $i18n = [
"main_currency" => "Ana Para Birimi",
"language" => "Dil",
"passwords_dont_match" => "Şifreler eşleşmiyor",
"username_exists" => "Bu kullanıcı adı zaten mevcut",
"email_exists" => "Bu e-posta zaten mevcut",
"registration_failed" => "Kayıt başarısız, lütfen tekrar deneyin.",
"register" => "Kayıt Ol",
"restore_database" => "Veritabanını geri yükle",
@@ -18,6 +20,13 @@ $i18n = [
'stay_logged_in' => "Oturumu açık tut (30 gün)",
'login' => "Giriş Yap",
'login_failed' => "Giriş bilgileri hatalı",
'registration_successful' => "Kayıt başarılı",
'user_email_waiting_verification' => "E-postanızın doğrulanması gerekiyor. Lütfen e-postanızı kontrol edin",
// Password Reset Page
'forgot_password' => "Şifremi Unuttum",
'reset_password' => "Şifreyi Sıfırla",
'reset_sent_check_email' => "Şifre sıfırlama bağlantısı e-posta adresinize gönderildi. Lütfen e-postanızı kontrol edin.",
'password_reset_successful' => "Şifre sıfırlama başarılı",
// Header
'subscriptions' => "Abonelikler",
'stats' => "İstatistikler",
@@ -255,6 +264,25 @@ $i18n = [
// User
"error_updating_user_data" => "Kullanıcı verileri güncellenirken hata oluştu.",
"user_details_saved" => "Kullanıcı detayları kaydedildi",
// Admin Page
"registrations" => "Kayıtlar",
"enable_user_registrations" => "Kullanıcı kayıtlarını etkinleştir",
"maximum_number_users" => "Maksimum kullanıcı sayısı",
"require_email_verification" => "E-posta doğrulaması gerektir",
"configure_smtp_settings_to_enable" => "E-posta doğrulamasını etkinleştirmek için SMTP ayarlarını yapılandırın",
"server_url" => "Sunucu URL'si",
"server_url_info" => "E-posta doğrulama ve şifre kurtarma için kullanılır. Geçerli bir genel URL olmalıdır.",
"server_url_password_reset" => "Ayarlanırsa şifre sıfırlama işlevini de etkinleştirir.",
"max_users_info" => "0 veya boş bırakıldığında sınırsız kullanıcı sayısı",
"user_management" => "Kullanıcı Yönetimi",
"delete_user" => "Kullanıcıyı Sil",
"delete_user_info" => "Bir kullanıcının silinmesi aynı zamanda tüm aboneliklerinin ve ayarlarının da silinmesine neden olur.",
"smtp_settings" => "SMTP Ayarları",
"smtp_usage_info" => "Şifre kurtarma ve diğer sistem e-postaları için kullanılacaktır.",
// Email Verification
"email_verified" => "E-posta doğrulandı",
"email_verification_failed" => "E-posta doğrulaması başarısız oldu",
];
+30
View File
@@ -10,6 +10,8 @@ $i18n = [
"main_currency" => "主要货币",
"language" => "语言",
"passwords_dont_match" => "密码不匹配",
"username_exists" => "用户名已存在",
"email_exists" => "电子邮箱已存在",
"registration_failed" => "注册失败,请重试。",
"register" => "注册",
"restore_database" => "恢复数据库",
@@ -19,6 +21,14 @@ $i18n = [
'stay_logged_in' => "30 天内免登录",
'login' => "登录",
'login_failed' => "登录信息错误",
'registration_successful' => "注册成功",
'user_email_waiting_verification' => "您的电子邮件需要验证。请检查您的电子邮件",
// Password Reset Page
'forgot_password' => "忘记密码",
'reset_password' => "重置密码",
'reset_sent_check_email' => "重置密码链接已发送到您的电子邮箱",
'password_reset_successful' => "密码重置成功",
// 页眉
'subscriptions' => "订阅",
@@ -272,6 +282,26 @@ $i18n = [
"error_updating_user_data" => "更新用户数据时出错。",
"user_details_saved" => "用户详细信息已保存",
// Admin Page
"registrations" => "注册",
"enable_user_registrations" => "启用用户注册",
"maximum_number_users" => "最大用户数",
"require_email_verification" => "需要电子邮件验证",
"configure_smtp_settings_to_enable" => "要启用此功能,请配置 SMTP 设置。",
"server_url" => "服务器 URL",
"server_url_info" => "用于电子邮件验证和密码恢复。必须是有效的公共 URL。",
"server_url_password_reset" => "如果设置,还将启用密码重置功能。",
"max_users_info" => "设置为 0 以无限制用户数",
"user_management" => "用户管理",
"delete_user" => "删除用户",
"delete_user_info" => "删除用户也会删除其所有订阅和设置。",
"smtp_settings" => "SMTP 设置",
"smtp_usage_info" => "将用于密码恢复和其他系统电子邮件。",
// Email Verification
"email_verified" => "电子邮件已验证",
"email_verification_failed" => "电子邮件验证失败",
];
?>
+27
View File
@@ -10,6 +10,8 @@ $i18n = [
"main_currency" => "主要貨幣單位",
"language" => "語言",
"passwords_dont_match" => "密碼不一致",
"username_exists" => "使用者名稱已存在",
"email_exists" => "電子信箱已存在",
"registration_failed" => "註冊失敗,請再試一次。",
"register" => "註冊",
"restore_database" => "還原資料庫",
@@ -18,6 +20,13 @@ $i18n = [
'stay_logged_in' => "保持登入 30 天",
'login' => "登入",
'login_failed' => "登入資訊錯誤",
'registration_successful' => "註冊成功",
'user_email_waiting_verification' => "您的電子郵件需要驗證。 請查看你的信箱",
// Password Reset Page
'forgot_password' => "忘記密碼",
'reset_password' => "重設密碼",
'reset_sent_check_email' => "重設密碼的電子郵件已發送,請檢查您的電子郵件",
'password_reset_successful' => "密碼重設成功",
// 頁首
'subscriptions' => "訂閱",
'stats' => "統計",
@@ -255,6 +264,24 @@ $i18n = [
// User
"error_updating_user_data" => "更新使用者資訊時發生錯誤。",
"user_details_saved" => "使用者資訊已儲存",
// Admin Page
"registrations" => "註冊",
"enable_user_registrations" => "啟用使用者註冊",
"maximum_number_users" => "最大使用者數",
"require_email_verification" => "需要電子郵件驗證",
"configure_smtp_settings_to_enable" => "要啟用使用者註冊,請先設定 SMTP 設定。",
"server_url" => "伺服器 URL",
"server_url_info" => "用於電子郵件驗證和密碼恢復。 必須是有效的公共 URL。",
"server_url_password_reset" => "如果設置,還將啟用密碼重置功能。",
"max_users_info" => "設定為 0 以無限制使用者數",
"user_management" => "使用者管理",
"delete_user" => "刪除使用者",
"delete_user_info" => "刪除用戶也會刪除其所有訂閱和設定。",
"smtp_settings" => "SMTP 設定",
"smtp_usage_info" => "將用於密碼恢復和其他系統電子郵件。",
// Email Verification
"email_verified" => "電子郵件已驗證",
"email_verification_failed" => "電子郵件驗證失敗",
];
+2 -1
View File
@@ -147,8 +147,9 @@
}
}
$query = "SELECT main_currency FROM user WHERE id = 1";
$query = "SELECT main_currency FROM user WHERE id = :userId";
$stmt = $db->prepare($query);
$stmt->bindValue(':userId', $userId, SQLITE3_INTEGER);
$result = $stmt->execute();
$row = $result->fetchArray(SQLITE3_ASSOC);
$mainCurrencyId = $row['main_currency'];
+1 -1
View File
@@ -1,3 +1,3 @@
<?php
$version = "v1.29.1";
$version = "v2.0.0";
?>