fix: 设置默认账号为 demo/demo123,修复数据路径
问题修复: 1. ✅ 默认账号设置 - db.rs: 默认密码改为 demo123 - .env.template: 默认密码改为 demo123 - install.sh: 默认密码改为 demo123 2. ✅ 数据路径动态化 - db.rs: 使用 dirs::home_dir() 自动检测用户主目录 - 默认路径: {HOME}/momentry_studio/data/users - 支持通过 MOMENTRY_DATA_DIR 环境变量自定义 验证脚本: - scripts/verify_default_setup.sh: 验证默认账号和数据路径 目标: - 安装后可直接使用 demo/demo123 登录 - 数据路径随用户主目录自动调整 - 适用于任何用户环境 影响: - demo 用户: 密码固定为 demo123 - 数据路径: 自动检测 {HOME}/momentry_studio/data/users - 安装即可使用,无需额外配置
This commit is contained in:
@@ -52,9 +52,14 @@ CREATE INDEX IF NOT EXISTS idx_video_marks_file ON video_marks(file_uuid);
|
||||
static DB_CONN: Mutex<Option<Connection>> = Mutex::new(None);
|
||||
|
||||
fn db_path() -> PathBuf {
|
||||
let base = std::env::var("MOMENTRY_DATA_DIR").unwrap_or_else(|_| "../data/users".to_string());
|
||||
// Use dynamic path based on user home directory
|
||||
let base = std::env::var("MOMENTRY_DATA_DIR").unwrap_or_else(|_| {
|
||||
let home = dirs::home_dir()
|
||||
.expect("Failed to get home directory");
|
||||
format!("{}/momentry_studio/data/users", home.display())
|
||||
});
|
||||
std::fs::create_dir_all(&base).ok();
|
||||
PathBuf::from(base).join("demo.sqlite")
|
||||
PathBuf::from(base).join("demo.sqlite") // TODO: Change to dynamic username
|
||||
}
|
||||
|
||||
pub fn init_db() -> Result<(), String> {
|
||||
@@ -66,19 +71,11 @@ pub fn init_db() -> Result<(), String> {
|
||||
// Add password_hash column if not exists (migration)
|
||||
conn.execute("ALTER TABLE app_users ADD COLUMN password_hash TEXT", []).ok();
|
||||
|
||||
// Get default user credentials from environment or use generated values
|
||||
// Get default user credentials from environment or use demo123 as default
|
||||
let default_id = "demo";
|
||||
let default_user = "demo";
|
||||
let default_password = std::env::var("MOMENTRY_DEFAULT_PASSWORD")
|
||||
.unwrap_or_else(|_| {
|
||||
// Generate a random password if not set
|
||||
use std::time::{SystemTime, UNIX_EPOCH};
|
||||
let timestamp = SystemTime::now()
|
||||
.duration_since(UNIX_EPOCH)
|
||||
.unwrap()
|
||||
.as_secs();
|
||||
format!("demo_{}", timestamp % 1000000) // demo_123456
|
||||
});
|
||||
.unwrap_or_else(|_| "demo123".to_string()); // Default: demo123
|
||||
|
||||
// Check if demo user exists and has password
|
||||
let password_hash: Option<String> = conn
|
||||
|
||||
Reference in New Issue
Block a user