auth.js

2.28 KB
05/11/2024 07:19
JS
auth.js
const AuthManager = {
    init() {
        this.setupLoginForm();
    },

    setupLoginForm() {
        const loginForm = document.getElementById('loginForm');
        if (loginForm) {
            loginForm.addEventListener('submit', (e) => this.handleLogin(e));
        }
    },

    async handleLogin(e) {
        e.preventDefault();
        
        const username = document.getElementById('username').value;
        const password = document.getElementById('password').value;

        try {
            Utils.showLoading();
            
            // จำลองการเช็คล็อกอิน (ในที่นี้ใช้ค่าทดสอบ)
            if (username === 'admin' && password === 'admin') {
                // Login success
                const userData = {
                    username: username,
                    role: 'admin',
                    timestamp: Date.now()
                };

                Storage.save('userData', userData);
                this.updateUIForAuth(userData);
                ModalManager.hideModal('loginModal');
                NotificationManager.showSuccess('เข้าสู่ระบบสำเร็จ');
            } else {
                throw new Error('ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง');
            }
        } catch (error) {
            console.error('Login error:', error);
            NotificationManager.showError(error.message);
        } finally {
            Utils.hideLoading();
        }
    },

    updateUIForAuth(userData) {
        const loginBtn = document.getElementById('loginBtn');
        if (loginBtn) {
            loginBtn.innerHTML = `
                <i class="fas fa-user"></i>
                ${userData.username}
            `;
        }

        // แสดงปุ่มออกจากระบบ
        const logoutBtn = document.createElement('button');
        logoutBtn.className = 'button-modern';
        logoutBtn.innerHTML = '<i class="fas fa-sign-out-alt"></i> ออกจากระบบ';
        logoutBtn.onclick = () => this.handleLogout();
        
        loginBtn.parentNode.appendChild(logoutBtn);
    },

    handleLogout() {
        Storage.remove('userData');
        window.location.reload();
    }
};