| 323 | |
| 324 | |
| 325 | void CMP_post_access(thread_db* tdbb, |
| 326 | CompilerScratch* csb, |
| 327 | const MetaName& security_name, |
| 328 | SLONG ssRelationId, // SQL SECURITY relation in which context permissions should be check |
| 329 | SecurityClass::flags_t mask, |
| 330 | ObjectType obj_type, |
| 331 | const MetaName& name, |
| 332 | const MetaName& r_name) |
| 333 | { |
| 334 | /************************************** |
| 335 | * |
| 336 | * C M P _ p o s t _ a c c e s s |
| 337 | * |
| 338 | ************************************** |
| 339 | * |
| 340 | * Functional description |
| 341 | * Post access to security class to request. |
| 342 | * We append the new security class to the existing list of |
| 343 | * security classes for that request. |
| 344 | * |
| 345 | **************************************/ |
| 346 | DEV_BLKCHK(csb, type_csb); |
| 347 | DEV_BLKCHK(view, type_rel); |
| 348 | |
| 349 | // allow all access to internal requests |
| 350 | |
| 351 | if (csb->csb_g_flags & (csb_internal | csb_ignore_perm)) |
| 352 | return; |
| 353 | |
| 354 | SET_TDBB(tdbb); |
| 355 | |
| 356 | AccessItem access(security_name, ssRelationId, name, obj_type, mask, r_name); |
| 357 | |
| 358 | FB_SIZE_T i; |
| 359 | |
| 360 | if (!csb->csb_access.find(access, i)) |
| 361 | csb->csb_access.insert(i, access); |
| 362 | } |
| 363 | |
| 364 | |
| 365 | void CMP_post_resource( ResourceList* rsc_ptr, void* obj, Resource::rsc_s type, USHORT id) |
no test coverage detected