00001 /* 00002 base classes: 00003 read_write_base 00004 groups Business Object 00005 00006 */ 00007 00008 #ifndef PD_groups 00009 #define PD_groups 00010 #include "read_write_base.hpp" 00011 00012 /* 00013 groups Business Object 00014 00015 CREATE TABLE groups ( 00016 id bigint not null primary key auto_increment, 00017 name varchar(24) NOT NULL, -- group name 00018 domain varchar(255) NOT NULL, -- domain for email 00019 url varchar(255) NOT NULL, -- web address 00020 site_admin int NOT NULL -- admin indicator 00021 ); 00022 */ 00023 00024 class groups: public read_write_base 00025 { 00026 public: 00027 identifier id; 00028 string name; 00029 // string domain; 00030 // string url; 00031 bool site_admin; 00032 00033 // a pipe delimited list of selected roles for this group 00034 ocString group_roles; 00035 00036 // Constructor 00037 groups():read_write_base(),id(0LL),site_admin(false) 00038 { 00039 data_name("groups"); 00040 // ALWAYS make the key be first, so we can skip it in insert logic 00041 addDXMap( new llongXfer("id", &id) ); 00042 00043 addDXMap( new stringXfer("name", &name) ); 00044 // addDXMap( new stringXfer("domain", &domain) ); 00045 // addDXMap( new stringXfer("url", &url) ); 00046 00047 addDXMap( new boolXfer("site_admin", &site_admin) ); 00048 00049 } 00050 virtual ~groups(){;} 00051 00052 // on Event of form submission, update 00053 virtual bool setRoles( void ) 00054 { 00055 bool bRet = false; 00056 if( group_roles.length() ) 00057 { 00058 ocString sql; 00059 ocString sqlStart = "insert into group_roles (group_id,role_id,enabled) values ("; 00060 sqlStart.append(id); 00061 sqlStart += ","; 00062 group_roles.parseInit(); 00063 while( !group_roles.endOfParse() ) 00064 { 00065 sql = sqlStart; 00066 sql += group_roles.parse("|"); 00067 sql += ",1)"; 00068 bRet = cmd.execute(sql); 00069 if(!bRet) break; 00070 } 00071 } 00072 00073 return bRet; 00074 } 00075 00076 // on Event of form submission, delete 00077 virtual bool deleteRoles( void ) 00078 { 00079 bool bRet = false; 00080 ocString sql = "delete from group_roles where group_id = "; 00081 sql.append(id); 00082 bRet = cmd.execute(sql); 00083 return bRet; 00084 } 00085 00086 // on event of getting data 00087 virtual bool retrieveRoles( void ) 00088 { 00089 bool bRet = false; 00090 group_roles = ""; 00091 ocString sql = "select role_id from group_roles where group_id = "; 00092 sql.append(id); 00093 if( rs.open(sql) ) 00094 { 00095 bRet = true; 00096 bool moreData = true; 00097 do 00098 { 00099 group_roles += rs.getField(0).format(); 00100 moreData = rs.next(); 00101 if( moreData ) group_roles += "|"; 00102 } 00103 while( moreData ); 00104 } 00105 return bRet; 00106 } 00107 }; 00108 #endif 00109 00110 00111
1.5.5