/* FILE $Id$ (Built initially by unixservice.com mysqlRAD2) PURPOSE Non schema-dependent table and application table related functions. AUTHOR (C) 2001-2009 Gary Wallis and Hugo Urquiza. */ //ModuleFunctionProtos() static char cSearch[100]={""}; void tDeletedResourceNavList(void); void DeletedResourceLinks(unsigned uZone); unsigned ZoneExists(unsigned uZone); void ExtProcesstDeletedResourceVars(pentry entries[], int x) { register int i; for(i=0;i=7) { ProcesstDeletedResourceVars(entries,x); guMode=2000; tDeletedResource(LANG_NB_CONFIRMNEW); } else tDeletedResource("Error: Denied by permissions settings"); } else if(!strcmp(gcCommand,LANG_NB_CONFIRMNEW)) { if(guPermLevel>=7) { ProcesstDeletedResourceVars(entries,x); guMode=2000; //Check entries here guMode=0; uDeletedResource=0; uCreatedBy=guLoginClient; uOwner=guCompany; uModBy=0;//Never modified uModDate=0;//Never modified NewtDeletedResource(0); } else tDeletedResource("Error: Denied by permissions settings"); } */ if(!strcmp(gcCommand,LANG_NB_DELETE)) { ProcesstDeletedResourceVars(entries,x); if(uAllowDel(uOwner,uCreatedBy)) { guMode=2001; tDeletedResource(LANG_NB_CONFIRMDEL); } else tDeletedResource("Error: Denied by permissions settings"); } else if(!strcmp(gcCommand,LANG_NB_CONFIRMDEL)) { ProcesstDeletedResourceVars(entries,x); if(uAllowDel(uOwner,uCreatedBy)) { guMode=5; DeletetDeletedResource(); } else tDeletedResource("Error: Denied by permissions settings"); } /* else if(!strcmp(gcCommand,LANG_NB_MODIFY)) { ProcesstDeletedResourceVars(entries,x); if(uAllowMod(uOwner,uCreatedBy)) { guMode=2002; tDeletedResource(LANG_NB_CONFIRMMOD); } else tDeletedResource("Error: Denied by permissions settings"); } else if(!strcmp(gcCommand,LANG_NB_CONFIRMMOD)) { if(uAllowMod(uOwner,uCreatedBy)) { guMode=2002; //Check entries here guMode=0; uModBy=guLoginClient; ModtDeletedResource(); } else tDeletedResource("Error: Denied by permissions settings"); } */ else if(!strcmp(gcCommand,"Restore RR")) { ProcesstDeletedResourceVars(entries,x); if(uAllowMod(uOwner,uCreatedBy)) { guMode=4000; tDeletedResource("Double check that you want to restore the selected RR and confirm."); } else tDeletedResource("Error: Denied by permissions settings"); } else if(!strcmp(gcCommand,"Confirm RR Restore")) { unsigned uNSSet=0; char cZone[200]={""}; // //Check if the zone exists //Insert the tResource record //Delete the tDeletedResource record //Submit a zone modify job ProcesstDeletedResourceVars(entries,x); if(!uAllowMod(uOwner,uCreatedBy)) tDeletedResource("Error: Denied by permissions settings"); if(!ZoneExists(uZone)) tDeletedResource("The zone associated with the RR does not exist at tZone. Can't restore RR"); else { //get zone data for job submission MYSQL_RES *res; MYSQL_ROW field; sprintf(gcQuery,"SELECT uNSSet,cZone FROM tZone WHERE uZone=%u",uZone); mysql_query(&gMysql,gcQuery); if(mysql_errno(&gMysql)) htmlPlainTextError(mysql_error(&gMysql)); res=mysql_store_result(&gMysql); field=mysql_fetch_row(res); sscanf(field[0],"%u",&uNSSet); sprintf(cZone,"%s",field[1]); mysql_free_result(res); } sprintf(gcQuery,"INSERT INTO tResource SET uResource=%u,uZone=%u,cName='%s',uTTL=%u," "uRRType=%u,cParam1='%s',cParam2='%s',cComment='%s',uOwner=%u,uCreatedBy=1,uCreatedDate=UNIX_TIMESTAMP(NOW())", uDeletedResource ,uZone ,cName ,uTTL ,uRRType ,cParam1 ,cParam2 ,cComment ,uOwner ); mysql_query(&gMysql,gcQuery); if(mysql_errno(&gMysql)) htmlPlainTextError(mysql_error(&gMysql)); iDNSLog(uDeletedResource,"tResource","New (Restore RR)"); if(SubmitJob("New",uNSSet,cZone,0,0)) htmlPlainTextError(mysql_error(&gMysql)); sprintf(gcQuery,"DELETE FROM tDeletedResource WHERE uDeletedResource=%u",uDeletedResource); mysql_query(&gMysql,gcQuery); if(mysql_errno(&gMysql)) htmlPlainTextError(mysql_error(&gMysql)); tDeletedResource("RR restored correctly"); } } }//void ExttDeletedResourceCommands(pentry entries[], int x) void ExttDeletedResourceButtons(void) { unsigned uDefault=0; OpenFieldSet("tDeletedResource Aux Panel",100); switch(guMode) { case 2000: printf("

Enter/mod data
"); printf(LANG_NBB_CONFIRMNEW); break; case 2001: printf("

Think twice
"); printf(LANG_NBB_CONFIRMDEL); break; case 2002: printf("

Review changes
"); printf(LANG_NBB_CONFIRMMOD); break; case 4000: printf("

Restore RR Confirm

"); printf("\n"); break; default: uDefault=1; if(uDeletedResource) printf("
\n"); if(uZone) { printf("

RRNavList
"); DeletedResourceLinks(uZone); } } if(!uDefault && cSearch[0]) printf("",cSearch); CloseFieldSet(); }//void ExttDeletedResourceButtons(void) void ExttDeletedResourceAuxTable(void) { }//void ExttDeletedResourceAuxTable(void) void ExttDeletedResourceGetHook(entry gentries[], int x) { register int i; for(i=0;i"); if(strcmp(gcFilter,"uDeletedResource")) printf(""); else printf(""); if(strcmp(gcFilter,"None")) printf(""); else printf(""); printf(""); }//void ExttDeletedResourceListFilter(void) void ExttDeletedResourceNavBar(void) { printf(LANG_NBB_SKIPFIRST); printf(LANG_NBB_SKIPBACK); printf(LANG_NBB_SEARCH); if(guPermLevel>=10 && !guListMode) printf(LANG_NBB_NEW); if(uAllowMod(uOwner,uCreatedBy)) printf(LANG_NBB_MODIFY); if(uAllowDel(uOwner,uCreatedBy)) printf(LANG_NBB_DELETE); if(uOwner) printf(LANG_NBB_LIST); printf(LANG_NBB_SKIPNEXT); printf(LANG_NBB_SKIPLAST); printf("   \n"); }//void ExttDeletedResourceNavBar(void) void DeletedResourceLinks(unsigned uZone) { MYSQL_RES *res; MYSQL_ROW field; char cExtra[64]={""}; //if(!uZone) return;} sprintf(cExtra,"tDeletedResource.uZone=%u",uZone); ExtSelectSearch("tDeletedResource","tDeletedResource.cName,tDeletedResource.uDeletedResource,(SELECT tRRType.cLabel FROM tRRType WHERE " "tRRType.uRRType=tDeletedResource.uRRType)","cName","",cExtra,0); mysql_query(&gMysql,gcQuery); if(mysql_errno(&gMysql)) htmlPlainTextError(mysql_error(&gMysql)); res=mysql_store_result(&gMysql); while((field=mysql_fetch_row(res))) printf("%s %s
\n",field[1],field[0],field[2]); }//void ResourceLinks(unsigned uZone) unsigned ZoneExists(unsigned uZone) { MYSQL_RES *res; sprintf(gcQuery,"SELECT uNSSet,cZone FROM tZone WHERE uZone=%u",uZone); mysql_query(&gMysql,gcQuery); if(mysql_errno(&gMysql)) htmlPlainTextError(mysql_error(&gMysql)); res=mysql_store_result(&gMysql); return((unsigned)mysql_num_rows(res)); }//unsigned ZoneExists(unsigned uZone)