static LPTABLExFILE RemoveElement (LPTABLExFILE lpFile, char* aTable) { LPTABLExFILE tm, prec; LPTABLExFILE ls = lpFile; prec = ls; while (ls) { if (x_strcmp (ls->TableName, aTable) == 0) { tm = ls; if (ls == lpFile) { ls = ls->next; ESL_FreeMem (tm); tm = NULL; return (ls); } else { prec->next = ls->next; ESL_FreeMem (tm); tm = NULL; return (lpFile); } } prec = ls; ls = ls->next; } return lpFile; }
LPCOMMENTCOLUMN CxDlgObjectComment::FindCurrentColumn(CString& csColName ) { LPOBJECTLIST ls = m_ListColumn; LPCOMMENTCOLUMN lpCommentCol; while (ls) { lpCommentCol = (LPCOMMENTCOLUMN)ls->lpObject; if (x_strcmp((LPTSTR)lpCommentCol->szColumnName,(LPTSTR)(LPCTSTR)csColName)==0) return (LPCOMMENTCOLUMN)ls->lpObject; ls = (LPOBJECTLIST)ls->lpNext; } return NULL; }
static LPTABLExFILE FindStringInListTableAndFile (LPTABLExFILE lpFile, char* aString) { LPTABLExFILE ls = lpFile; while (ls) { if (x_strcmp (ls->TableName, aString) == 0) return (ls); ls = ls->next; } return NULL; }
static LPOBJECTLIST FindStringInListObject (LPOBJECTLIST lpList, char* Element) { LPOBJECTLIST ls = lpList; char* aString; while (ls) { aString = (char *) ls->lpObject; if (x_strcmp (aString, Element) == 0) return(ls); ls = ls->lpNext; } return NULL; }
static BOOL Modify (LPTABLExFILE lptablexfile) { LPTABLExFILE ls = lptablexfile; char* table; char file [2*MAXOBJECTNAME]; while (ls) { table = ls->TableName; wsprintf (file, "%s.trl", table); if (x_strcmp (file, ls->FileName) != 0) return TRUE; ls = ls->next; } return FALSE; }
static bool Addr2HostPort( i8 *addr, ul32 *host, u16 *port ) { i8 *p,*q; static i8 HostPortstring[32]; p=addr; q=HostPortstring; while(*p!=':' && *p!=0) *q++ = *p++; /*tolower(*p++); */ *q++=0; if(x_strcmp(HostPortstring,"udp")!=0) { return FALSE; } if(*p++!=':') { return FALSE; } q=HostPortstring; while(*p!=':' && *p!=0) *q++=*p++; *q++=0; *host=x_ntohl(x_inet_addr(HostPortstring)); if(*p++!=':') { return FALSE; } q=HostPortstring; while(*p!=':' && *p!=0) *q++=*p++; *q++=0; *port=x_atoi(HostPortstring); return TRUE; }
static BOOL ProhibitString_all2 (HWND hwnd) { int nSel, i; char szFindStr [MAXOBJECTNAME]; HWND hwndObjectType = GetDlgItem (hwnd, IDC_LOCATE_OBJECTTYPE); HWND hwndFind = GetDlgItem (hwnd, IDC_LOCATE_FIND); if ((nSel = ComboBox_GetCurSel (hwndObjectType)) != CB_ERR) i = Obj4locate() [nSel]; else i = -1; if (i == -1) return TRUE; switch (i) { case OT_RULE : case OT_INDEX : case OT_INTEGRITY : Edit_GetText (hwndFind, szFindStr, sizeof (szFindStr)); if (x_strcmp (szFindStr, String_all) == 0) { char* mess; char mess2 [200]; HWND currentFocus = GetFocus(); mess = ResourceString ((UINT)IDS_E_CANNOT_USE_THIS); wsprintf (mess2, mess, String_all); MessageBox (NULL, mess2, NULL, MB_OK| MB_TASKMODAL); SetFocus (currentFocus); return FALSE; } default: return TRUE; } }
static BOOL OnInitDialog (HWND hwnd, HWND hwndFocus, LPARAM lParam) { LPGRANTPARAMS lpgrant = (LPGRANTPARAMS)lParam; HWND hwndDatabases = GetDlgItem (hwnd, IDC_GNREF_PROCEDURE_DATABASES); HWND hwndGrantees = GetDlgItem (hwnd, IDC_GNREF_PROCEDURE_GRANTEES); HWND hwndProcedures= GetDlgItem (hwnd, IDC_GNREF_PROCEDURE_PROCEDURES); UCHAR szDatabaseName[MAXOBJECTNAME]; char szTitle [MAX_TITLEBAR_LEN]; char szFormat[100]; if (!AllocDlgProp (hwnd, lpgrant)) return FALSE; // // force catolist.dll to load // CATOListDummy(); if (lpgrant->ObjectType == OT_PROCEDURE) LoadString (hResource, (UINT)IDS_T_GNREF_PROCEDURE, szFormat, sizeof (szFormat)); else LoadString (hResource, (UINT)IDS_T_GNREF_SEQUENCE, szFormat, sizeof (szFormat)); wsprintf ( szTitle, szFormat, GetVirtNodeName (GetCurMdiNodeHandle ())); SetWindowText (hwnd, szTitle); if (lpgrant->ObjectType == OT_PROCEDURE) lpHelpStack = StackObject_PUSH (lpHelpStack, StackObject_INIT ((UINT)IDD_GNREF_PROCEDURE)); else lpHelpStack = StackObject_PUSH (lpHelpStack, StackObject_INIT ((UINT)ID_HELPID_GNREF_SEQUENCE)); if (lpgrant->GranteeType == OT_GROUP) { Button_SetCheck (GetDlgItem (hwnd, IDC_GNREF_PROCEDURE_GROUP), TRUE); FillGrantees (hwndGrantees, lpgrant->GranteeType); } else if (lpgrant->GranteeType == OT_ROLE) { Button_SetCheck (GetDlgItem (hwnd, IDC_GNREF_PROCEDURE_ROLE), TRUE); FillGrantees (hwndGrantees, lpgrant->GranteeType); } else { if (x_strcmp (lpgrant->PreselectGrantee, lppublicdispstring()) == 0) Button_SetCheck (GetDlgItem (hwnd, IDC_GNREF_PROCEDURE_PUBLIC), TRUE); else { Button_SetCheck (GetDlgItem (hwnd, IDC_GNREF_PROCEDURE_USER), TRUE); lpgrant->GranteeType = OT_USER; FillGrantees (hwndGrantees, lpgrant->GranteeType); } } ComboBoxFillDatabases (hwndDatabases); ComboBoxSelectFirstStr (hwndDatabases); ComboBox_GetText (hwndDatabases, szDatabaseName, sizeof (szDatabaseName)); x_strcpy (lpgrant->DBName, szDatabaseName); if (lpgrant->ObjectType == OT_PROCEDURE) { if (!CAListBoxFillProcedures (hwndProcedures, szDatabaseName)) CAListBoxDestroyItemData (hwndProcedures); } else { ShowWindow( GetDlgItem (hwnd,IDC_GNREF_PROCEDURE_OPTION) ,SW_HIDE);// Hided "With grant Option" control LoadString (hResource, (UINT)IDS_STATIC_SEQUENCE, szFormat, sizeof (szFormat)); SetDlgItemText( hwnd, IDC_STATIC_GNREF_PROCEDURE, szFormat ); if (!CAListBoxFillSequences (hwndProcedures, lpgrant->DBName)) CAListBoxDestroyItemData (hwndProcedures); } if (x_strlen (lpgrant->PreselectGrantee) > 1) PreselectGrantee (hwndGrantees, lpgrant->PreselectGrantee); if (x_strlen (lpgrant->PreselectObject) > 1) CAListBoxSelectStringWithOwner (hwndProcedures, lpgrant->PreselectObject, lpgrant->PreselectObjectOwner); EnableDisableOKButton (hwnd); richCenterDialog(hwnd); return TRUE; }
static BOOL ObjectFound (HWND hwnd, int objtype) { int iresulttype, ires; char szFindStr [MAXOBJECTNAME]; UCHAR buf1 [MAXOBJECTNAME], buf2 [MAXOBJECTNAME], buf3 [MAXOBJECTNAME]; LPUCHAR parentstrings [MAXPLEVEL]; HWND hwndDB = GetDlgItem (hwnd, IDC_LOCATE_DATABASE); HWND hwndFind = GetDlgItem (hwnd, IDC_LOCATE_FIND); int hdl = GetCurMdiNodeHandle (); BOOL bwsystem = GetSystemFlag (); if (objtype < 0) return FALSE; else { switch (objtype) { case OT_DATABASE: case OT_USER : case OT_GROUP : case OT_ROLE : case OT_LOCATION: Edit_GetText (hwndFind, szFindStr, sizeof (szFindStr)); if (x_strcmp (szFindStr, String_all) == 0) return TRUE; else { ires = DOMGetObjectLimitedInfo (hdl, szFindStr, // Object name to find "", // Object owner objtype, // Object type 0, // Level NULL, // Parent string bwsystem, &iresulttype, buf1, buf2, buf3); if (ires == RES_SUCCESS) return TRUE; else return FALSE; } case OT_TABLE : case OT_VIEW : case OT_PROCEDURE : case OT_SCHEMAUSER : case OT_SYNONYM : case OT_DBEVENT : case OT_SEQUENCE : Edit_GetText (hwndFind, szFindStr, sizeof (szFindStr)); if (x_strcmp (szFindStr, String_all) == 0) return TRUE; else { char szDbName [MAXOBJECTNAME]; Edit_GetText (hwndDB, szDbName, sizeof (szDbName)); parentstrings [0] = szDbName; ires = DOMGetObjectLimitedInfo (hdl, szFindStr, // Object name to find "", // Object owner objtype, // Object type 1, // Level parentstrings, // Parent string bwsystem, &iresulttype, buf1, buf2, buf3); if (ires == RES_SUCCESS) return TRUE; else return FALSE; } case OT_RULE : case OT_INDEX : case OT_INTEGRITY : { char szDbName [MAXOBJECTNAME]; Edit_GetText (hwndFind, szFindStr, sizeof (szFindStr)); if (x_strcmp (szFindStr, String_all) == 0) return FALSE; Edit_GetText (hwndDB, szDbName, sizeof (szDbName)); parentstrings [0] = szDbName; ires = DOMGetObjectLimitedInfo (hdl, szFindStr, // Object name to find "", // Object owner objtype, // Object type 2, // Level parentstrings, // Parent string bwsystem, &iresulttype, buf1, buf2, buf3); if (ires == RES_SUCCESS) return TRUE; else return FALSE; } default: return FALSE; } } }
static BOOL FillStructureFromControls (HWND hwnd, LPSECURITYALARMPARAMS lpsecurity) { char buf [MAXOBJECTNAME]; // char buffowner [MAXOBJECTNAME]; // char bufftable [MAXOBJECTNAME]; char szDBE [MAXOBJECTNAME]; char szName [MAXOBJECTNAME]; LPCHECKEDOBJECTS obj; LPCHECKEDOBJECTS list = NULL; int i, max_database_number, checked; HWND hwndDB = GetDlgItem (hwnd, IDC_SALARM_ONTABLE); HWND hwndUsers = GetDlgItem (hwnd, IDC_SALARM_BYUSER ); HWND hwndSuccess = GetDlgItem (hwnd, IDC_SALARM_SUCCESS); HWND hwndFailure = GetDlgItem (hwnd, IDC_SALARM_FAILURE); HWND hwndSelect = GetDlgItem (hwnd, IDC_SALARM_SELECT); HWND hwndDelete = GetDlgItem (hwnd, IDC_SALARM_DELETE); HWND hwndInsert = GetDlgItem (hwnd, IDC_SALARM_INSERT); HWND hwndUpdate = GetDlgItem (hwnd, IDC_SALARM_UPDATE); HWND hwndConnect = GetDlgItem (hwnd, IDC_SALARM_CONNECT); HWND hwndDisconnect = GetDlgItem (hwnd, IDC_SALARM_DISCONNECT); HWND hwndDBE = GetDlgItem (hwnd, IDC_SALARM_DBEVENT); HWND hwndDBEText = GetDlgItem (hwnd, IDC_SALARM_DBEVENT_TEXT); HWND hwndName = GetDlgItem (hwnd, IDC_SALARM_NAME); x_strcpy (lpsecurity->DBName, "iidbdb"); ZEROINIT (szName); Edit_GetText (hwndName, szName, sizeof (szName)); x_strcpy (lpsecurity->ObjectName, szName); lpsecurity->bsuccfail [SECALARMSUCCESS] = Button_GetCheck (hwndSuccess); lpsecurity->bsuccfail [SECALARMFAILURE] = Button_GetCheck (hwndFailure); // // Get selection from // toggle buttons (Select, Delete, Insert, Update) // lpsecurity->baccesstype [SECALARMSEL] = Button_GetCheck (hwndSelect); lpsecurity->baccesstype [SECALARMDEL] = Button_GetCheck (hwndDelete); lpsecurity->baccesstype [SECALARMINS] = Button_GetCheck (hwndInsert); lpsecurity->baccesstype [SECALARMUPD] = Button_GetCheck (hwndUpdate); lpsecurity->baccesstype [SECALARMCONNECT] = Button_GetCheck (hwndConnect ); lpsecurity->baccesstype [SECALARMDISCONN] = Button_GetCheck (hwndDisconnect); // // Get the names of users that have been checked and // insert into the list // if (Button_GetCheck (GetDlgItem (hwnd, IDC_SALARM_USER))) lpsecurity->iAuthIdType = OT_USER; else if (Button_GetCheck (GetDlgItem (hwnd, IDC_SALARM_GROUP))) lpsecurity->iAuthIdType = OT_GROUP; else if (Button_GetCheck (GetDlgItem (hwnd, IDC_SALARM_ROLE))) lpsecurity->iAuthIdType = OT_ROLE; else if (Button_GetCheck (GetDlgItem (hwnd, IDC_SALARM_PUBLIC))) lpsecurity->iAuthIdType = OT_PUBLIC; else lpsecurity->iAuthIdType = OT_USER; max_database_number = CAListBox_GetCount (hwndUsers); if (Button_GetCheck (GetDlgItem (hwnd, IDC_SALARM_PUBLIC))) { obj = ESL_AllocMem (sizeof (CHECKEDOBJECTS)); if (!obj) { FreeAttachedPointers (lpsecurity, OTLL_SECURITYALARM); ErrorMessage ((UINT)IDS_E_CANNOT_ALLOCATE_MEMORY, RES_ERR); return FALSE; } else { x_strcpy (obj->dbname, lppublicsysstring()); obj->bchecked = TRUE; list = AddCheckedObject (list, obj); } } for (i = 0; i < max_database_number; i++) { checked = CAListBox_GetSel (hwndUsers, i); if (checked == 1) { CAListBox_GetText (hwndUsers, i, buf); obj = ESL_AllocMem (sizeof (CHECKEDOBJECTS)); if (!obj) { FreeAttachedPointers (lpsecurity, OTLL_SECURITYALARM); ErrorMessage ((UINT)IDS_E_CANNOT_ALLOCATE_MEMORY, RES_ERR); return FALSE; } else { if (x_strcmp (buf, lppublicdispstring()) == 0) x_strcpy (obj->dbname, lppublicsysstring()); else x_strcpy (obj->dbname, QuoteIfNeeded(buf)); obj->bchecked = TRUE; list = AddCheckedObject (list, obj); } } } lpsecurity->lpfirstUser = list; // // Get the names of Database that have been checked and // insert into the list // max_database_number = CAListBox_GetCount (hwndDB); list = NULL; for (i=0; i<max_database_number; i++) { checked = CAListBox_GetSel (hwndDB, i); if (checked) { CAListBox_GetText (hwndDB, i, buf); obj = ESL_AllocMem (sizeof (CHECKEDOBJECTS)); if (!obj) { FreeAttachedPointers (lpsecurity, OTLL_SECURITYALARM); ErrorMessage ((UINT)IDS_E_CANNOT_ALLOCATE_MEMORY, RES_ERR); return FALSE; } else { x_strcpy (obj->dbname, buf); obj->bchecked = TRUE; list = AddCheckedObject (list, obj); } } } lpsecurity->lpfirstTable = list; ComboBox_GetText (hwndDBE, szDBE, sizeof (szDBE)); if ((x_strlen (szDBE) > 0 ) && (x_strcmp (szDBE, szSecurityDBEvent) != 0)) { char szOwner [MAXOBJECTNAME]; char szAll [MAXOBJECTNAME]; int len, nSel; nSel = ComboBox_GetCurSel (hwndDBE); x_strcpy (szOwner, (char *) ComboBox_GetItemData (hwndDBE, nSel)); StringWithOwner (szDBE, szOwner, szAll); x_strcpy (lpsecurity->DBEvent, szAll); len = Edit_GetTextLength (hwndDBEText); if (len > 0) { lpsecurity->lpDBEventText = ESL_AllocMem ((len*sizeof(TCHAR)) + sizeof(TCHAR)); if (lpsecurity->lpDBEventText) { Edit_GetText (hwndDBEText, lpsecurity->lpDBEventText, len+1); // Emb 26/06/97: +1 was missing --> lost character if (EscapedSimpleQuote(&lpsecurity->lpDBEventText) == RES_ERR) { FreeAttachedPointers (lpsecurity, OTLL_SECURITYALARM); ErrorMessage ((UINT)IDS_E_CANNOT_ALLOCATE_MEMORY, RES_ERR); return FALSE; } } else { FreeAttachedPointers (lpsecurity, OTLL_SECURITYALARM); ErrorMessage ((UINT)IDS_E_CANNOT_ALLOCATE_MEMORY, RES_ERR); return FALSE; } } lpsecurity->bDBEvent = TRUE; } else if (lpsecurity->lpDBEventText) { ESL_FreeMem (lpsecurity->lpDBEventText); lpsecurity->lpDBEventText = NULL; } return TRUE; }
static void OnCommand (HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) { LPSECURITYALARMPARAMS lpsecurity = GetDlgProp (hwnd); HWND hwndUsers = GetDlgItem (hwnd, IDC_SALARM_BYUSER ); HWND hwndTables = GetDlgItem (hwnd, IDC_SALARM_ONTABLE ); HWND hwndName = GetDlgItem (hwnd, IDC_SALARM_NAME ); int idu; int i, n, idt; int ires; char szName [MAXOBJECTNAME]; switch (id) { case IDOK: if (!FillStructureFromControls (hwnd, lpsecurity)) break; // // Call the low level function to write data on disk // ires = DBAAddObject (GetVirtNodeName (GetCurMdiNodeHandle ()), OTLL_SECURITYALARM, (void *) lpsecurity ); if (ires != RES_SUCCESS) { FreeAttachedPointers (lpsecurity, OTLL_SECURITYALARM); ErrorMessage ((UINT)IDS_E_CREATE_SECURITY_FAILED, ires); break; } else EndDialog (hwnd, TRUE); FreeAttachedPointers (lpsecurity, OTLL_SECURITYALARM); break; case IDCANCEL: EndDialog (hwnd, FALSE); FreeAttachedPointers (lpsecurity, OTLL_SECURITYALARM); break; case IDC_SALARM_BYUSER: if (Edit_GetText (hwndName, szName, sizeof (szName)) != 0 && CAListBox_GetSelCount (hwndUsers) > 1) { idu=CAListBox_GetCurSel (hwndUsers); n = CAListBox_GetCount (hwndUsers); for (i=0; i<n; i++) CAListBox_SetSel (hwndUsers, FALSE, i); CAListBox_SetCurSel (hwndUsers, idu); CAListBox_SetSel (hwndUsers, TRUE, idu); //"Multiple auth-id is not allowed if the security alarm has a name." MessageBox(hwnd, ResourceString(IDS_ERR_USING_CHECKPOINT), NULL, MB_OK | MB_ICONEXCLAMATION | MB_TASKMODAL); EnableDisableOKButton (hwnd); } else if (CAListBox_GetSelCount (hwndUsers) > 1) Edit_Enable(hwndName,FALSE); else Edit_Enable(hwndName,TRUE); EnableDisableOKButton (hwnd); break; case IDC_SALARM_ONTABLE: if (codeNotify == CALBN_CHECKCHANGE) { idt = CAListBox_GetCurSel (hwndTables); n = CAListBox_GetCount (hwndTables); for (i=0; i<n; i++) CAListBox_SetSel (hwndTables, FALSE, i); CAListBox_SetCurSel (hwndTables, idt); CAListBox_SetSel (hwndTables, TRUE, idt); if (bNoDisplayMessageDB == FALSE) { int iret; //"Only one database can be checked. Previous database, if any, was unchecked.\nDon't display this message any more?" iret = MessageBox(hwnd, ResourceString(IDS_ERR_DATABASE_BE_CHECKED), NULL, MB_OKCANCEL | MB_ICONEXCLAMATION | MB_TASKMODAL); if (iret == IDOK) bNoDisplayMessageDB=TRUE; } } EnableDisableOKButton (hwnd); break; case IDC_SALARM_SUCCESS: case IDC_SALARM_FAILURE: case IDC_SALARM_SUCCESSFAILURE: case IDC_SALARM_SELECT: case IDC_SALARM_DELETE: case IDC_SALARM_INSERT: case IDC_SALARM_UPDATE: case IDC_SALARM_CONNECT: case IDC_SALARM_DISCONNECT: EnableDisableOKButton (hwnd); break; case IDC_SALARM_USER: if (Button_GetCheck (hwndCtl)) { CAListBox_ResetContent (hwndUsers); CAListBoxFillUsers (hwndUsers); EnableDisableOKButton (hwnd); } break; case IDC_SALARM_GROUP: if (Button_GetCheck (hwndCtl)) { CAListBox_ResetContent (hwndUsers); CAListBoxFillGroups (hwndUsers); EnableDisableOKButton (hwnd); } break; case IDC_SALARM_ROLE: if (Button_GetCheck (hwndCtl)) { CAListBox_ResetContent (hwndUsers); CAListBoxFillRoles (hwndUsers); EnableDisableOKButton (hwnd); } break; case IDC_SALARM_PUBLIC: if (Button_GetCheck (hwndCtl)) { CAListBox_ResetContent (hwndUsers); EnableDisableOKButton (hwnd); } break; case IDC_SALARM_DBEVENT: if (codeNotify == CBN_SELCHANGE) { char szItem [MAXOBJECTNAME]; ZEROINIT (szItem); ComboBox_GetText (hwndCtl, szItem, sizeof (szItem)); if (x_strcmp (szItem, szSecurityDBEvent) == 0) { lpsecurity->bDBEvent = FALSE; EnableControl (hwnd, FALSE); } else EnableControl (hwnd, TRUE); } break; } }
static BOOL OnInitDialog (HWND hwnd, HWND hwndFocus, LPARAM lParam) { LPREVOKEPARAMS lprevoke = (LPREVOKEPARAMS)lParam; HWND hwndGrantees = GetDlgItem (hwnd, IDC_REVOKE_TABLE_GRANTEES); char szTitle [90]; char szStr [MAX_TITLEBAR_LEN]; int i, positive_privilege; BOOL bGrantAll = FALSE; char buffer [MAXOBJECTNAME]; LPUCHAR parentstrings [MAXPLEVEL]; if (!AllocDlgProp (hwnd, lprevoke)) return FALSE; // // force catolist.dll to load // CATOListDummy(); for (i = 0; i < GRANT_MAX_PRIVILEGES; i++) { if (lprevoke->PreselectPrivileges [i]) { positive_privilege = i; break; } } switch (lprevoke->ObjectType) { case OT_TABLE: lpHelpStack = StackObject_PUSH (lpHelpStack, StackObject_INIT ((UINT)IDD_REVOKE_TABLE)); break; case OT_VIEW: lpHelpStack = StackObject_PUSH (lpHelpStack, StackObject_INIT ((UINT)IDD_REVOKE_VIEW)); break; case OT_DBEVENT: lpHelpStack = StackObject_PUSH (lpHelpStack, StackObject_INIT ((UINT)IDD_REVOKE_DBEVENT)); break; case OT_PROCEDURE: lpHelpStack = StackObject_PUSH (lpHelpStack, StackObject_INIT ((UINT)IDD_RVKGPROC)); break; case OT_SEQUENCE: lpHelpStack = StackObject_PUSH (lpHelpStack, StackObject_INIT ((UINT)IDD_RVKGSEQUENCE)); break; } switch (positive_privilege) { case GRANT_SELECT : LoadString (hResource, (UINT)IDS_T_REVOKE_SELECT_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_SELECT] = TRUE; if (lprevoke->ObjectType == OT_TABLE) HaveBeenGranted = OT_TABLEGRANT_SEL_USER; else HaveBeenGranted = OT_VIEWGRANT_SEL_USER; break; case GRANT_INSERT : LoadString (hResource, (UINT)IDS_T_REVOKE_INSERT_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_INSERT] = TRUE; if (lprevoke->ObjectType == OT_TABLE) HaveBeenGranted = OT_TABLEGRANT_INS_USER; else HaveBeenGranted = OT_VIEWGRANT_INS_USER; break; case GRANT_UPDATE : LoadString (hResource, (UINT)IDS_T_REVOKE_UPDATE_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_UPDATE] = TRUE; if (lprevoke->ObjectType == OT_TABLE) HaveBeenGranted = OT_TABLEGRANT_UPD_USER; else HaveBeenGranted = OT_VIEWGRANT_UPD_USER; break; case GRANT_DELETE : LoadString (hResource, (UINT)IDS_T_REVOKE_DELETE_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_DELETE] = TRUE; if (lprevoke->ObjectType == OT_TABLE) HaveBeenGranted = OT_TABLEGRANT_DEL_USER; else HaveBeenGranted = OT_VIEWGRANT_DEL_USER; break; case GRANT_COPY_INTO : LoadString (hResource, (UINT)IDS_T_REVOKE_COPYINTO_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_COPY_INTO] = TRUE; HaveBeenGranted = OT_TABLEGRANT_CPI_USER; break; case GRANT_COPY_FROM : LoadString (hResource, (UINT)IDS_T_REVOKE_COPYFROM_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_COPY_FROM] = TRUE; HaveBeenGranted = OT_TABLEGRANT_CPF_USER; break; case GRANT_REFERENCE : LoadString (hResource, (UINT)IDS_T_REVOKE_REFERENCE_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_REFERENCE] = TRUE; HaveBeenGranted = OT_TABLEGRANT_REF_USER; break; case GRANT_RAISE : LoadString (hResource, (UINT)IDS_T_REVOKE_RAISE_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_RAISE] = TRUE; HaveBeenGranted = OT_DBEGRANT_RAISE_USER; break; case GRANT_REGISTER : LoadString (hResource, (UINT)IDS_T_REVOKE_REGISTER_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_REGISTER] = TRUE; HaveBeenGranted = OT_DBEGRANT_REGTR_USER; break; case GRANT_EXECUTE : LoadString (hResource, (UINT)IDS_T_REVOKE_EXECUTE_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_EXECUTE] = TRUE; HaveBeenGranted = OT_PROCGRANT_EXEC_USER; break; case GRANT_NEXT_SEQUENCE : LoadString (hResource, (UINT)IDS_T_REVOKE_NEXT_SEQUENCE_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_NEXT_SEQUENCE] = TRUE; HaveBeenGranted = OT_SEQUGRANT_NEXT_USER; break; case GRANT_ALL : LoadString (hResource, (UINT)IDS_T_REVOKE_ALL_ON, szTitle, sizeof (szTitle)); lprevoke->Privileges [GRANT_ALL] = TRUE; bGrantAll = TRUE; switch (lprevoke->ObjectType) { case OT_TABLE: break; case OT_PROCEDURE: break; case OT_DBEVENT: break; } HaveBeenGranted = -1; break; } parentstrings [0] = lprevoke->DBName; GetExactDisplayString ( lprevoke->PreselectObject, lprevoke->PreselectObjectOwner, lprevoke->ObjectType, parentstrings, buffer); wsprintf ( szStr, szTitle, GetVirtNodeName ( GetCurMdiNodeHandle ()), lprevoke->DBName, buffer); SetWindowText (hwnd, szStr); if ( lprevoke->ObjectType == OT_SEQUENCE) { //Hide control the controls not used for sequences ShowWindow( GetDlgItem (hwnd,IDC_REVOKE_TABLE_GRANT_OPTION) ,SW_HIDE); // Hided "With grant Option" control ShowWindow( GetDlgItem (hwnd,IDC_REVOKE_TABLE_PRIVILEGE) ,SW_HIDE); ShowWindow( GetDlgItem (hwnd,102) ,SW_HIDE); ShowWindow( GetDlgItem (hwnd,5020) ,SW_HIDE); // Unchecked the controls not used Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_PRIVILEGE), FALSE); Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_CASCADE), TRUE); Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_RESTRICT), FALSE); Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_GRANT_OPTION), FALSE); } else { Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_PRIVILEGE),TRUE); Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_CASCADE), TRUE); } if (lprevoke->GranteeType == OT_UNKNOWN) { HandleUnknounObject (hwnd); } else if (lprevoke->GranteeType == OT_GROUP) { Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_GROUP), TRUE); FillGrantedUsers(hwndGrantees, lprevoke, HaveBeenGranted); } else if (lprevoke->GranteeType == OT_ROLE) { Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_ROLE), TRUE); FillGrantedUsers(hwndGrantees, lprevoke, HaveBeenGranted); } else { if (x_strcmp (lprevoke->PreselectGrantee, lppublicdispstring()) == 0) Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_PUBLIC), TRUE); else { lprevoke->GranteeType = OT_USER; Button_SetCheck (GetDlgItem (hwnd, IDC_REVOKE_TABLE_USER), TRUE); FillGrantedUsers(hwndGrantees, lprevoke, HaveBeenGranted); } } if (x_strlen (lprevoke->PreselectGrantee) > 0) { CAListBox_SelectString (hwndGrantees, -1, lprevoke->PreselectGrantee); } if (lprevoke->GranteeType != OT_UNKNOWN) EnableDisableOKButton (hwnd); richCenterDialog(hwnd); return TRUE; }
int GetDetailInfoLL(LPUCHAR lpVirtNode,int iobjecttype, void *lpparameters, BOOL bRetainSessForLock, int *ilocsession) { int iret, SessType; char connectname[MAXOBJECTNAME]; if (!lpparameters) { myerror(ERR_INVPARAMS); return RES_ERR; } if (bRetainSessForLock) SessType=SESSION_TYPE_CACHEREADLOCK; else SessType=SESSION_TYPE_CACHENOREADLOCK; switch (iobjecttype) { case OT_SEQUENCE: { LPSEQUENCEPARAMS pseqprm=(LPSEQUENCEPARAMS) lpparameters; if (!*(pseqprm->objectname)) { myerror(ERR_INVPARAMS); return RES_ERR; } if (!*(pseqprm->DBName)) { myerror(ERR_INVPARAMS); return RES_ERR; } wsprintf(connectname,"%s::%s",lpVirtNode, pseqprm->DBName); iret = Getsession(connectname, SessType, ilocsession); if (iret !=RES_SUCCESS) return RES_ERR; iret=GetInfSequence(pseqprm); } break; case OT_REPLIC_CONNECTION_V11: { LPREPLCONNECTPARAMS lpaddrepl= (LPREPLCONNECTPARAMS)lpparameters; ; wsprintf(connectname,"%s::%s",lpVirtNode,lpaddrepl->DBName); iret = Getsession(connectname, SessType, ilocsession); if (iret !=RES_SUCCESS) return RES_ERR; iret = ReplicConnectV11(lpaddrepl); } break; case OT_REPLIC_CONNECTION: { LPREPLCONNECTPARAMS lpaddrepl= (LPREPLCONNECTPARAMS)lpparameters; ; wsprintf(connectname,"%s::%s",lpVirtNode,lpaddrepl->DBName); iret = Getsession(connectname, SessType, ilocsession); if (iret !=RES_SUCCESS) return RES_ERR; iret = ReplicConnect(lpaddrepl); } break; case OT_DBEVENT: iret =RES_SUCCESS; // no displayable property // TO BE FINISHED session not opened. break; case OT_ROLE: { LPROLEPARAMS proleprm=(LPROLEPARAMS) lpparameters; if (!*(proleprm->ObjectName)) { myerror(ERR_INVPARAMS); return RES_ERR; } FreeAttachedPointers(lpparameters, iobjecttype); wsprintf(connectname,"%s::iidbdb",lpVirtNode); iret = Getsession(connectname, SessType, ilocsession); if (iret !=RES_SUCCESS) return RES_ERR; iret=GetInfRole(proleprm); } break; //JFS Begin case OT_REPLIC_CDDS : case OT_REPLIC_CDDS_V11 : { LPREPCDDS lpcdds = (LPREPCDDS)lpparameters; wsprintf(connectname,"%s::%s",lpVirtNode,lpcdds->DBName); iret = Getsession(connectname, SESSION_TYPE_INDEPENDENT, ilocsession); if (iret !=RES_SUCCESS) return RES_ERR; iret = CDDSLoadAll(lpcdds,lpVirtNode); } break; //JFS End case OT_GROUP : { LPGROUPPARAMS pgrpprm=(LPGROUPPARAMS) lpparameters; if (!*(pgrpprm->ObjectName)) { myerror(ERR_INVPARAMS); return RES_ERR; } FreeAttachedPointers(lpparameters, iobjecttype); wsprintf(connectname,"%s::iidbdb",lpVirtNode); iret = Getsession(connectname, SessType, ilocsession); if (iret !=RES_SUCCESS) return RES_ERR; iret=GetInfGrp(pgrpprm); } break; case OT_INTEGRITY: { LPINTEGRITYPARAMS pintegrityprm=(LPINTEGRITYPARAMS) lpparameters; if (!*(pintegrityprm->DBName)) { myerror(ERR_INVPARAMS); return RES_ERR; } wsprintf(connectname,"%s::%s",lpVirtNode, pintegrityprm->DBName); iret = Getsession(connectname, SessType, ilocsession); if (iret !=RES_SUCCESS) return RES_ERR; iret=GetInfIntegrity(pintegrityprm); } break; case OT_LOCATION: { LPLOCATIONPARAMS plocprm=(LPLOCATIONPARAMS) lpparameters; if (!*(plocprm->objectname)) { myerror(ERR_INVPARAMS); return RES_ERR; } wsprintf(connectname,"%s::iidbdb",lpVirtNode); iret = Getsession(connectname, SessType, ilocsession); if (iret !=RES_SUCCESS) return RES_ERR; iret=GetInfLoc(plocprm); } break; case OT_PROCEDURE: { LPPROCEDUREPARAMS pprocprm=(LPPROCEDUREPARAMS) lpparameters; if (!*(pprocprm->objectname)) { myerror(ERR_INVPARAMS); return RES_ERR; } if (!*(pprocprm->DBName)) { myerror(ERR_INVPARAMS); return RES_ERR; } wsprintf(connectname,"%s::%s",lpVirtNode, pprocprm->DBName); iret = Getsession(connectname, SessType, ilocsession); if (iret !=RES_SUCCESS) return RES_ERR; iret=GetInfProcedure(pprocprm); } break; case OT_RULE: { LPRULEPARAMS pruleprm=(LPRULEPARAMS) lpparameters; if (!*(pruleprm->RuleName)) { myerror(ERR_INVPARAMS); return RES_ERR; } if (!*(pruleprm->DBName)) { myerror(ERR_INVPARAMS); return RES_ERR; } wsprintf(connectname,"%s::%s",lpVirtNode, pruleprm->DBName); iret = Getsession(connectname, SessType, ilocsession); if (iret !=RES_SUCCESS) return RES_ERR; iret=GetInfRule(pruleprm); } break; case OT_USER : { LPUSERPARAMS pusrprm=(LPUSERPARAMS) lpparameters; if (!*(pusrprm->ObjectName)) { myerror(ERR_INVPARAMS); return RES_ERR; } FreeAttachedPointers(lpparameters, iobjecttype); wsprintf(connectname,"%s::iidbdb",lpVirtNode); iret = Getsession(connectname, SessType, ilocsession); if (iret !=RES_SUCCESS) return RES_ERR; iret=GetInfUsr(pusrprm); } break; case OT_PROFILE : { LPPROFILEPARAMS pprofprm=(LPPROFILEPARAMS) lpparameters; if (!*(pprofprm->ObjectName)) { myerror(ERR_INVPARAMS); return RES_ERR; } FreeAttachedPointers(lpparameters, iobjecttype); wsprintf(connectname,"%s::iidbdb",lpVirtNode); iret = Getsession(connectname, SessType, ilocsession); if (iret !=RES_SUCCESS) return RES_ERR; iret=GetInfProf(pprofprm); } break; case OT_VIEW: { LPVIEWPARAMS pviewprm=(LPVIEWPARAMS) lpparameters; if (!*(pviewprm->objectname)) { myerror(ERR_INVPARAMS); return RES_ERR; } if (!*(pviewprm->DBName)) { myerror(ERR_INVPARAMS); return RES_ERR; } wsprintf(connectname,"%s::%s",lpVirtNode, pviewprm->DBName); iret = Getsession(connectname, SessType, ilocsession); if (iret !=RES_SUCCESS) return RES_ERR; iret=GetInfView(pviewprm); } break; case OT_INDEX: { LPINDEXPARAMS pindexprm=(LPINDEXPARAMS) lpparameters; if (!*(pindexprm->objectname)) { myerror(ERR_INVPARAMS); return RES_ERR; } if (!*(pindexprm->DBName)) { myerror(ERR_INVPARAMS); return RES_ERR; } FreeAttachedPointers(lpparameters, iobjecttype); wsprintf(connectname,"%s::%s",lpVirtNode, pindexprm->DBName); iret = Getsession(connectname, SessType, ilocsession); if (iret !=RES_SUCCESS) return RES_ERR; x_strcpy(pindexprm->szNodeName, lpVirtNode); iret=GetInfIndex(pindexprm); } break; case OT_TABLE: { LPTABLEPARAMS ptableprm=(LPTABLEPARAMS) lpparameters; if (!*(ptableprm->objectname)) { myerror(ERR_INVPARAMS); return RES_ERR; } if (!*(ptableprm->DBName)) { myerror(ERR_INVPARAMS); return RES_ERR; } FreeAttachedPointers(lpparameters, iobjecttype); wsprintf(connectname,"%s::%s",lpVirtNode, ptableprm->DBName); iret = Getsession(connectname, SessType, ilocsession); if (iret !=RES_SUCCESS) return RES_ERR; x_strcpy(ptableprm->szNodeName, lpVirtNode); iret=GetInfTable(ptableprm); } break; case OT_DATABASE: { LPDATABASEPARAMS pbaseprm=(LPDATABASEPARAMS) lpparameters; wsprintf(connectname,"%s::%s",lpVirtNode,pbaseprm->objectname); iret = Getsession(connectname, SessType, ilocsession); if (iret !=RES_SUCCESS) return RES_ERR; iret=GetInfBaseExtend(pbaseprm); // retrieve UNICODE information pbaseprm->bUnicodeDBNFD = 0; pbaseprm->bUnicodeDBNFC = 0; if (iret==RES_SUCCESS && GetOIVers() >= OIVERS_26) { TCHAR tcVersion[40]; TCHAR tcNormalization[40]; INGRESII_llDBMSInfo(_T("unicode_level"),tcVersion); INGRESII_llDBMSInfo(_T("unicode_normalization"), tcNormalization); if (tcVersion[0] != '0' && (x_strcmp(tcNormalization, "NFD")==0)) pbaseprm->bUnicodeDBNFD = 1; if (tcVersion[0]!='0' && (x_strcmp(tcNormalization, "NFC")==0)) pbaseprm->bUnicodeDBNFC = 1; } // Retrieve the current Catalog Page Size if (iret==RES_SUCCESS && GetOIVers() >= OIVERS_30) iret = GetCatalogPageSize(pbaseprm); if (iret==RES_SUCCESS) iret=ReleaseSession(*ilocsession, RELEASE_COMMIT); else ReleaseSession(*ilocsession, RELEASE_ROLLBACK); wsprintf(connectname,"%s::iidbdb",lpVirtNode); iret = Getsession(connectname, SessType, ilocsession); if (iret !=RES_SUCCESS) return RES_ERR; iret=GetInfBase(pbaseprm); } break; default : iret=RES_ERR; } if (bRetainSessForLock) // The session was asked to be retained for... return iret; // ... locking purposes, return without releasing. if (iret==RES_SUCCESS) iret=ReleaseSession(*ilocsession, RELEASE_COMMIT); else ReleaseSession(*ilocsession, RELEASE_ROLLBACK); return iret; }
void CxDlgObjectComment::OnOK() { CString csTempo,csNameCol,csSyntaxObject,csVNodeName,csSQLSyntax; LPCOMMENTCOLUMN lpCommentCol; LPSTRINGLIST lpStrList = NULL; BOOL bGenerate; int i,iret,nCount = m_cListCtrl.GetItemCount(); csVNodeName = (LPTSTR)GetVirtNodeName(m_nNodeHandle); csSyntaxObject.Empty(); m_cListCtrl.HideProperty(TRUE); m_cEditTableComment.GetWindowText(m_csCommentObject); if (!m_tcObjComment && !m_csCommentObject.IsEmpty()) // new comment on general object GenerateSyntaxComment4Object(csSyntaxObject); else if (m_tcObjComment && (x_strcmp(m_csCommentObject,m_tcObjComment)!=0) ) // comment exist GenerateSyntaxComment4Object(csSyntaxObject); for (i=0; i<nCount; i++) { csSQLSyntax.Empty(); bGenerate = FALSE; csNameCol = m_cListCtrl.GetItemText (i,0); csTempo = m_cListCtrl.GetItemText (i,1); lpCommentCol = FindCurrentColumn(csNameCol); ASSERT(lpCommentCol != NULL); if (lpCommentCol->lpszComment) { if (x_strcmp(lpCommentCol->lpszComment,(LPTSTR)(LPCTSTR)csTempo)!=0) bGenerate = TRUE; } else { if (!csTempo.IsEmpty()) bGenerate = TRUE; } if (bGenerate) { csSQLSyntax.Format("comment on column %s.%s.%s is '%s'", QuoteIfNeeded((LPTSTR)(LPCTSTR)m_csObjectOwner), QuoteIfNeeded((LPTSTR)(LPCTSTR)m_csObjectName), QuoteIfNeeded((LPTSTR)lpCommentCol->szColumnName), (LPCTSTR)csTempo); lpStrList = StringList_Add (lpStrList, (LPTSTR)(LPCTSTR)csSQLSyntax); } } // execute the SQL statements iret = VDBA20xGenCommentObject ( (LPSTR)(LPCTSTR)csVNodeName,(LPSTR)(LPCTSTR)m_csDBName, (LPSTR)(LPCTSTR)csSyntaxObject, lpStrList); if (lpStrList) lpStrList = StringList_Done (lpStrList); if (iret != RES_SUCCESS) { ErrorMessage ((UINT) IDS_E_COMMENT_ON_FAILED, RES_ERR); return; } CDialog::OnOK(); }
static BOOL FillStructureFromControls (HWND hwnd, LPSECURITYALARMPARAMS lpsecurity) { char buf [MAXOBJECTNAME]; char buffowner [MAXOBJECTNAME]; char bufftable [MAXOBJECTNAME]; LPCHECKEDOBJECTS obj; LPCHECKEDOBJECTS list = NULL; int i, max_database_number, checked; HWND hwndUsers = GetDlgItem (hwnd, IDC_REFALARM_BYUSER ); HWND hwndTables = GetDlgItem (hwnd, IDC_REFALARM_ONTABLE); HWND hwndSuccess = GetDlgItem (hwnd, IDC_REFALARM_SUCCESS); HWND hwndFailure = GetDlgItem (hwnd, IDC_REFALARM_FAILURE); HWND hwndSelect = GetDlgItem (hwnd, IDC_REFALARM_SELECT); HWND hwndDelete = GetDlgItem (hwnd, IDC_REFALARM_DELETE); HWND hwndInsert = GetDlgItem (hwnd, IDC_REFALARM_INSERT); HWND hwndUpdate = GetDlgItem (hwnd, IDC_REFALARM_UPDATE); lpsecurity->bsuccfail [SECALARMSUCCESS] = Button_GetCheck (hwndSuccess); lpsecurity->bsuccfail [SECALARMFAILURE] = Button_GetCheck (hwndFailure); // // Get selection from // toggle buttons (Select, Delete, Insert, Update) // lpsecurity->baccesstype [SECALARMSEL] = Button_GetCheck (hwndSelect); lpsecurity->baccesstype [SECALARMDEL] = Button_GetCheck (hwndDelete); lpsecurity->baccesstype [SECALARMINS] = Button_GetCheck (hwndInsert); lpsecurity->baccesstype [SECALARMUPD] = Button_GetCheck (hwndUpdate); // // Get the names of users that have been checked and // insert into the list // max_database_number = CAListBox_GetCount (hwndUsers); for (i=0; i<max_database_number; i++) { checked = CAListBox_GetSel (hwndUsers, i); if (checked) { CAListBox_GetText (hwndUsers, i, buf); obj = ESL_AllocMem (sizeof (CHECKEDOBJECTS)); if (!obj) { FreeAttachedPointers (lpsecurity, OTLL_SECURITYALARM); ErrorMessage ((UINT)IDS_E_CANNOT_ALLOCATE_MEMORY, RES_ERR); break; } else { if (x_strcmp (buf, lppublicdispstring()) == 0) x_strcpy (obj->dbname, lppublicsysstring()); else x_strcpy (obj->dbname, buf); obj->bchecked = TRUE; list = AddCheckedObject (list, obj); } } } lpsecurity->lpfirstUser = list; // // Get the names of Tables that have been checked and // insert into the list // max_database_number = CAListBox_GetCount (hwndTables); list = NULL; for (i = 0; i < max_database_number; i++) { checked = CAListBox_GetSel (hwndTables, i); if (checked) { CAListBox_GetText (hwndTables, i, buf); x_strcpy (buffowner, (char *) CAListBox_GetItemData (hwndTables, i)); obj = ESL_AllocMem (sizeof (CHECKEDOBJECTS)); if (!obj) { FreeAttachedPointers (lpsecurity, OTLL_SECURITYALARM); ErrorMessage ((UINT)IDS_E_CANNOT_ALLOCATE_MEMORY, RES_ERR); return FALSE; } else { StringWithOwner (buf, buffowner, bufftable); x_strcpy (obj->dbname, bufftable); obj->bchecked = TRUE; list = AddCheckedObject (list, obj); } } } lpsecurity->lpfirstTable = list; return TRUE; }