#if !defined _RSUSER_H_ #define _RSUSER_H_ #include #include class RSUser { protected: BOOL m_bUserActive; TCHAR m_szUserID[64]; TCHAR m_szUserPassword[64]; public: RSUser(); TCHAR* GetUserID(); TCHAR* GetUserPassword(); BOOL UserLogin(TCHAR* szUserId, TCHAR* szUserPassword); BOOL IsActive(); void Logout(); }; /***************************************************** Implementation *****************************************************/ void RSUser::Logout() { m_bUserActive = FALSE; wcscpy(m_szUserID, L"\0"); wcscpy(m_szUserPassword, L"\0"); } RSUser::RSUser() { wcscpy(m_szUserID, L"\0"); wcscpy(m_szUserPassword, L"\0"); m_bUserActive = FALSE; } BOOL RSUser::IsActive() { return m_bUserActive; } TCHAR* RSUser::GetUserID() { return m_szUserID; } TCHAR* RSUser::GetUserPassword() { return m_szUserPassword; } BOOL RSUser::UserLogin(TCHAR* szUserId, TCHAR* szUserPassword) { FILE *stream; BOOL bLoginStatus = FALSE; TCHAR szReadUserID[64]; TCHAR szReadUserPassword[64]; // open account file stream = fopen( "accounts.txt", "r" ); // automatic fail login, no file opened if( stream == NULL ) { return FALSE; } while( !feof( stream ) ) { // read in sets of account information fwscanf( stream, L"%s", szReadUserID); fwscanf( stream, L"%s", szReadUserPassword); // validate user login if( (wcscmp(szReadUserID, szUserId) == 0) && (wcscmp(szReadUserPassword, szUserPassword) == 0) ) { wcscpy(m_szUserID, szReadUserID); wcscpy(m_szUserPassword, szReadUserPassword); bLoginStatus = TRUE; break; } else { bLoginStatus = FALSE; } } fclose(stream); // set the user as an active user (they are logged in) m_bUserActive = bLoginStatus; return bLoginStatus; } #endif