UserManager.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #if !defined(AFX_USERMANAGER_H__80FCDEAE_C56D_4E25_998D_8BE0511F7C10__INCLUDED_)
  2. #define AFX_USERMANAGER_H__80FCDEAE_C56D_4E25_998D_8BE0511F7C10__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. #define FTP_DOWNLOAD 1
  7. #define FTP_UPLOAD 2
  8. #define FTP_RENAME 3
  9. #define FTP_DELETE 4
  10. #define FTP_CREATE_DIR 5
  11. #define FTP_LIST 6
  12. class CDirectory : public CObject
  13. {
  14. DECLARE_SERIAL(CDirectory)
  15. CDirectory();
  16. virtual ~CDirectory();
  17. public:
  18. virtual void Serialize(CArchive&);
  19. CDirectory (const CDirectory &dir); // copy-constructor
  20. CDirectory &operator=(const CDirectory &dir); // =-operator
  21. CString m_strDir; // 目录
  22. CString m_strAlias;
  23. BOOL m_bAllowDownload; // 可下载
  24. BOOL m_bAllowUpload; // 可上传
  25. BOOL m_bAllowRename; // 可重命名
  26. BOOL m_bAllowDelete; // 可删除
  27. BOOL m_bAllowCreateDirectory; // 可创建
  28. BOOL m_bIsHomeDir; // 是否为主目录
  29. };
  30. class CUser : public CObject
  31. {
  32. DECLARE_SERIAL(CUser)
  33. CUser();
  34. virtual ~CUser();
  35. public:
  36. virtual void Serialize(CArchive&);
  37. CUser (const CUser &user); // copy-constructor
  38. CUser &operator=(const CUser &user); // =-operator
  39. CString m_strName; // 帐户
  40. CString m_strPassword; // 密码
  41. CArray <CDirectory, CDirectory&> m_DirectoryArray;
  42. BOOL m_bAccountDisabled; // 是否帐户禁用
  43. };
  44. class CUserManager
  45. {
  46. public:
  47. CUserManager();
  48. virtual ~CUserManager();
  49. void GetUserList(CArray<CUser, CUser&>&array);
  50. void UpdateUserList(CArray<CUser, CUser&>&array);
  51. BOOL Serialize(BOOL bStoring);
  52. BOOL GetUser(LPCTSTR lpszUser, CUser &user);
  53. BOOL ConvertPathToLocal(LPCTSTR lpszUser, CString &strDirectoryIn, CString &strDirectoryOut);
  54. int CheckDirectory(LPCTSTR lpszUser, CString dirname, CString strCurrentdir, int nOption, CString &strResult);
  55. int CheckFileName(LPCTSTR lpszUser, CString filename, CString strCurrentdir, int nOption, CString &strResult);
  56. int ChangeDirectory(LPCTSTR lpszUser, CString &currentdir, CString &dir);
  57. int GetDirectoryList(LPCTSTR lpszUser, LPCTSTR lpszDirectory, CString &strResult);
  58. BOOL FileExists(LPCTSTR lpszFileName, const int bIsDirCheck = 1);
  59. protected:
  60. BOOL CheckAccessRights(LPCTSTR lpszUser, LPCTSTR lpszDirectory, int nOption);
  61. CString GetFileDate(CFileFind &find);
  62. public:
  63. CArray<CUser, CUser&> m_UserArray;
  64. protected:
  65. CString m_strFilename;
  66. CCriticalSection m_CriticalSection;
  67. };
  68. #endif // !defined(AFX_USERMANAGER_H__80FCDEAE_C56D_4E25_998D_8BE0511F7C10__INCLUDED_)