/* FILE tAlias source code of mysqlSendmail.cgi (built by mysqlRAD2.cgi (c) Gary Wallis 2001,2002 GPL Licensed) $Id: talias.c 18 2005-12-14 20:24:21Z ggw $ (tAuthorize.cPasswd template set member) PURPOSE */ #include "mysqlrad.h" //Table Variables //uAlias: Primary Key static unsigned uAlias=0; //cLocalUser: Local mail user static char cLocalUser[33]={""}; //cTargetEmail: Local mail user destination email or program static char cTargetEmail[256]={""}; //uServer: Server account is on static unsigned uServer=0; static char cuServerPullDown[256]={""}; //uOwner: Record owner static unsigned uOwner=0; //uCreatedBy: uClient for last insert static unsigned uCreatedBy=0; #define ISM3FIELDS //uCreatedDate: Unix seconds date last insert static long unsigned uCreatedDate=0; //uModBy: uClient for last update static unsigned uModBy=0; //uModDate: Unix seconds date last update static long unsigned uModDate=0; #define VAR_LIST_tAlias "tAlias.uAlias,tAlias.cUser,tAlias.cTargetEmail,tAlias.uServer,tAlias.uOwner,tAlias.uCreatedBy,tAlias.uCreatedDate,tAlias.uModBy,tAlias.uModDate" //Local only void Insert_tAlias(void); void Update_tAlias(char *rowid); int InsertUpdate_tAlias(char *cKey); void ProcesstAliasListVars(pentry entries[], int x); //In tAliasfunc.h file included below void ExtProcesstAliasVars(pentry entries[], int x); void ExttAliasCommands(pentry entries[], int x); void ExttAliasButtons(void); void ExttAliasNavBar(void); void ExttAliasGetHook(entry gentries[], int x); void ExttAliasSelect(void); void ExttAliasSelectRow(void); void ExttAliasListSelect(void); void ExttAliasListFilter(void); void ExttAliasAuxTable(void); #include "taliasfunc.h" //Table Variables Assignment Function void ProcesstAliasVars(pentry entries[], int x) { register int i; for(i=0;i\n"); printf("\n"); printf(""); printf("
"); ExttAliasNavBar(); printf(""); printf("",rowid); if(i) { printf(" "); if(mode==6) //printf(" Found"); printf(LANG_NBR_FOUND); else if(mode==5) //printf(" Modified"); printf(LANG_NBR_MODIFIED); else if(mode==4) //printf(" New"); printf(LANG_NBR_NEW); printf(LANG_NBRF_SHOWING,rowid,i); } else { if(!result[0]) //printf(" No records found"); printf(LANG_NBR_NORECS); } if(result[0]) printf(" %s",result); printf("
"); ExttAliasButtons(); printf(""); printf("\n"); if(mode==2000 || mode==2002) tAliasInputContent(); else tAliasContent(); printf("
\n"); printf("
\n"); //Bottom table ExttAliasAuxTable(); printf("\n"); Footer_ism3(); }//end of tAlias(); void tAliasContent(void) { OpenRow(LANG_FL_tAlias_uAlias,"white"); printf("%u\n",uAlias,uAlias); printf("  "); OpenRow(LANG_FL_tAlias_cUser,EmptyString(cLocalUser)); printf("%s",cLocalUser,EncodeDoubleQuotes(cLocalUser)); printf("  "); OpenRow(LANG_FL_tAlias_cTargetEmail,EmptyString(cTargetEmail)); printf("%s",cTargetEmail,EncodeDoubleQuotes(cTargetEmail)); printf("  "); OpenRow(LANG_FL_tAlias_uServer,IsZero(uServer)); tTablePullDownReadOnly("tServer;cuServerPullDown","cLabel","cLabel",uServer); printf("  "); OpenRow(LANG_FL_tAlias_uOwner,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uOwner),uOwner); printf("  "); OpenRow(LANG_FL_tAlias_uCreatedBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uCreatedBy),uCreatedBy); printf("  "); OpenRow(LANG_FL_tAlias_uCreatedDate,"white"); if(uCreatedDate) printf("%s\n\n",ctime((time_t *)&uCreatedDate)); else printf("---\n\n"); printf("\n",uCreatedDate); printf("  "); OpenRow(LANG_FL_tAlias_uModBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uModBy),uModBy); printf("  "); OpenRow(LANG_FL_tAlias_uModDate,"white"); if(uModDate) printf("%s\n\n",ctime((time_t *)&uModDate)); else printf("---\n\n"); printf("\n",uModDate); printf("  "); printf("\n"); }//tAliasContent() void tAliasInputContent(void) { OpenRow(LANG_FL_tAlias_uAlias,"white"); if(uPermLevel>=20) printf("\n",LANG_FT_tAlias_uAlias,uAlias); else printf("%u\n",uAlias,uAlias); OpenRow(LANG_FL_tAlias_cUser,EmptyString(cLocalUser)); if(uPermLevel>=8) printf("\n",LANG_FT_tAlias_cUser,EncodeDoubleQuotes(cLocalUser)); else printf("%s",cLocalUser,EncodeDoubleQuotes(cLocalUser)); OpenRow(LANG_FL_tAlias_cTargetEmail,EmptyString(cTargetEmail)); if(uPermLevel>=8) printf("\n",LANG_FT_tAlias_cTargetEmail,EncodeDoubleQuotes(cTargetEmail)); else printf("%s",cTargetEmail,EncodeDoubleQuotes(cTargetEmail)); OpenRow(LANG_FL_tAlias_uServer,IsZero(uServer)); if(uPermLevel>=8) tTablePullDown("tServer;cuServerPullDown","cLabel","cLabel",uServer); else { tTablePullDownReadOnly("tServer;cuServerPullDown","cLabel","cLabel",uServer); } OpenRow(LANG_FL_tAlias_uOwner,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uOwner),uOwner); OpenRow(LANG_FL_tAlias_uCreatedBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uCreatedBy),uCreatedBy); OpenRow(LANG_FL_tAlias_uCreatedDate,"white"); if(uCreatedDate) printf("%s\n\n",ctime((time_t *)&uCreatedDate)); else printf("---\n\n"); printf("\n",uCreatedDate); OpenRow(LANG_FL_tAlias_uModBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uModBy),uModBy); OpenRow(LANG_FL_tAlias_uModDate,"white"); if(uModDate) printf("%s\n\n",ctime((time_t *)&uModDate)); else printf("---\n\n"); printf("\n",uModDate); printf("\n"); }//void tAliasInputContent(void) void NewtAlias(unsigned uMode) { register int i=0; MYSQL_RES *res; //New select sprintf(query,"SELECT uAlias FROM tAlias\ WHERE uAlias=%u" ,uAlias); mysql_query(&mysql,query); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); res=mysql_store_result(&mysql); i=mysql_num_rows(res); if(i) //tAlias("Record already exists"); tAlias(LANG_NBR_RECEXISTS); //insert query Insert_tAlias(); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); //sprintf(query,"New record %u added"); uAlias=mysql_insert_id(&mysql); if(!uMode) { sprintf(query,LANG_NBR_NEWRECADDED,uAlias); tAlias(query); } }//NewtAlias(unsigned uMode) void DeletetAlias(void) { #ifdef ISM3FIELDS sprintf(query,"DELETE FROM tAlias WHERE uAlias=%u AND ( uOwner=%u OR %u>9 )" ,uAlias,uLoginClient,uPermLevel); #else sprintf(query,"DELETE FROM tAlias WHERE uAlias=%u" ,uAlias); #endif mysql_query(&mysql,query); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); //tAlias("Record Deleted"); if(mysql_affected_rows(&mysql)>0) tAlias(LANG_NBR_RECDELETED); else tAlias(LANG_NBR_RECNOTDELETED); }//void DeletetAlias(void) void Insert_tAlias(void) { #ifdef ISM3FIELDS time_t clock; time(&clock); #endif //insert query //insert query sprintf(query,"INSERT INTO tAlias SET uAlias=%u, cUser='%s', cTargetEmail='%s', uServer=%u, uOwner=%u, uCreatedBy=%u, uCreatedDate=%lu, uModBy=%u, uModDate=0", uAlias ,TextAreaSave(cLocalUser) ,TextAreaSave(cTargetEmail) ,uServer ,uOwner ,uCreatedBy ,(long unsigned)clock ,uModBy ); mysql_query(&mysql,query); #ifdef ISM3FIELDS uCreatedDate=clock; #endif }//void Insert_tAlias(void) void Update_tAlias(char *rowid) { #ifdef ISM3FIELDS time_t clock; time(&clock); #endif //update query //update query sprintf(query,"UPDATE tAlias SET uAlias=%u,cUser='%s',cTargetEmail='%s',uServer=%u,uModBy=%u,uModDate=%lu WHERE _rowid=%s", uAlias ,TextAreaSave(cLocalUser) ,TextAreaSave(cTargetEmail) ,uServer ,uModBy ,(long unsigned)clock ,rowid); mysql_query(&mysql,query); #ifdef ISM3FIELDS uModDate=clock; #endif }//void Update_tAlias(void) void ModtAlias(void) { register int i=0; MYSQL_RES *res; MYSQL_ROW field; #ifdef ISM3FIELDS unsigned uPreModDate=0; //Mod select query if(uPermLevel<10) sprintf(query,"SELECT tAlias.uAlias,\ tAlias.uModDate\ FROM tAlias,tClient\ WHERE tAlias.uAlias=%u\ AND tAlias.uOwner=tClient.uClient\ AND (tClient.uOwner=%u OR tClient.uClient=%u)" ,uAlias,uLoginClient,uLoginClient); else sprintf(query,"SELECT uAlias,uModDate FROM tAlias\ WHERE uAlias=%u" ,uAlias); #else sprintf(query,"SELECT uAlias FROM tAlias\ WHERE uAlias=%u" ,uAlias); #endif mysql_query(&mysql,query); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); res=mysql_store_result(&mysql); i=mysql_num_rows(res); //if(i<1) tAlias("Record does not exist"); if(i<1) tAlias(LANG_NBR_RECNOTEXIST); //if(i>1) tAlias("Multiple rows!"); if(i>1) tAlias(LANG_NBR_MULTRECS); field=mysql_fetch_row(res); #ifdef ISM3FIELDS sscanf(field[1],"%u",&uPreModDate); if(uPreModDate!=uModDate) tAlias(LANG_NBR_EXTMOD); #endif Update_tAlias(field[0]); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); //sprintf(query,"record %s modified",field[0]); sprintf(query,LANG_NBRF_REC_MODIFIED,field[0]); tAlias(query); }//ModtAlias(void) void tAliasList(void) { MYSQL_RES *res; MYSQL_ROW field; ExttAliasListSelect(); mysql_query(&mysql,query); if(mysql_error(&mysql)[0]) mysqlSendmail(mysql_error(&mysql)); res=mysql_store_result(&mysql); i=mysql_num_rows(res); PageMachine("tAliasList",1,"");//1 is auto header list mode. Opens table! //Filter select drop down ExttAliasListFilter(); printf("",command); printf("\n"); printf("\n"); printf(""); mysql_data_seek(res,start-1); for(n=0;n<(end-start+1);n++) { field=mysql_fetch_row(res); if(!field) { printf("
uAliascUsercTargetEmailuServeruOwneruCreatedByuCreatedDateuModByuModDate
End of data
"); Footer_ism3(); } if(n % 2) printf(""); else printf(""); printf(" %s%s%s%s%s%s%s%s%s" ,field[0] ,field[0] ,field[1] ,field[2] ,field[3] ,field[4] ,field[5] ,field[6] ,field[7] ,field[8] ); } printf("\n"); Footer_ism3(); }//tAliasList() void CreatetAlias(void) { sprintf(query,"CREATE TABLE tAlias ( uAlias int unsigned PRIMARY KEY AUTO_INCREMENT, cUser varchar(32) NOT NULL DEFAULT '',unique (cUser,uServer), uOwner int unsigned NOT NULL DEFAULT 0,index (uOwner), uCreatedBy int unsigned NOT NULL DEFAULT 0, uCreatedDate int unsigned NOT NULL DEFAULT 0, uModBy int unsigned NOT NULL DEFAULT 0, uModDate int unsigned NOT NULL DEFAULT 0, uServer int unsigned NOT NULL DEFAULT 0,index (uServer), cTargetEmail varchar(255) NOT NULL DEFAULT '' )"); mysql_query(&mysql,qstr); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); }//CreatetAlias() //sedall patch1