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