DBA Data[Home] [Help]

PACKAGE: APPS.IBC_DATA_SECURITY_PVT

Source


1 PACKAGE ibc_data_security_pvt AUTHID CURRENT_USER AS
2 /* $Header: ibcdsecs.pls 120.1 2005/05/31 23:20:02 appldev  $ */
3   /*#
4    * This is the private API for OCM Data Security. These methods are
5    * exposed as Java APIs in DataSecurityManager.class
6    * @rep:scope private
7    * @rep:product IBC
8    * @rep:displayname Oracle Content Manager Data Security Private API
9    * @rep:category BUSINESS_ENTITY IBC_DATA_SECURITY
10    */
11 
12   /*#
13    *  This procedure establishes inheritance hierarchy, it must be kept
14    *  in sync with directory nodes hierarchy tree.  It creates an
15    *  inheritance link between an instance (child) and its container (parent).
16    *  This procedure must be called for each container (i.e. directory node)
17    *  create to define a hierarchy of containment and inheritance
18    *
19    *  @param p_instance_object_id  ID for object definition id found in FND_OBJECTS
20    *                               for this particular instance
21    *  @param p_instance_pk1_value  value 1 for instance's primary key
22    *  @param p_instance_pk2_value  value 2 for instance's primary key
23    *  @param p_instance_pk3_value  value 3 for instance's primary key
24    *  @param p_instance_pk4_value  value 4 for instance's primary key
25    *  @param p_instance_pk5_value  value 5 for instance's primary key
26    *  @param p_container_object_id ID for object definition id found in FND_OBJECTS
27    *                               for the container
28    *  @param p_container_pk1_value value 1 for container's primary key
29    *  @param p_container_pk2_value value 2 for container's primary key
30    *  @param p_container_pk3_value value 3 for container's primary key
31    *  @param p_container_pk4_value value 4 for container's primary key
32    *  @param p_container_pk5_value value 5 for container's primary key
33    *  @param p_inheritance_type    type of inheritance (FOLDER, HIDDEN-FOLDER,
34    *                               WORKSPACE and WSFOLDER). Currently supported
35    *                               in OCM only FOLDER and HIDDEN-FOLDER.
36    *  @param p_commit              Indicates whether to commit or not at the end
37    *                               of procedure
38    *  @param p_api_version         standard parm - API Version
39    *  @param p_init_msg_list       standard parm - Initialize message list
40    *  @param x_return_status       standard parm - Return Status
41    *  @param x_msg_count           standard parm - Message Count
42    *  @param x_msg_data            standard parm - Message Data
43    *
44    *  @rep:displayname establish_inheritance
45    *
46    */
47   PROCEDURE establish_inheritance(
48     p_instance_object_id     IN NUMBER
49     ,p_instance_pk1_value    IN VARCHAR2
50     ,p_instance_pk2_value    IN VARCHAR2 DEFAULT NULL
51     ,p_instance_pk3_value    IN VARCHAR2 DEFAULT NULL
52     ,p_instance_pk4_value    IN VARCHAR2 DEFAULT NULL
53     ,p_instance_pk5_value    IN VARCHAR2 DEFAULT NULL
54     ,p_container_object_id   IN NUMBER   DEFAULT NULL
55     ,p_container_pk1_value   IN VARCHAR2 DEFAULT NULL
56     ,p_container_pk2_value   IN VARCHAR2 DEFAULT NULL
57     ,p_container_pk3_value   IN VARCHAR2 DEFAULT NULL
58     ,p_container_pk4_value   IN VARCHAR2 DEFAULT NULL
59     ,p_container_pk5_value   IN VARCHAR2 DEFAULT NULL
60     ,p_inheritance_type      IN VARCHAR2
61     ,p_commit                IN  VARCHAR2 DEFAULT FND_API.g_false
62     ,p_api_version           IN  NUMBER   DEFAULT 1.0
63     ,p_init_msg_list         IN  VARCHAR2 DEFAULT fnd_api.g_false
64     ,x_return_status         OUT NOCOPY VARCHAR2
65     ,x_msg_count             OUT NOCOPY NUMBER
66     ,x_msg_data              OUT NOCOPY VARCHAR2
67   );
68 
69   /*#
70    *  This procedure establishes inheritance hierarchy, it must be kept
71    *  in sync with directory nodes hierarchy tree.  It creates an
72    *  inheritance link between an instance (child) and its container (parent).
73    *  This procedure must be called for each container (i.e. directory node)
74    *  create to define a hierarchy of containment and inheritance.
75    *  This is overloaded of establish_inheritance without inheritance type parm.
76    *
77    *  @param p_instance_object_id  ID for object definition id found in FND_OBJECTS
78    *                               for this particular instance
79    *  @param p_instance_pk1_value  value 1 for instance's primary key
80    *  @param p_instance_pk2_value  value 2 for instance's primary key
81    *  @param p_instance_pk3_value  value 3 for instance's primary key
82    *  @param p_instance_pk4_value  value 4 for instance's primary key
83    *  @param p_instance_pk5_value  value 5 for instance's primary key
84    *  @param p_container_object_id ID for object definition id found in FND_OBJECTS
85    *                               for the container
86    *  @param p_container_pk1_value value 1 for container's primary key
87    *  @param p_container_pk2_value value 2 for container's primary key
88    *  @param p_container_pk3_value value 3 for container's primary key
89    *  @param p_container_pk4_value value 4 for container's primary key
90    *  @param p_container_pk5_value value 5 for container's primary key
91    *  @param p_commit              Indicates whether to commit or not at the end
92    *                               of procedure
93    *  @param p_api_version         standard parm - API Version
94    *  @param p_init_msg_list       standard parm - Initialize message list
95    *  @param x_return_status       standard parm - Return Status
96    *  @param x_msg_count           standard parm - Message Count
97    *  @param x_msg_data            standard parm - Message Data
98    *
99    *  @rep:displayname establish_inheritance
100    *
101    */
102   PROCEDURE establish_inheritance(
103     p_instance_object_id     IN NUMBER
104     ,p_instance_pk1_value    IN VARCHAR2
105     ,p_instance_pk2_value    IN VARCHAR2 DEFAULT NULL
106     ,p_instance_pk3_value    IN VARCHAR2 DEFAULT NULL
107     ,p_instance_pk4_value    IN VARCHAR2 DEFAULT NULL
108     ,p_instance_pk5_value    IN VARCHAR2 DEFAULT NULL
109     ,p_container_object_id   IN NUMBER   DEFAULT NULL
110     ,p_container_pk1_value   IN VARCHAR2 DEFAULT NULL
111     ,p_container_pk2_value   IN VARCHAR2 DEFAULT NULL
112     ,p_container_pk3_value   IN VARCHAR2 DEFAULT NULL
113     ,p_container_pk4_value   IN VARCHAR2 DEFAULT NULL
114     ,p_container_pk5_value   IN VARCHAR2 DEFAULT NULL
115     ,p_commit                IN  VARCHAR2 DEFAULT FND_API.g_false
116     ,p_api_version           IN  NUMBER   DEFAULT 1.0
117     ,p_init_msg_list         IN  VARCHAR2 DEFAULT fnd_api.g_false
118     ,x_return_status         OUT NOCOPY VARCHAR2
119     ,x_msg_count             OUT NOCOPY NUMBER
120     ,x_msg_data              OUT NOCOPY VARCHAR2
121   );
122 
123   /*#
124    *  It sets inheritance type of an instance already existing in data
125    *  security inheritance tree.
126    *
127    *  @param p_instance_object_id  ID for object definition id found in FND_OBJECTS
128    *                               for this particular instance
129    *  @param p_instance_pk1_value  value 1 for instance's primary key
130    *  @param p_instance_pk2_value  value 2 for instance's primary key
131    *  @param p_instance_pk3_value  value 3 for instance's primary key
132    *  @param p_instance_pk4_value  value 4 for instance's primary key
133    *  @param p_instance_pk5_value  value 5 for instance's primary key
134    *  @param p_inheritance_type    type of inheritance (FOLDER, HIDDEN-FOLDER,
135    *                               WORKSPACE and WSFOLDER). Currently supported
136    *                               in OCM only FOLDER and HIDDEN-FOLDER.
137    *  @param p_commit              Indicates whether to commit or not at the end
138    *                               of procedure
139    *  @param p_api_version         standard parm - API Version
140    *  @param p_init_msg_list       standard parm - Initialize message list
141    *  @param x_return_status       standard parm - Return Status
142    *  @param x_msg_count           standard parm - Message Count
143    *  @param x_msg_data            standard parm - Message Data
144    *
145    *  @rep:displayname set_inheritance_type
146    *
147    */
148   PROCEDURE set_inheritance_type(
149     p_instance_object_id     IN  NUMBER
150     ,p_instance_pk1_value    IN  VARCHAR2
151     ,p_instance_pk2_value    IN  VARCHAR2 DEFAULT NULL
152     ,p_instance_pk3_value    IN  VARCHAR2 DEFAULT NULL
153     ,p_instance_pk4_value    IN  VARCHAR2 DEFAULT NULL
154     ,p_instance_pk5_value    IN  VARCHAR2 DEFAULT NULL
155     ,p_inheritance_type      IN  VARCHAR2
156     ,p_commit                IN  VARCHAR2 DEFAULT FND_API.g_false
157     ,p_api_version           IN  NUMBER   DEFAULT 1.0
158     ,p_init_msg_list         IN  VARCHAR2 DEFAULT FND_API.g_false
159     ,x_return_status         OUT NOCOPY VARCHAR2
160     ,x_msg_count             OUT NOCOPY NUMBER
161     ,x_msg_data              OUT NOCOPY VARCHAR2
162   );
163 
164   /*#
165    *  It removes an instance from data security inheritance tree. This procedure
166    *  should be called when the directory node gets removed from the system as well,
167    *  to keep inheritance information accurate.
168    *
169    *  @param p_instance_object_id  ID for object definition id found in FND_OBJECTS
170    *                               for this particular instance
171    *  @param p_instance_pk1_value  value 1 for instance's primary key
172    *  @param p_instance_pk2_value  value 2 for instance's primary key
173    *  @param p_instance_pk3_value  value 3 for instance's primary key
174    *  @param p_instance_pk4_value  value 4 for instance's primary key
175    *  @param p_instance_pk5_value  value 5 for instance's primary key
176    *  @param p_commit              Indicates whether to commit or not at the end
177    *                               of procedure
178    *  @param p_api_version         standard parm - API Version
179    *  @param p_init_msg_list       standard parm - Initialize message list
180    *  @param x_return_status       standard parm - Return Status
181    *  @param x_msg_count           standard parm - Message Count
182    *  @param x_msg_data            standard parm - Message Data
183    *
184    *  @rep:displayname Remove_Instance
185    *
186    */
187   PROCEDURE Remove_Instance(
188     p_instance_object_id     IN  NUMBER
189     ,p_instance_pk1_value    IN  VARCHAR2
190     ,p_instance_pk2_value    IN  VARCHAR2 DEFAULT NULL
191     ,p_instance_pk3_value    IN  VARCHAR2 DEFAULT NULL
192     ,p_instance_pk4_value    IN  VARCHAR2 DEFAULT NULL
193     ,p_instance_pk5_value    IN  VARCHAR2 DEFAULT NULL
194     ,p_commit                IN  VARCHAR2 DEFAULT FND_API.g_false
195     ,p_api_version           IN  NUMBER   DEFAULT 1.0
196     ,p_init_msg_list         IN  VARCHAR2 DEFAULT FND_API.g_false
197     ,x_return_status         OUT NOCOPY VARCHAR2
198     ,x_msg_count             OUT NOCOPY NUMBER
199     ,x_msg_data              OUT NOCOPY VARCHAR2
200   );
201 
202 
203   /*#
204    *  It Resets all permissions, and makes the instance to inherit
205    *  all permissions from parent. This procedure gets called when
206    *  in the UI the user selects "Inherit"
207    *
208    *  @param p_instance_object_id  ID for object definition id found in FND_OBJECTS
209    *                               for this particular instance
210    *  @param p_instance_pk1_value  value 1 for instance's primary key
211    *  @param p_instance_pk2_value  value 2 for instance's primary key
212    *  @param p_instance_pk3_value  value 3 for instance's primary key
213    *  @param p_instance_pk4_value  value 4 for instance's primary key
214    *  @param p_instance_pk5_value  value 5 for instance's primary key
215    *  @param p_commit              Indicates whether to commit or not at the end
216    *                               of procedure
217    *  @param p_api_version         standard parm - API Version
218    *  @param p_init_msg_list       standard parm - Initialize message list
219    *  @param x_return_status       standard parm - Return Status
220    *  @param x_msg_count           standard parm - Message Count
221    *  @param x_msg_data            standard parm - Message Data
222    *
223    *  @rep:displayname reset_permissions
224    *
225    */
226   PROCEDURE reset_permissions(
227     p_instance_object_id     IN NUMBER
228     ,p_instance_pk1_value    IN VARCHAR2
229     ,p_instance_pk2_value    IN VARCHAR2 DEFAULT NULL
230     ,p_instance_pk3_value    IN VARCHAR2 DEFAULT NULL
231     ,p_instance_pk4_value    IN VARCHAR2 DEFAULT NULL
232     ,p_instance_pk5_value    IN VARCHAR2 DEFAULT NULL
233     ,p_commit                IN  VARCHAR2 DEFAULT FND_API.g_false
234     ,p_api_version           IN  NUMBER   DEFAULT 1.0
235     ,p_init_msg_list         IN  VARCHAR2 DEFAULT fnd_api.g_false
236     ,x_return_status         OUT NOCOPY VARCHAR2
237     ,x_msg_count             OUT NOCOPY NUMBER
238     ,x_msg_data              OUT NOCOPY VARCHAR2
239   );
240 
241 
242   /*#
243    *  It breaks inheritance of an instance form its parent, and copies
244    *  all permissions from container with the intention of "isolating"
245    *  instance's permissions from any modification to its container's
246    *  permissions.  This procedure gets called from UI when User clicks
247    *  on "Override", and it is useful so even though the user doesn't
248    *  make any other modification, the inheritance is already broken
249    *  and can be saved as such.
250    *
251    *  @param p_instance_object_id  ID for object definition id found in FND_OBJECTS
252    *                               for this particular instance
253    *  @param p_instance_pk1_value  value 1 for instance's primary key
254    *  @param p_instance_pk2_value  value 2 for instance's primary key
255    *  @param p_instance_pk3_value  value 3 for instance's primary key
256    *  @param p_instance_pk4_value  value 4 for instance's primary key
257    *  @param p_instance_pk5_value  value 5 for instance's primary key
258    *  @param p_commit              Indicates whether to commit or not at the end
259    *                               of procedure
260    *  @param p_api_version         standard parm - API Version
261    *  @param p_init_msg_list       standard parm - Initialize message list
262    *  @param x_return_status       standard parm - Return Status
263    *  @param x_msg_count           standard parm - Message Count
264    *  @param x_msg_data            standard parm - Message Data
265    *
266    *  @rep:displayname override_permissions
267    *
268    */
269   PROCEDURE override_permissions(
270     p_instance_object_id     IN NUMBER
271     ,p_instance_pk1_value    IN VARCHAR2
272     ,p_instance_pk2_value    IN VARCHAR2 DEFAULT NULL
273     ,p_instance_pk3_value    IN VARCHAR2 DEFAULT NULL
274     ,p_instance_pk4_value    IN VARCHAR2 DEFAULT NULL
275     ,p_instance_pk5_value    IN VARCHAR2 DEFAULT NULL
276     ,p_commit                IN  VARCHAR2 DEFAULT FND_API.g_false
277     ,p_api_version           IN  NUMBER   DEFAULT 1.0
278     ,p_init_msg_list         IN  VARCHAR2 DEFAULT fnd_api.g_false
279     ,x_return_status         OUT NOCOPY VARCHAR2
280     ,x_msg_count             OUT NOCOPY NUMBER
281     ,x_msg_data              OUT NOCOPY VARCHAR2
282   );
283 
284   /*#
285    *  Given the object name it returns corrsponding object id
286    *  from FND_OBJECTS
287    *
288    *  @param p_object_name Object Name in FND_OBJECTS
289    *  @return Object Id
290    *
291    *  @rep:displayname get_object_id
292    *
293    */
294   FUNCTION get_object_id(
295     p_object_name        IN VARCHAR2
296   ) RETURN NUMBER;
297 
298   /*#
299    *  Given an object id it returns the lookup type used
300    *  to validate especific permissions for the object
301    *  instances corresponding to such object id.
302    *
303    *  @param p_object_id Object Id
304    *  @return permission's lookup type
305    *
306    *  @rep:displayname get_perms_lookup_type
307    *
308    */
309   FUNCTION get_perms_lookup_type(
310     p_object_id              IN NUMBER
311   ) RETURN VARCHAR2;
312 
313 
314   /*#
315    *  Grants a permission on a particular object instance (or contained objects)
316    *  to a user.
317    *
318    *  @param p_instance_object_id  ID for object definition id found in FND_OBJECTS
319    *                               for this particular instance
320    *  @param p_instance_pk1_value  value 1 for instance's primary key
321    *  @param p_instance_pk2_value  value 2 for instance's primary key
322    *  @param p_instance_pk3_value  value 3 for instance's primary key
323    *  @param p_instance_pk4_value  value 4 for instance's primary key
324    *  @param p_instance_pk5_value  value 5 for instance's primary key
325    *  @param p_action              either ALLOW(permissions) or
326    *                               RESTRICT (exclusions)
327    *  @param p_permission_object_id Object ID of object which permission is
328    *                                being granted
329    *  @param p_permission_code     Permission being granted
330    *  @param p_grantee_user_id     User receiving permission, If not especified it
331    *                               means ANYBODY
332    *  @param p_container_object_id ID for object definition id found in FND_OBJECTS
333    *                               for the container
334    *  @param p_container_pk1_value value 1 for container's primary key
335    *  @param p_container_pk2_value value 2 for container's primary key
336    *  @param p_container_pk3_value value 3 for container's primary key
337    *  @param p_container_pk4_value value 4 for container's primary key
338    *  @param p_container_pk5_value value 5 for container's primary key
339    *  @param p_cascade_flag        Indicates if permission should be carried over
340    *                               to contained objects
341    *  @param p_commit              Indicates whether to commit or not at the end
342    *                               of procedure
343    *  @param p_api_version         standard parm - API Version
344    *  @param p_init_msg_list       standard parm - Initialize message list
345    *  @param x_return_status       standard parm - Return Status
346    *  @param x_msg_count           standard parm - Message Count
347    *  @param x_msg_data            standard parm - Message Data
348    *
349    *  @rep:displayname grant_permission
350    *
351    */
352   PROCEDURE grant_permission(
353     p_instance_object_id     IN NUMBER
354     ,p_instance_pk1_value    IN VARCHAR2
355     ,p_instance_pk2_value    IN VARCHAR2 DEFAULT NULL
356     ,p_instance_pk3_value    IN VARCHAR2 DEFAULT NULL
357     ,p_instance_pk4_value    IN VARCHAR2 DEFAULT NULL
358     ,p_instance_pk5_value    IN VARCHAR2 DEFAULT NULL
359     ,p_action                IN VARCHAR2
360     ,p_permission_object_id  IN NUMBER
361     ,p_permission_code       IN VARCHAR2
362     ,p_grantee_user_id       IN NUMBER
363     ,p_container_object_id   IN NUMBER   DEFAULT NULL
364     ,p_container_pk1_value   IN VARCHAR2 DEFAULT NULL
365     ,p_container_pk2_value   IN VARCHAR2 DEFAULT NULL
366     ,p_container_pk3_value   IN VARCHAR2 DEFAULT NULL
367     ,p_container_pk4_value   IN VARCHAR2 DEFAULT NULL
368     ,p_container_pk5_value   IN VARCHAR2 DEFAULT NULL
369     ,p_cascade_flag          IN VARCHAR2 DEFAULT FND_API.g_false
370     ,p_commit                IN  VARCHAR2 DEFAULT FND_API.g_false
371     ,p_api_version           IN  NUMBER   DEFAULT 1.0
372     ,p_init_msg_list         IN  VARCHAR2 DEFAULT fnd_api.g_false
373     ,x_return_status         OUT NOCOPY VARCHAR2
374     ,x_msg_count             OUT NOCOPY NUMBER
375     ,x_msg_data              OUT NOCOPY VARCHAR2
376   );
377 
378 
379   /*#
380    *  Grants a permission on a particular object instance
381    *  (or contained objects) to ANYBODY (if p_grantee_resource_id and
382    *  type are not passed) or a particular resource.
383    *
384    *  @param p_instance_object_id  ID for object definition id found in FND_OBJECTS
385    *                               for this particular instance
386    *  @param p_instance_pk1_value  value 1 for instance's primary key
387    *  @param p_instance_pk2_value  value 2 for instance's primary key
391    *  @param p_action              either ALLOW(permissions) or
388    *  @param p_instance_pk3_value  value 3 for instance's primary key
389    *  @param p_instance_pk4_value  value 4 for instance's primary key
390    *  @param p_instance_pk5_value  value 5 for instance's primary key
392    *                               RESTRICT (exclusions)
393    *  @param p_permission_object_id Object ID of object which permission is
394    *                                being granted
395    *  @param p_permission_code     Permission being granted
396    *  @param p_grantee_resource_id Resource Id
397    *  @param p_grantee_resource_type Resource Type. Resource receiving permission
398    *                                 if not especified it means ANYBODY
399    *  @param p_container_object_id ID for object definition id found in FND_OBJECTS
400    *                               for the container
401    *  @param p_container_pk1_value value 1 for container's primary key
402    *  @param p_container_pk2_value value 2 for container's primary key
403    *  @param p_container_pk3_value value 3 for container's primary key
404    *  @param p_container_pk4_value value 4 for container's primary key
405    *  @param p_container_pk5_value value 5 for container's primary key
406    *  @param p_cascade_flag        Indicates if permission should be carried over
407    *                               to contained objects
408    *  @param p_commit              Indicates whether to commit or not at the end
409    *                               of procedure
410    *  @param p_api_version         standard parm - API Version
411    *  @param p_init_msg_list       standard parm - Initialize message list
412    *  @param x_return_status       standard parm - Return Status
413    *  @param x_msg_count           standard parm - Message Count
414    *  @param x_msg_data            standard parm - Message Data
415    *
416    *  @rep:displayname grant_permission
417    *
418    */
419   PROCEDURE grant_permission(
420     p_instance_object_id     IN NUMBER
421     ,p_instance_pk1_value    IN VARCHAR2
422     ,p_instance_pk2_value    IN VARCHAR2 DEFAULT NULL
423     ,p_instance_pk3_value    IN VARCHAR2 DEFAULT NULL
424     ,p_instance_pk4_value    IN VARCHAR2 DEFAULT NULL
425     ,p_instance_pk5_value    IN VARCHAR2 DEFAULT NULL
426     ,p_action                IN VARCHAR2
427     ,p_permission_object_id  IN NUMBER
428     ,p_permission_code       IN VARCHAR2
429     ,p_grantee_resource_id   IN NUMBER   DEFAULT NULL
430     ,p_grantee_resource_type IN VARCHAR2 DEFAULT NULL
431     ,p_container_object_id   IN NUMBER   DEFAULT NULL
432     ,p_container_pk1_value   IN VARCHAR2 DEFAULT NULL
433     ,p_container_pk2_value   IN VARCHAR2 DEFAULT NULL
434     ,p_container_pk3_value   IN VARCHAR2 DEFAULT NULL
435     ,p_container_pk4_value   IN VARCHAR2 DEFAULT NULL
436     ,p_container_pk5_value   IN VARCHAR2 DEFAULT NULL
437     ,p_cascade_flag          IN VARCHAR2 DEFAULT FND_API.g_false
438     ,p_commit                IN  VARCHAR2 DEFAULT FND_API.g_false
439     ,p_api_version           IN  NUMBER   DEFAULT 1.0
440     ,p_init_msg_list         IN  VARCHAR2 DEFAULT fnd_api.g_false
441     ,x_return_status         OUT NOCOPY VARCHAR2
442     ,x_msg_count             OUT NOCOPY NUMBER
443     ,x_msg_data              OUT NOCOPY VARCHAR2
444   );
445 
446 
447   /*#
448    *  Revokes a especific permission already given, do not confuse this
449    *  with a grant to RESTRICT a permission.
450    *
451    *  @param p_instance_object_id  ID for object definition id found in FND_OBJECTS
452    *                               for this particular instance
453    *  @param p_instance_pk1_value  value 1 for instance's primary key
454    *  @param p_instance_pk2_value  value 2 for instance's primary key
455    *  @param p_instance_pk3_value  value 3 for instance's primary key
456    *  @param p_instance_pk4_value  value 4 for instance's primary key
457    *  @param p_instance_pk5_value  value 5 for instance's primary key
458    *  @param p_action              either ALLOW(permissions) or
459    *                               RESTRICT (exclusions)
460    *  @param p_permission_object_id Object ID of object to which permission was granted
461    *  @param p_permission_code     Permission code
462    *  @param p_grantee_user_id     User to which permission was originally granted,
463    *                               if not especified it means ANYBODY
464    *  @param p_commit              Indicates whether to commit or not at the end
465    *                               of procedure
466    *  @param p_api_version         standard parm - API Version
467    *  @param p_init_msg_list       standard parm - Initialize message list
468    *  @param x_return_status       standard parm - Return Status
469    *  @param x_msg_count           standard parm - Message Count
470    *  @param x_msg_data            standard parm - Message Data
471    *
472    *  @rep:displayname revoke_permission
473    *
474    */
475   PROCEDURE revoke_permission(
476     p_instance_object_id     IN NUMBER
477     ,p_instance_pk1_value    IN VARCHAR2
478     ,p_instance_pk2_value    IN VARCHAR2 DEFAULT NULL
479     ,p_instance_pk3_value    IN VARCHAR2 DEFAULT NULL
480     ,p_instance_pk4_value    IN VARCHAR2 DEFAULT NULL
481     ,p_instance_pk5_value    IN VARCHAR2 DEFAULT NULL
482     ,p_action                IN VARCHAR2
483     ,p_permission_object_id  IN NUMBER
484     ,p_permission_code       IN VARCHAR2
485     ,p_grantee_user_id       IN NUMBER
486     ,p_commit                IN  VARCHAR2 DEFAULT FND_API.g_false
490     ,x_msg_count             OUT NOCOPY NUMBER
487     ,p_api_version           IN  NUMBER   DEFAULT 1.0
488     ,p_init_msg_list         IN  VARCHAR2 DEFAULT fnd_api.g_false
489     ,x_return_status         OUT NOCOPY VARCHAR2
491     ,x_msg_data              OUT NOCOPY VARCHAR2
492   );
493 
494   /*#
495    *  Revokes a especific permission already given, do not confuse this
496    *  with a grant to RESTRICT a permission.
497    *
498    *  @param p_instance_object_id  ID for object definition id found in FND_OBJECTS
499    *                               for this particular instance
500    *  @param p_instance_pk1_value  value 1 for instance's primary key
501    *  @param p_instance_pk2_value  value 2 for instance's primary key
502    *  @param p_instance_pk3_value  value 3 for instance's primary key
503    *  @param p_instance_pk4_value  value 4 for instance's primary key
504    *  @param p_instance_pk5_value  value 5 for instance's primary key
505    *  @param p_action              either ALLOW(permissions) or
506    *                               RESTRICT (exclusions)
507    *  @param p_permission_object_id Object ID of object to which permission was granted
508    *  @param p_permission_code     Permission code
509    *  @param p_grantee_resource_id Resource to which permission was originally
510    *                               granted, if not especified it means ANYBODY
511    *  @param p_grantee_resource_type Resource Type
512    *  @param p_commit              Indicates whether to commit or not at the end
513    *                               of procedure
514    *  @param p_api_version         standard parm - API Version
515    *  @param p_init_msg_list       standard parm - Initialize message list
516    *  @param x_return_status       standard parm - Return Status
517    *  @param x_msg_count           standard parm - Message Count
518    *  @param x_msg_data            standard parm - Message Data
519    *
520    *  @rep:displayname revoke_permission
521    *
522    */
523   PROCEDURE revoke_permission(
524     p_instance_object_id     IN NUMBER
525     ,p_instance_pk1_value    IN VARCHAR2
526     ,p_instance_pk2_value    IN VARCHAR2 DEFAULT NULL
527     ,p_instance_pk3_value    IN VARCHAR2 DEFAULT NULL
528     ,p_instance_pk4_value    IN VARCHAR2 DEFAULT NULL
529     ,p_instance_pk5_value    IN VARCHAR2 DEFAULT NULL
530     ,p_action                IN VARCHAR2
531     ,p_permission_object_id  IN NUMBER
532     ,p_permission_code       IN VARCHAR2
533     ,p_grantee_resource_id   IN NUMBER   DEFAULT NULL
534     ,p_grantee_resource_type IN VARCHAR2 DEFAULT NULL
535     ,p_commit                IN  VARCHAR2 DEFAULT FND_API.g_false
536     ,p_api_version           IN  NUMBER   DEFAULT 1.0
537     ,p_init_msg_list         IN  VARCHAR2 DEFAULT fnd_api.g_false
538     ,x_return_status         OUT NOCOPY VARCHAR2
539     ,x_msg_count             OUT NOCOPY NUMBER
540     ,x_msg_data              OUT NOCOPY VARCHAR2
541   );
542 
543 
544   /*#
545    *  Checks whether an user has a particular permission on an
546    *  object instance
547    *
548    *  @param p_instance_object_id  ID for object definition id found in FND_OBJECTS
549    *                               for this particular instance
550    *  @param p_instance_pk1_value  value 1 for instance's primary key
551    *  @param p_instance_pk2_value  value 2 for instance's primary key
552    *  @param p_instance_pk3_value  value 3 for instance's primary key
553    *  @param p_instance_pk4_value  value 4 for instance's primary key
554    *  @param p_instance_pk5_value  value 5 for instance's primary key
555    *  @param p_permission_code     Permission Code
556    *  @param p_container_pk1_value value 1 for container's primary key
557    *  @param p_container_pk2_value value 2 for container's primary key
558    *  @param p_container_pk3_value value 3 for container's primary key
559    *  @param p_container_pk4_value value 4 for container's primary key
560    *  @param p_container_pk5_value value 5 for container's primary key
561    *  @param p_current_user_id     Current User Id
562    *  @return Whether user has (FND_API.g_true) or not (FND_API.g_false) such
563    *          permission
564    *
565    *  @rep:displayname has_permission
566    *
567    */
568   FUNCTION has_permission(
569     p_instance_object_id     IN NUMBER
570     ,p_instance_pk1_value    IN VARCHAR2
571     ,p_instance_pk2_value    IN VARCHAR2 DEFAULT NULL
572     ,p_instance_pk3_value    IN VARCHAR2 DEFAULT NULL
573     ,p_instance_pk4_value    IN VARCHAR2 DEFAULT NULL
574     ,p_instance_pk5_value    IN VARCHAR2 DEFAULT NULL
575     ,p_permission_code       IN VARCHAR2
576     ,p_container_object_id   IN NUMBER   DEFAULT NULL
577     ,p_container_pk1_value   IN VARCHAR2 DEFAULT NULL
578     ,p_container_pk2_value   IN VARCHAR2 DEFAULT NULL
579     ,p_container_pk3_value   IN VARCHAR2 DEFAULT NULL
580     ,p_container_pk4_value   IN VARCHAR2 DEFAULT NULL
581     ,p_container_pk5_value   IN VARCHAR2 DEFAULT NULL
582     ,p_current_user_id       IN NUMBER   DEFAULT NULL
583   ) RETURN VARCHAR2;
584 
585   PRAGMA RESTRICT_REFERENCES(has_permission, WNDS, WNPS, TRUST);
586 
587   /*#
588    *  Returns the list of permissions a user has on an object instance
589    *  as a string (comma separated and bracket delimited)
590    *
591    *  @param p_instance_object_id  ID for object definition id found in FND_OBJECTS
592    *                               for this particular instance
593    *  @param p_instance_pk1_value  value 1 for instance's primary key
594    *  @param p_instance_pk2_value  value 2 for instance's primary key
595    *  @param p_instance_pk3_value  value 3 for instance's primary key
596    *  @param p_instance_pk4_value  value 4 for instance's primary key
597    *  @param p_instance_pk5_value  value 5 for instance's primary key
598    *  @param p_container_object_id ID for container. Found in FND_OBJECTS
599    *  @param p_container_pk1_value value 1 for container's primary key
600    *  @param p_container_pk2_value value 2 for container's primary key
601    *  @param p_container_pk3_value value 3 for container's primary key
602    *  @param p_container_pk4_value value 4 for container's primary key
603    *  @param p_container_pk5_value value 5 for container's primary key
604    *  @param p_current_user_id     Current User Id
605    *
606    *  @rep:displayname get_permissions_as_string
607    *
608    */
609     FUNCTION get_permissions_as_string(
610     p_instance_object_id     IN NUMBER
611     ,p_instance_pk1_value    IN VARCHAR2
612     ,p_instance_pk2_value    IN VARCHAR2 DEFAULT NULL
613     ,p_instance_pk3_value    IN VARCHAR2 DEFAULT NULL
614     ,p_instance_pk4_value    IN VARCHAR2 DEFAULT NULL
615     ,p_instance_pk5_value    IN VARCHAR2 DEFAULT NULL
616     ,p_container_object_id   IN NUMBER   DEFAULT NULL
617     ,p_container_pk1_value   IN VARCHAR2 DEFAULT NULL
618     ,p_container_pk2_value   IN VARCHAR2 DEFAULT NULL
619     ,p_container_pk3_value   IN VARCHAR2 DEFAULT NULL
620     ,p_container_pk4_value   IN VARCHAR2 DEFAULT NULL
621     ,p_container_pk5_value   IN VARCHAR2 DEFAULT NULL
622     ,p_current_user_id       IN NUMBER   DEFAULT NULL
623   ) RETURN VARCHAR2;
624 
625   PRAGMA RESTRICT_REFERENCES(get_permissions_as_string, WNDS, WNPS, TRUST);
626 
627   /*#
628    *  Returns the list of permissions a user has on an object instance
629    *
630    *  @param p_instance_object_id  ID for object definition id found in FND_OBJECTS
631    *                               for this particular instance
632    *  @param p_instance_pk1_value  value 1 for instance's primary key
633    *  @param p_instance_pk2_value  value 2 for instance's primary key
634    *  @param p_instance_pk3_value  value 3 for instance's primary key
635    *  @param p_instance_pk4_value  value 4 for instance's primary key
636    *  @param p_instance_pk5_value  value 5 for instance's primary key
637    *  @param p_container_object_id ID for container. Found in FND_OBJECTS
638    *  @param p_container_pk1_value value 1 for container's primary key
639    *  @param p_container_pk2_value value 2 for container's primary key
640    *  @param p_container_pk3_value value 3 for container's primary key
641    *  @param p_container_pk4_value value 4 for container's primary key
642    *  @param p_container_pk5_value value 5 for container's primary key
643    *  @param p_current_user_id     Current User Id
644    *  @param x_permission_tbl      Output pl/sql table containing all
645    *                               different permission codes.
646    *  @param p_api_version         standard parm - API Version
647    *  @param p_init_msg_list       standard parm - Initialize message list
648    *  @param x_return_status       standard parm - Return Status
649    *  @param x_msg_count           standard parm - Message Count
650    *  @param x_msg_data            standard parm - Message Data
651    *
652    *  @rep:displayname get_permissions
653    *
654    */
655   PROCEDURE get_permissions(
656     p_instance_object_id     IN NUMBER
657     ,p_instance_pk1_value    IN VARCHAR2
658     ,p_instance_pk2_value    IN VARCHAR2 DEFAULT NULL
659     ,p_instance_pk3_value    IN VARCHAR2 DEFAULT NULL
660     ,p_instance_pk4_value    IN VARCHAR2 DEFAULT NULL
661     ,p_instance_pk5_value    IN VARCHAR2 DEFAULT NULL
662     ,p_container_object_id   IN NUMBER   DEFAULT NULL
663     ,p_container_pk1_value   IN VARCHAR2 DEFAULT NULL
664     ,p_container_pk2_value   IN VARCHAR2 DEFAULT NULL
665     ,p_container_pk3_value   IN VARCHAR2 DEFAULT NULL
666     ,p_container_pk4_value   IN VARCHAR2 DEFAULT NULL
667     ,p_container_pk5_value   IN VARCHAR2 DEFAULT NULL
668     ,p_current_user_id       IN NUMBER   DEFAULT NULL
669     ,x_permission_tbl        OUT NOCOPY jtf_varchar2_table_100
670     ,p_api_version           IN  NUMBER   DEFAULT 1.0
671     ,p_init_msg_list         IN  VARCHAR2 DEFAULT fnd_api.g_false
672     ,x_return_status         OUT NOCOPY VARCHAR2
673     ,x_msg_count             OUT NOCOPY NUMBER
674     ,x_msg_data              OUT NOCOPY VARCHAR2
675   );
676 
677   /*#
678    *  Procedure to obtain a list of users which has a particular
679    *  permission on a object's instance. The result is returned comma
680    *  separated.
681    *
682    *  @param p_instance_object_id  ID for object definition id found in FND_OBJECTS
683    *                               for this particular instance
684    *  @param p_instance_pk1_value  value 1 for instance's primary key
685    *  @param p_instance_pk2_value  value 2 for instance's primary key
686    *  @param p_instance_pk3_value  value 3 for instance's primary key
687    *  @param p_instance_pk4_value  value 4 for instance's primary key
688    *  @param p_instance_pk5_value  value 5 for instance's primary key
689    *  @param p_permission_code     Permission Code
690    *  @param p_container_pk1_value value 1 for container's primary key
691    *  @param p_container_pk2_value value 2 for container's primary key
692    *  @param p_container_pk3_value value 3 for container's primary key
693    *  @param p_container_pk4_value value 4 for container's primary key
694    *  @param p_container_pk5_value value 5 for container's primary key
695    *  @param p_include_global      whether to include "global" user in the list
696    *  @param p_global_value        Value to be used as "global" user, by default
697    *                               it is 'All'.
698    *  @param x_usernames           Output string containing all users with
699    *                               permission on object's instance
700    *  @param p_api_version         standard parm - API Version
701    *  @param p_init_msg_list       standard parm - Initialize message list
702    *  @param x_return_status       standard parm - Return Status
703    *  @param x_msg_count           standard parm - Message Count
704    *  @param x_msg_data            standard parm - Message Data
705    *
706    *  @rep:displayname get_grantee_usernames
707    *
708    */
709   PROCEDURE get_grantee_usernames(
710     p_instance_object_id     IN NUMBER
714     ,p_instance_pk4_value    IN VARCHAR2 DEFAULT NULL
711     ,p_instance_pk1_value    IN VARCHAR2
712     ,p_instance_pk2_value    IN VARCHAR2 DEFAULT NULL
713     ,p_instance_pk3_value    IN VARCHAR2 DEFAULT NULL
715     ,p_instance_pk5_value    IN VARCHAR2 DEFAULT NULL
716     ,p_permission_code       IN VARCHAR2
717     ,p_container_object_id   IN NUMBER   DEFAULT NULL
718     ,p_container_pk1_value   IN VARCHAR2 DEFAULT NULL
719     ,p_container_pk2_value   IN VARCHAR2 DEFAULT NULL
720     ,p_container_pk3_value   IN VARCHAR2 DEFAULT NULL
721     ,p_container_pk4_value   IN VARCHAR2 DEFAULT NULL
722     ,p_container_pk5_value   IN VARCHAR2 DEFAULT NULL
723     ,p_include_global        IN  VARCHAR2 DEFAULT fnd_api.g_false
724     ,p_global_value          IN  VARCHAR2 DEFAULT 'All'
725     ,x_usernames             OUT NOCOPY VARCHAR2
726     ,p_api_version           IN  NUMBER   DEFAULT 1.0
727     ,p_init_msg_list         IN  VARCHAR2 DEFAULT fnd_api.g_false
728     ,x_return_status         OUT NOCOPY VARCHAR2
729     ,x_msg_count             OUT NOCOPY NUMBER
730     ,x_msg_data              OUT NOCOPY VARCHAR2
731   );
732 
733   /*#
734    *  returns the list of grantee user ids who have a specific permission
735    *  on a given object instance.  This doesn't include permissions given
736    *  to everybody (no grantee in particular) nor "RESTRICT" grants.
737    *
738    *  @param p_instance_object_id  ID for object definition id found in FND_OBJECTS
739    *                               for this particular instance
740    *  @param p_instance_pk1_value  value 1 for instance's primary key
741    *  @param p_instance_pk2_value  value 2 for instance's primary key
742    *  @param p_instance_pk3_value  value 3 for instance's primary key
743    *  @param p_instance_pk4_value  value 4 for instance's primary key
744    *  @param p_instance_pk5_value  value 5 for instance's primary key
745    *  @param p_permission_code     Permission Code
746    *  @param p_container_pk1_value value 1 for container's primary key
747    *  @param p_container_pk2_value value 2 for container's primary key
748    *  @param p_container_pk3_value value 3 for container's primary key
749    *  @param p_container_pk4_value value 4 for container's primary key
750    *  @param p_container_pk5_value value 5 for container's primary key
751    *  @param x_userids             Output table containing all users with
752    *                               permission on object's instance
753    *  @param p_api_version         standard parm - API Version
754    *  @param p_init_msg_list        standard parm - Initialize message list
755    *  @param x_return_status       standard parm - Return Status
756    *  @param x_msg_count           standard parm - Message Count
757    *  @param x_msg_data            standard parm - Message Data
758    *
759    *  @rep:displayname get_grantee_userids
760    *
761    */
762   PROCEDURE get_grantee_userids(
763     p_instance_object_id     IN NUMBER
764     ,p_instance_pk1_value    IN VARCHAR2
765     ,p_instance_pk2_value    IN VARCHAR2 DEFAULT NULL
766     ,p_instance_pk3_value    IN VARCHAR2 DEFAULT NULL
767     ,p_instance_pk4_value    IN VARCHAR2 DEFAULT NULL
768     ,p_instance_pk5_value    IN VARCHAR2 DEFAULT NULL
769     ,p_permission_code       IN VARCHAR2
770     ,p_container_object_id   IN NUMBER   DEFAULT NULL
771     ,p_container_pk1_value   IN VARCHAR2 DEFAULT NULL
775     ,p_container_pk5_value   IN VARCHAR2 DEFAULT NULL
772     ,p_container_pk2_value   IN VARCHAR2 DEFAULT NULL
773     ,p_container_pk3_value   IN VARCHAR2 DEFAULT NULL
774     ,p_container_pk4_value   IN VARCHAR2 DEFAULT NULL
776     ,x_userids               OUT NOCOPY JTF_NUMBER_TABLE
777     ,p_api_version           IN  NUMBER   DEFAULT 1.0
778     ,p_init_msg_list         IN  VARCHAR2 DEFAULT fnd_api.g_false
779     ,x_return_status         OUT NOCOPY VARCHAR2
780     ,x_msg_count             OUT NOCOPY NUMBER
781     ,x_msg_data              OUT NOCOPY VARCHAR2
782   );
783 
784   /*#
785    *  Returns information about inheritance, particularly the type of
786    *  inheritance, and if in fact this instance has its own permissions
787    *  or is still inheriting from parent container.
788    *
789    *  @param p_instance_object_id  ID for object definition id found in FND_OBJECTS
790    *                               for this particular instance
791    *  @param p_instance_pk1_value  value 1 for instance's primary key
792    *  @param p_instance_pk2_value  value 2 for instance's primary key
793    *  @param p_instance_pk3_value  value 3 for instance's primary key
794    *  @param p_instance_pk4_value  value 4 for instance's primary key
795    *  @param p_instance_pk5_value  value 5 for instance's primary key
796    *  @param p_container_object_id ID for container. Found in FND_OBJECTS
797    *  @param p_container_pk1_value value 1 for container's primary key
798    *  @param p_container_pk2_value value 2 for container's primary key
799    *  @param p_container_pk3_value value 3 for container's primary key
800    *  @param p_container_pk4_value value 4 for container's primary key
801    *  @param p_container_pk5_value value 5 for container's primary key
802    *  @param p_api_version         standard parm - API Version
803    *  @param p_init_msg_list       standard parm - Initialize message list
804    *  @param x_inherited_flag      Whether instance is inheriting (T) or Not (F)
805    *  @param x_inheritance_type    Inheritance Type
806    *  @param x_return_status       standard parm - Return Status
807    *  @param x_msg_count           standard parm - Message Count
808    *  @param x_msg_data            standard parm - Message Data
809    *
810    *  @rep:displayname get_inheritance_info
811    *
812    */
813   PROCEDURE get_inheritance_info (
814     p_instance_object_id     IN NUMBER
815     ,p_instance_pk1_value    IN VARCHAR2
816     ,p_instance_pk2_value    IN VARCHAR2
817     ,p_instance_pk3_value    IN VARCHAR2
818     ,p_instance_pk4_value    IN VARCHAR2
819     ,p_instance_pk5_value    IN VARCHAR2
820     ,p_container_object_id   IN NUMBER
821     ,p_container_pk1_value   IN VARCHAR2
822     ,p_container_pk2_value   IN VARCHAR2
823     ,p_container_pk3_value   IN VARCHAR2
824     ,p_container_pk4_value   IN VARCHAR2
825     ,p_container_pk5_value   IN VARCHAR2
826     ,p_api_version           IN  NUMBER
827     ,p_init_msg_list         IN  VARCHAR2
828     ,x_inherited_flag        OUT NOCOPY VARCHAR2
829     ,x_inheritance_type      OUT NOCOPY VARCHAR2
830     ,x_return_status         OUT NOCOPY VARCHAR2
831     ,x_msg_count             OUT NOCOPY NUMBER
832     ,x_msg_data              OUT NOCOPY VARCHAR2
833   );
834 
835 END;