1 #ifndef VMAILMGR__VPWENTRY__H__
2 #define VMAILMGR__VPWENTRY__H__
3 
4 #include "mystring/mystring.h"
5 #include "misc/strlist.h"
6 
7 struct vpwentry
8 {
9 protected:
10   const char* decode_flags(const char*, const char*);
11   const char* decode_base(const char*, const char*);
12   const char* decode_values(const char*, const char*);
13 
14   bool from_ver1_record(const mystring& text);
15   bool from_ver2_record(const mystring& text);
16   bool from_old_record(const mystring& text);
17 
18   void set_defaults(bool ctime_now, bool set_flags);
19 
20 public:
21   mystring name;
22   mystring pass;
23   mystring directory;
24   mystring forwards;
25   mystring personal;
26   unsigned hardquota;
27   unsigned softquota;
28   unsigned msgsize;
29   unsigned msgcount;
30   unsigned ctime;
31   unsigned expiry;
32   bool has_mailbox;
33   bool is_mailbox_enabled;
34   // keystrlist data;
35 
36 private:
37   vpwentry();
38 
39 public:
40   static vpwentry* new_from_record(const mystring& name, const mystring& text);
41 
42   vpwentry(const mystring&, const mystring&, const mystring&, const mystring&,
43 	   bool);
44   ~vpwentry();
45 
46   //mystring get(const mystring& var) const { return data.get(var); }
47   //void set(const mystring& var, const mystring& val)
48   //  {
49   //    return data.set(var, val);
50   //  }
51 
52   bool authenticate(const mystring& phrase) const;
53 
54   bool from_record(const mystring& name, const mystring& text);
55   mystring to_record() const;
56 
57   bool export_env() const;
58 };
59 
60 #endif
61