00001
00002
00003
00004
00005
00006
00007
00008 #include "metaconnectstring"
00009 #include <iostream>
00010 #include <iomanip>
00011 #include "ocTypes.h"
00012 #include "ocString.h"
00013 #include "read_write_base.hpp"
00014 #include "forms_base.hpp"
00015 #include "list_base.hpp"
00016 #include "cgiTemplates.h"
00017 #include "users.hpp"
00018 #include "openLogin.h"
00019 openLogin oLogin;
00020
00021
00022
00023
00024
00025
00026
00027 class users_Form: public users, public forms_base
00028 {
00029 public:
00030
00031 users_Form(cgiScript & script):users(),forms_base(script){setKey(*this);}
00032 ~users_Form(){;}
00033
00034 void form_id_transfer( void )
00035 {
00036 llongFXfer( "id", id );
00037 }
00038 void form_data_transfer( void )
00039 {
00040
00041 llongFXfer( "group_id", group_id );
00042 stringFXfer( "first", first );
00043 stringFXfer( "last", last );
00044 stringFXfer( "login", login );
00045 stringFXfer( "password", password );
00046 stringFXfer( "phone_number", phone_number );
00047 stringFXfer( "email", email );
00048 if( group_id != 0 ) stringFXfer( "role_id", user_roles);
00049 }
00050
00051 bool isupplemental( void )
00052 {
00053 return setRoles();
00054 }
00055
00056
00057 bool usupplemental( changeMap & changes )
00058 {
00059 bool bRet = deleteRoles();
00060 if(bRet) bRet = setRoles();
00061 return bRet;
00062 }
00063
00064
00065 bool dsupplemental( void )
00066 {
00067 return deleteRoles();
00068 }
00069
00070 bool ssupplemental( void )
00071 {
00072 return retrieveRoles();
00073 }
00074
00075
00076 bool dbf_action( string mode, changeMap & changes )
00077 {
00078 return db_action( mode, changes );
00079 }
00080
00081 bool form_display( void )
00082 {
00083 bool breturn = true;
00084 ocString group_sql = "select id, name from groups";
00085 if( !oLogin.SiteAdmin() )
00086 {
00087 group_sql += " where id = ";
00088 group_sql += oLogin.GroupId();
00089 }
00090 group_sql += " order by name";
00091 script << endl << "<!--" << group_sql << "-->" << endl;
00092 script << makeTop("users_ui.cgi", "USERS")
00093 << makeStaticBox("Id","id",id,"12" )
00094 << makeComboBox("Group", "group_id", group_id,
00095 group_sql)
00096 << makeTextBox("First","first",first,"24")
00097 << makeTextBox("Last","last",last,"24")
00098 << makeTextBox("Login","login",login,"24")
00099 << makeTextBox("Password","password",password,"12")
00100 << makeTextBox("Phone Number","phone_number",phone_number,"16")
00101 << makeTextBox("Email","email",email,"64");
00102 if( group_id != 0 )
00103 {
00104 ocString select = "select r.id, r.name from roles r inner join group_roles gr on "
00105 "r.id = gr.role_id where gr.group_id = ";
00106 select.append(group_id);
00107 script
00108 << makeComboBox("Roles","role_id",user_roles,
00109 select.c_str(),
00110 "", " multiple='multiple' size='6'" );
00111 }
00112 script << makeButtons( key() )
00113 << makeBottom( m_result ) << endl;
00114 return breturn;
00115 }
00116 };
00117
00118 class users_List: public list_base
00119 {
00120 public:
00121
00122 users_List(cgiScript&sc):list_base(sc)
00123 {
00124 ;
00125 }
00126 ~users_List(){;}
00127
00128 bool list_display( void )
00129 {
00130 bool breturn = true;
00131 editLink = listTemplate.getParagraph("hotcolumn");
00132 editLink = editLink.replace("$prog$","users_ui.cgi");
00133 hotCol=1;
00134
00135 emitFilter( "users_ui.cgi",
00136 " <B>FILTER</B>" );
00137
00138 emitHeadings("Id|User Name");
00139 if( !oLogin.SiteAdmin() )
00140 {
00141 addedCriteria = " group_id = ";
00142 addedCriteria += oLogin.GroupId();
00143 }
00144 getFilteredData( "id, concat( first, ' ', last) as name",
00145 "users",
00146 "last like '$filter$%'",
00147 "last, first" );
00148 emitData();
00149
00150 emitNavigation("users_ui.cgi");
00151
00152 emitEnd();
00153 return breturn;
00154 }
00155 void derived_data_event( void )
00156 {
00157
00158 }
00159
00160 };
00161
00162 int main( int argc, char ** argv )
00163 {
00164 cgiScript script( "text/html", false );
00165 users_Form myFrm(script);
00166 users_List mylist(script);
00167 if( oLogin.testLoginStatus() )
00168 {
00169 script.closeHeader();
00170 cgiTemplates pgTemplate;
00171 pgTemplate.load("Templates/adminPane.htmp");
00172
00173 script << ocString(pgTemplate.getParagraph("top"))
00174 .replaceAll("$heading$","USERS");
00175
00176 myFrm.loadControlTemplates("Templates/form.htmp");
00177 myFrm.form_action();
00178 myFrm.form_display();
00179
00180
00181 mylist.loadListTemplates("Templates/list.htmp");
00182 mylist.list_display();
00183
00184 script << pgTemplate.getParagraph("bottom");
00185 }
00186 else
00187 {
00188 script.Redirect("signIn.html");
00189 }
00190 }
00191
00192
00193 #include "read_write_base.cpp"
00194 #include "forms_base.cpp"
00195
00196
00197