00001
00002
00003
00004
00005
00006
00007
00008 #ifndef PD_users
00009 #define PD_users
00010 #include "read_write_base.hpp"
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 class users: public read_write_base
00027 {
00028 public:
00029 identifier id;
00030 long long group_id;
00031 string first;
00032 string last;
00033 string login;
00034 string password;
00035 string phone_number;
00036 string email;
00037
00038
00039 ocString user_roles;
00040
00041
00042 users():read_write_base(),id(0LL),group_id(0LL)
00043 {
00044 data_name("users");
00045
00046 addDXMap( new llongXfer("id", &id) );
00047 addDXMap( new llongXfer("group_id", &group_id) );
00048 addDXMap( new stringXfer("first", &first) );
00049 addDXMap( new stringXfer("last", &last) );
00050 addDXMap( new stringXfer("login", &login) );
00051 addDXMap( new stringXfer("password", &password) );
00052 addDXMap( new stringXfer("email", &email) );
00053 }
00054 virtual ~users(){;}
00055
00056
00057 virtual bool setRoles( void )
00058 {
00059 bool bRet = false;
00060 if( user_roles.length() )
00061 {
00062 ocString sql;
00063 ocString sqlStart = "insert into user_roles (user_id,role_id,enabled) values (";
00064 sqlStart.append(id);
00065 sqlStart += ",";
00066 user_roles.parseInit();
00067 while( !user_roles.endOfParse() )
00068 {
00069 sql = sqlStart;
00070 sql += user_roles.parse("|");
00071 sql += ",1)";
00072 bRet = cmd.execute(sql);
00073 if(!bRet) break;
00074 }
00075 }
00076
00077 return bRet;
00078 }
00079
00080
00081 virtual bool deleteRoles( void )
00082 {
00083 bool bRet = false;
00084 ocString sql = "delete from user_roles where user_id = ";
00085 sql.append(id);
00086 bRet = cmd.execute(sql);
00087 return bRet;
00088 }
00089
00090
00091 virtual bool retrieveRoles( void )
00092 {
00093 bool bRet = false;
00094 user_roles = "";
00095 ocString sql = "select role_id from user_roles where user_id = ";
00096 sql.append(id);
00097 if( rs.open(sql) )
00098 {
00099 bRet = true;
00100 bool moreData = true;
00101 do
00102 {
00103 user_roles += rs.getField(0).format();
00104 moreData = rs.next();
00105 if( moreData ) user_roles += "|";
00106 }
00107 while( moreData );
00108 }
00109 return bRet;
00110 }
00111 };
00112 #endif
00113
00114
00115