""" Mock LDAP for development/testing purposes 當無法連接到實際LDAP時使用 """ from utils.logger import get_logger logger = get_logger(__name__) def authenticate_user(username, password): """Mock authentication for development""" logger.info(f"Mock LDAP: Authenticating user {username}") # 簡單的開發用驗證 if not username or not password: return None # 模擬用戶資料 mock_users = { 'admin': { 'ad_account': 'admin', 'display_name': '系統管理員', 'email': 'admin@panjit.com.tw' }, 'test': { 'ad_account': 'test', 'display_name': '測試使用者', 'email': 'test@panjit.com.tw' }, 'user1': { 'ad_account': 'user1', 'display_name': '使用者一', 'email': 'user1@panjit.com.tw' }, 'ymirliu@panjit.com.tw': { 'ad_account': '92367', 'display_name': 'ymirliu 陸一銘', 'email': 'ymirliu@panjit.com.tw' } } if username.lower() in mock_users: logger.info(f"Mock LDAP: User {username} authenticated successfully") return mock_users[username.lower()] logger.warning(f"Mock LDAP: User {username} not found") return None def search_ldap_principals(search_term, limit=20): """Mock LDAP search""" logger.info(f"Mock LDAP: Searching for '{search_term}'") mock_results = [ { 'ad_account': 'admin', 'display_name': '系統管理員', 'email': 'admin@panjit.com.tw' }, { 'ad_account': 'test', 'display_name': '測試使用者', 'email': 'test@panjit.com.tw' }, { 'ad_account': 'user1', 'display_name': '使用者一', 'email': 'user1@panjit.com.tw' }, { 'ad_account': 'user2', 'display_name': '使用者二', 'email': 'user2@panjit.com.tw' } ] # 簡單的搜尋過濾 if search_term: results = [] for user in mock_results: if (search_term.lower() in user['ad_account'].lower() or search_term.lower() in user['display_name'].lower() or search_term.lower() in user['email'].lower()): results.append(user) return results[:limit] return mock_results[:limit] def get_user_info(ad_account): """Mock get user info""" mock_users = { 'admin': { 'ad_account': 'admin', 'display_name': '系統管理員', 'email': 'admin@panjit.com.tw' }, 'test': { 'ad_account': 'test', 'display_name': '測試使用者', 'email': 'test@panjit.com.tw' }, 'user1': { 'ad_account': 'user1', 'display_name': '使用者一', 'email': 'user1@panjit.com.tw' } } return mock_users.get(ad_account.lower()) def validate_ad_accounts(ad_accounts): """Mock validate AD accounts""" mock_users = { 'admin': { 'ad_account': 'admin', 'display_name': '系統管理員', 'email': 'admin@panjit.com.tw' }, 'test': { 'ad_account': 'test', 'display_name': '測試使用者', 'email': 'test@panjit.com.tw' }, 'user1': { 'ad_account': 'user1', 'display_name': '使用者一', 'email': 'user1@panjit.com.tw' } } valid_accounts = {} for account in ad_accounts: if account.lower() in mock_users: valid_accounts[account] = mock_users[account.lower()] return valid_accounts def test_ldap_connection(): """Mock LDAP connection test""" logger.info("Mock LDAP: Connection test - always returns True") return True