1 PACKAGE EGO_SECURITY_PUB AUTHID CURRENT_USER AS
2 /* $Header: EGOPSECS.pls 115.3 2003/01/11 02:47:50 dphilip noship $ */
3 /*---------------------------------------------------------------------------+
4 | This package contains public API for Applications Security |
5 +---------------------------------------------------------------------------*/
6
7
8 TYPE ID_TBL_TYPE IS TABLE OF VARCHAR2(30)
9 INDEX BY BINARY_INTEGER;
10
11 --1. Grant Privilege
12 ------------------------------------
13 PROCEDURE grant_role
14 (
15 p_api_version IN NUMBER,
16 p_role_name IN VARCHAR2,
17 p_object_name IN VARCHAR2,
18 p_instance_type IN VARCHAR2,
19 p_instance_set_id IN NUMBER,
20 p_instance_pk1_value IN VARCHAR2,
21 p_instance_pk2_value IN VARCHAR2,
22 p_instance_pk3_value IN VARCHAR2,
23 p_instance_pk4_value IN VARCHAR2,
24 p_instance_pk5_value IN VARCHAR2,
25 p_party_id IN NUMBER,
26 p_start_date IN DATE,
27 p_end_date IN DATE,
28 x_return_status OUT NOCOPY VARCHAR2,
29 x_errorcode OUT NOCOPY NUMBER
30 );
31
32 -- Start OF comments
33 -- API name : Grant
34 -- TYPE : Public
35 -- Pre-reqs : None
36 -- FUNCTION : Grant a Role on object instances to a Party.
37 -- If this operation fails then the grant is not
38 -- done and error code is returned.
39 --
40 -- Version: Current Version 0.1
41 -- Previous Version : None
42 -- Notes :
43 --
44 -- END OF comments
45 ----------------------------------------------------------------------------
46
47 --1 a. Grant Privilege
48 ------------------------------------
49 PROCEDURE grant_role
50 (
51 p_api_version IN NUMBER,
52 p_role_name IN VARCHAR2,
53 p_object_name IN VARCHAR2,
54 p_instance_type IN VARCHAR2,
55 p_object_key IN NUMBER,
56 p_party_id IN NUMBER,
57 p_start_date IN DATE,
58 p_end_date IN DATE,
59 x_return_status OUT NOCOPY VARCHAR2,
60 x_errorcode OUT NOCOPY NUMBER
61 );
62
63 -- Start OF comments
64 -- API name : Grant
65 -- TYPE : Public
66 -- Pre-reqs : None
67 -- FUNCTION : Grant a Role on object instances to a Party.
68 -- If this operation fails then the grant is not
69 -- done and error code is returned.
70 --
71 -- Version: Current Version 0.1
72 -- Previous Version : None
73 -- Notes :
74 --
75 -- END OF comments
76
77
78 ---------------------------------------------------------------------
79
80 --11. Grant Privilege
81 ------------------------------------
82 PROCEDURE grant_role_guid
83 (
84 p_api_version IN NUMBER,
85 p_role_name IN VARCHAR2,
86 p_object_name IN VARCHAR2,
87 p_instance_type IN VARCHAR2,
88 p_instance_set_id IN NUMBER,
89 p_instance_pk1_value IN VARCHAR2,
90 p_instance_pk2_value IN VARCHAR2,
91 p_instance_pk3_value IN VARCHAR2,
92 p_instance_pk4_value IN VARCHAR2,
93 p_instance_pk5_value IN VARCHAR2,
94 p_party_id IN NUMBER,
95 p_start_date IN DATE,
96 p_end_date IN DATE,
97 x_return_status OUT NOCOPY VARCHAR2,
98 x_errorcode OUT NOCOPY NUMBER,
99 x_grant_guid OUT NOCOPY RAW
100 );
101
102 -- Start OF comments
103 -- API name : Grant
104 -- TYPE : Public
105 -- Pre-reqs : None
106 -- FUNCTION : Grant a Role on object instances to a Party.
107 -- If this operation fails then the grant is not
108 -- done and error code is returned.
109 --
110 -- Version: Current Version 0.1
111 -- Previous Version : None
112 -- Notes :
113 --
114 -- END OF comments
115 ----------------------------------------------------------------------------
116
117 --11 a. Grant Privilege
118 ------------------------------------
119 PROCEDURE grant_role_guid
120 (
121 p_api_version IN NUMBER,
122 p_role_name IN VARCHAR2,
123 p_object_name IN VARCHAR2,
124 p_instance_type IN VARCHAR2,
125 p_object_key IN NUMBER,
126 p_party_id IN NUMBER,
127 p_start_date IN DATE,
128 p_end_date IN DATE,
129 x_return_status OUT NOCOPY VARCHAR2,
130 x_errorcode OUT NOCOPY NUMBER,
131 x_grant_guid OUT NOCOPY RAW
132 );
133
134 -- Start OF comments
135 -- API name : Grant
136 -- TYPE : Public
137 -- Pre-reqs : None
138 -- FUNCTION : Grant a Role on object instances to a Party.
139 -- If this operation fails then the grant is not
140 -- done and error code is returned.
141 --
142 -- Version: Current Version 0.1
143 -- Previous Version : None
144 -- Notes :
145 --
146 -- END OF comments
147
148
149 ---------------------------------------------------------------------
150
151
152 --2. Revoke Privilege
153 --------------------------
154 PROCEDURE revoke_grant
155 (
156 p_api_version IN NUMBER,
157 p_grant_guid IN VARCHAR2,
158 x_return_status OUT NOCOPY VARCHAR2,
159 x_errorcode OUT NOCOPY NUMBER
160 );
161
162 -- Start OF comments
163 -- API name : Revoke
164 -- TYPE : Public
165 -- Pre-reqs : None
166 -- FUNCTION : Revoke a Party's role on object instances.
167 -- If this operation fails then the revoke is
168 -- done and error code is returned.
169 --
170 -- Version: Current Version 0.1
171 -- Previous Version : None
172 -- Notes :
173 --
174 -- END OF comments
175
176 ----------------------------------------------------------------------------
177
178
179
180 --3. Check User Privilege
181 ------------------------------------
182 FUNCTION check_user_privilege
183 (
184 p_api_version IN NUMBER,
185 p_privilege IN VARCHAR2,
186 p_object_name IN VARCHAR2,
187 p_object_key IN NUMBER,
188 p_user_id IN NUMBER
189 )
190 RETURN VARCHAR2;
191
192 -- Start OF comments
193 -- API name : check_user_privilege
194 -- TYPE : Public
195 -- Pre-reqs : None
196 -- FUNCTION : check a user's privilege on object instance(s)
197 -- If this operation fails then the check is not
198 -- done and error code is returned.
199 --
200 -- Parameters:
201 -- IN : p_api_version IN NUMBER (required)
202 -- API Version of this procedure
203 --
204 -- p_privilege IN VARCHAR2 (required)
205 -- name of the privilege (function name)
206 --
207 -- p_object_name IN VARCHAR2 (required)
208 -- object on which the privilege should be checked
209 --
210 -- p_object_key IN NUMBER (required)
211 -- object key to an instance
212 --
213 -- p_user_id IN NUMBER (required)
214 -- user for whom the privilege is checked
215 --
216 -- OUT :
217 -- RETURN
218 -- FND_API.G_TRUE privilege EXISTS
219 -- FND_API.G_FALSE NO privilege
220 -- FND_API.G_RET_STS_ERROR if error
221 -- FND_API.G_RET_STS_UNEXP_ERROR if unexpected error
222 --
223
224 -- Version: Current Version 0.1
225 -- Previous Version : None
226 -- Notes :
227 --
228 -- END OF comments
229 ----------------------------------------------------------------------------
230
231
232 --3.b.1 Check Party Privilege
233 ------------------------------------
234 FUNCTION check_party_privilege
235 (
236 p_api_version IN NUMBER,
237 p_privilege IN VARCHAR2,
238 p_object_name IN VARCHAR2,
239 p_object_key IN NUMBER,
240 p_party_id IN NUMBER
241 ) RETURN VARCHAR2;
242
243 -- Start OF comments
244 -- API name : check_party_privilege
245 -- TYPE : Public
246 -- Pre-reqs : None
247 -- FUNCTION : check a user's privilege on object instance(s)
248 -- If this operation fails then the check is not
249 -- done and error code is returned.
250 --
251 -- Parameters:
252 -- IN : p_api_version IN NUMBER (required)
253 -- API Version of this procedure
254 --
255 -- p_privilege IN VARCHAR2 (required)
256 -- name of the privilege (function name)
257 --
258 -- p_object_name IN VARCHAR2 (required)
259 -- object on which the privilege should be checked
260 --
261 -- p_object_key IN NUMBER (required)
262 -- object key to an instance
263 --
264 -- p_party_id IN NUMBER (required)
265 -- party_id of the privilege is checked
266 --
267 -- OUT :
268 -- RETURN
269 -- FND_API.G_TRUE privilege EXISTS
270 -- FND_API.G_FALSE NO privilege
271 -- FND_API.G_RET_STS_ERROR if error
272 -- FND_API.G_RET_STS_UNEXP_ERROR if unexpected error
273 --
274
275 -- Version: Current Version 0.1
276 -- Previous Version : None
277 -- Notes :
278 --
279 -- END OF comments
280
281 ----------------------------------------------------------------------------
282
283
284 --3.b.2 Check Party Privilege
285 ------------------------------------
286 FUNCTION check_party_privilege
287 (
288 p_api_version IN NUMBER,
289 p_privilege IN VARCHAR2,
290 p_object_name IN VARCHAR2,
291 p_instance_pk1_value IN VARCHAR2,
292 p_instance_pk2_value IN VARCHAR2,
293 p_instance_pk3_value IN VARCHAR2,
294 p_instance_pk4_value IN VARCHAR2,
295 p_instance_pk5_value IN VARCHAR2,
296 p_party_id IN NUMBER
297 )
298 RETURN VARCHAR2;
299 ----------------------------------------------------------------------------
300 --4. Get Privileges
301 ------------------------------------
302 PROCEDURE get_privileges
303 (
304 p_api_version IN NUMBER,
305 p_object_name IN VARCHAR2,
306 p_object_key IN NUMBER,
307 p_user_id IN NUMBER,
308 x_return_status OUT NOCOPY VARCHAR2,
309 x_privilege_tbl OUT NOCOPY EGO_DATA_SECURITY.EGO_PRIVILEGE_NAME_TABLE_TYPE
310 );
311
312 -- Start OF comments
313 -- API name : get_privileges
314 -- TYPE : Public
315 -- Pre-reqs : None
316 -- FUNCTION : get the list of privileges user has on the object instance
317 -- If this operation fails then the get is not
318 -- done and error code is returned.
319 --
320 -- Version: Current Version 1.0
321 -- Previous Version : None
322 -- Notes :
323 --
324 -- END OF comments
325 ----------------------------------------------------------------------------
326
327
328
329 --4 b.1 Get Privileges
330 ------------------------------------
331 PROCEDURE get_party_privileges
332 (
333 p_api_version IN NUMBER,
334 p_object_name IN VARCHAR2,
335 p_object_key IN NUMBER,
336 p_party_id IN NUMBER,
337 x_return_status OUT NOCOPY VARCHAR2,
338 x_privilege_tbl OUT NOCOPY EGO_DATA_SECURITY.EGO_PRIVILEGE_NAME_TABLE_TYPE
339 ) ;
340
341
342 -- Start OF comments
343 -- API name : get_privileges
344 -- TYPE : Public
345 -- Pre-reqs : None
346 -- FUNCTION : get the list of privileges user has on the object instance
347 -- If this operation fails then the get is not
348 -- done and error code is returned.
349 --
350 -- Version: Current Version 1.0
351 -- Previous Version : None
352 -- Notes :
353 --
354 -- END OF comments
355
356 ----------------------------------------------------------------------------
357
358 --4 b.2 Get Privileges
359 ------------------------------------
360 PROCEDURE get_party_privileges
361 (
362 p_api_version IN NUMBER,
363 p_object_name IN VARCHAR2,
364 p_instance_pk1_value IN VARCHAR2,
365 p_instance_pk2_value IN VARCHAR2,
366 p_instance_pk3_value IN VARCHAR2,
367 p_instance_pk4_value IN VARCHAR2,
368 p_instance_pk5_value IN VARCHAR2,
369 p_party_id IN NUMBER,
370 x_return_status OUT NOCOPY VARCHAR2,
371 x_privilege_tbl OUT NOCOPY EGO_DATA_SECURITY.EGO_PRIVILEGE_NAME_TABLE_TYPE
372 );
373 -----------------------------------------------------
374
375 --5. Get instances
376 -----------------------------------------------
377 PROCEDURE get_instances_with_privilege
378 (
379 p_api_version IN NUMBER,
380 p_privilege IN VARCHAR2,
381 p_object_name IN VARCHAR2,
382 p_party_id IN NUMBER,
383 x_return_status OUT NOCOPY VARCHAR2,
384 x_object_key_tbl OUT NOCOPY ID_TBL_TYPE
385 );
386
387 -------------------------------------------
388 --6. get_instances_with_privilege_d
389 ------------------------------------------------
390 PROCEDURE get_instances_with_privilege_d
391 (
392 p_api_version IN NUMBER,
393 p_privilege IN VARCHAR2,
394 p_object_name IN VARCHAR2,
395 p_party_id IN NUMBER,
396 p_delimiter IN VARCHAR2 DEFAULT ',',
397 x_return_status OUT NOCOPY VARCHAR2,
398 x_object_string OUT NOCOPY VARCHAR2
399 );
400 ---------------------------------------------
401
402
403 --7.a. Get the list of predicates Strings on whcih user has privilege
404 --------------------------------------------------------
405 FUNCTION get_security_predicate
406 (
407 p_api_version IN NUMBER,
408 p_user_id IN NUMBER,
409 p_privilege IN VARCHAR2,
410 p_object_name IN VARCHAR2,
411 p_grant_type IN VARCHAR2 DEFAULT 'UNIVERSAL'
412 ) RETURN VARCHAR2;
413
414
415 ------------------------------------------------------------------------------------
416
417 --7.b. Get the list of predicates Strings on which user has privilege
418 FUNCTION get_security_predicate
419 (
420 p_api_version IN NUMBER,
421 p_user_id IN NUMBER,
422 p_privilege IN VARCHAR2,
423 p_object_name IN VARCHAR2,
424 p_aliased_pk_column IN VARCHAR2,
425 p_grant_type IN VARCHAR2 DEFAULT 'UNIVERSAL'
426 ) RETURN VARCHAR2;
427
428 ------------------------------------------------------------------------------------
429
430 --7.c.1 Get the list of predicates Strings on whcih user has privilege
431 --------------------------------------
432 FUNCTION get_party_security_predicate
433 (
434 p_api_version IN NUMBER,
435 p_party_id IN NUMBER,
436 p_privilege IN VARCHAR2,
437 p_object_name IN VARCHAR2,
438 p_aliased_pk_column IN VARCHAR2,
439 p_grant_type IN VARCHAR2 DEFAULT 'UNIVERSAL'
440 ) RETURN VARCHAR2;
441
442 -- Start OF comments
443 -- API name : get_security_predicate
444 -- TYPE : Public
445 -- Pre-reqs : None
446 -- FUNCTION : Returns the predicates belong to a party with a given privilege.
447 --
448 -- Version: Current Version 1.0
449 -- Previous Version : None
450 -- Notes :
451 --
452 -- END OF comments
453
454
455 ------------------------------------------------------------------------------------
456
457 --7.c.2 Get the list of predicates Strings on whcih user has privilege
458 --------------------------------------
459 FUNCTION get_party_security_predicate
460 (
461 p_api_version IN NUMBER,
462 p_party_id IN NUMBER,
463 p_privilege IN VARCHAR2,
464 p_object_name IN VARCHAR2,
465 p_aliased_pk_column IN VARCHAR2,
466 p_pk2_alias IN VARCHAR2,
467 p_pk3_alias IN VARCHAR2,
468 p_pk4_alias IN VARCHAR2,
469 p_pk5_alias IN VARCHAR2,
470 p_grant_type IN VARCHAR2 DEFAULT 'UNIVERSAL',
471 x_return_status OUT NOCOPY VARCHAR2
472 ) RETURN VARCHAR2;
473 ------------------------------------------------------------------------------
474
475 --8.a Get Privileges as comma delimited string
476 ------------------------------------
477 PROCEDURE get_privileges_d
478 (
479 p_api_version IN NUMBER,
480 p_object_name IN VARCHAR2,
481 p_object_key IN NUMBER,
482 p_user_id IN NUMBER,
483 p_delimiter IN VARCHAR2 DEFAULT ',',
484 x_return_status OUT NOCOPY VARCHAR2,
485 x_privileges_string OUT NOCOPY VARCHAR2
486 );
487
488 -- Start OF comments
489 -- API name : get_security_predicate
490 -- TYPE : Public
491 -- Pre-reqs : None
492 -- FUNCTION : It returns all previleges as a string seperating the privileges with comma.
493
494 -- Version: Current Version 1.0
495 -- Previous Version : None
496 -- Notes :
497 --
498 -- END OF comments
499
500 ------------------------------------------------------------------------------------
501
502 --8.b Get Privileges as comma delimited string
503 ------------------------------------
504 PROCEDURE get_party_privileges_d
505 (
506 p_api_version IN NUMBER,
507 p_object_name IN VARCHAR2,
508 p_object_key IN NUMBER,
509 p_party_id IN NUMBER,
510 p_delimiter IN VARCHAR2 DEFAULT ',',
511 x_return_status OUT NOCOPY VARCHAR2,
512 x_privileges_string OUT NOCOPY VARCHAR2
513 );
514 -----------------------------------------------------------------
515 PROCEDURE get_party_privileges_d
516 (
517 p_api_version IN NUMBER,
518 p_object_name IN VARCHAR2,
519 p_pk1_value IN VARCHAR2,
520 p_pk2_value IN VARCHAR2,
521 p_pk3_value IN VARCHAR2,
522 p_pk4_value IN VARCHAR2,
523 p_pk5_value IN VARCHAR2,
524 p_party_id IN NUMBER,
525 p_delimiter IN VARCHAR2 DEFAULT ',',
526 x_return_status OUT NOCOPY VARCHAR2,
527 x_privileges_string OUT NOCOPY VARCHAR2
528 );
529 --------------------------------------------------------
530
531 --9. Set end date to a grant
532 ------------------------------------
533 PROCEDURE set_grant_date
534 (
535 p_api_version IN NUMBER,
536 p_grant_guid IN VARCHAR2,
537 p_start_date IN DATE,
538 p_end_date IN DATE,
539 x_return_status OUT NOCOPY VARCHAR2
540 );
541
542 ----------------------------------------------------------------------------
543 /*
544 --10. Check_Instance_In_Set
545 -----------------------------------------------
546 FUNCTION check_instance_in_set
547 (
548 p_api_version IN NUMBER,
549 p_instance_set_id IN NUMBER,
550 p_instance_pk1_value IN VARCHAR2
551 ) return VARCHAR2 ;
552 --------------------------------------------
553
554 */
555 /*
556 --10. Check_Instance_In_Set
557 ------------------------
558 FUNCTION check_instance_in_set
559 (
560 p_api_version IN NUMBER,
561 p_object_name IN VARCHAR2,
562 p_instance_set_id IN NUMBER,
563 p_instance_id IN NUMBER,
564 p_party_person_id IN NUMBER
565 )
566 RETURN VARCHAR2 ;
567 */
568 ---------------------------------------------------------
569
570 --13. check_duplicate_grant
571 ------------------------
572 FUNCTION check_duplicate_grant
573 (
574 p_role_name IN VARCHAR2,
575 p_object_name IN VARCHAR2,
576 p_object_key_type IN VARCHAR2,
577 p_object_key IN NUMBER,
578 p_party_id IN NUMBER,
579 p_start_date IN DATE,
580 p_end_date IN DATE
581 ) RETURN VARCHAR2 ;
582 ------------------------
583
584 --14. check_duplicate_item_grant
585 ------------------------
586 FUNCTION check_duplicate_item_grant
587 (
588 p_role_id IN NUMBER,
589 p_object_id IN NUMBER,
590 p_object_key_type IN VARCHAR2,
591 p_object_key IN NUMBER,
592 p_party_id IN NUMBER,
593 p_start_date IN DATE,
594 p_end_date IN DATE
595 ) RETURN VARCHAR2;
596
597 --15. creat_instance_set
598 ------------------------
599 FUNCTION create_instance_set
600 (
601 p_instance_set_name IN VARCHAR2,
602 p_object_name IN VARCHAR2,
603 p_predicate IN VARCHAR2,
604 p_display_name IN VARCHAR2,
605 p_description IN VARCHAR2
606 ) RETURN NUMBER;
607
608
609 END EGO_SECURITY_PUB;