DBA Data[Home] [Help]

PACKAGE: APPS.CZ_SECURITY_PVT

Source


1 PACKAGE cz_security_pvt AS
2 /*  $Header: czsecurs.pls 120.1 2008/02/18 15:02:34 ethomas ship $       */
3 
4 --------------------------Pkg level constants------
5 ----entity access user types
6 ENTITY_CREATOR      CONSTANT VARCHAR2(20) := 'CREATOR';
7 ENTITY_USER         CONSTANT VARCHAR2(20) := 'USER';
8 
9 ----user privilege constants
10 EDIT_ENTITY               CONSTANT VARCHAR2(100) := 'E';
11 MANAGE_ENTITY             CONSTANT VARCHAR2(100) := 'M';
12 MANAGE_AND_EDIT_ENTITY    CONSTANT VARCHAR2(100) := 'ME';
13 NO_MANAGE_AND_EDIT_ENTITY CONSTANT VARCHAR2(100) := 'N';
14 
15 ----entity type constants
16 MODEL         CONSTANT VARCHAR2(30) := 'MODEL';
17 UI            CONSTANT VARCHAR2(30) := 'UI';
18 RULEFOLDER    CONSTANT VARCHAR2(30) := 'RULEFOLDER';
19 
20 ----has privilege constants
21 HAS_PRIVILEGE      CONSTANT VARCHAR2(1)   := 'T';
22 HAS_NO_PRIVILEGE   CONSTANT VARCHAR2(1)   := 'F';
23 UNEXPECTED_ERROR   CONSTANT VARCHAR2(100) := 'U';
24 
25 ----default user access constants
26 DEFAULT_ENTITY_ACCESS     CONSTANT VARCHAR2(100) := 'CZ_DEFAULT_MODEL_ACCESS';
27 USE_ENTITY_ACCESS_CONTROL CONSTANT VARCHAR2(100) := 'CZ_USE_ENTITY_ACCESS_CONTROL';
28 
29 -----model global operations constants
30 PUBLISH_MODEL_FUNCTION            CONSTANT    VARCHAR2(100) := 'CZDEVPUBLISHFUNC';
31 GENERATE_ACTIVE_MODEL_FUNCTION    CONSTANT    VARCHAR2(100) := 'CZDEVLOGICGENFUNC';
32 GENERATE_UI_FUNCTION              CONSTANT    VARCHAR2(100) := 'CZDEVUIGENFUNC';
33 IMPORT_MODEL_FUNCTION             CONSTANT    VARCHAR2(100) := 'CZDEVIMPORTMODELFUNC';
34 POPULATORS_FUNCTION               CONSTANT    VARCHAR2(100) := 'CZDEVPOPULATORSFUNC';
35 DEEP_MODEL_COPY_FUNC              CONSTANT    VARCHAR2(100) := 'CZDEVDEEPMODELCOPYFUNC';
36 UNLOCK_FUNCTION                   CONSTANT    VARCHAR2(100) := 'CZDEVFORCEUNLOCKFUNC';
37 UNLOCK_CHILD_MODELS               CONSTANT    VARCHAR2(1) := '1';
38 DO_NOT_UNLOCK_CHILD_MODELS        CONSTANT    VARCHAR2(1) := '0';
39 DO_COMMIT                         CONSTANT    VARCHAR2(1) := '1';
40 DO_NOT_COMMIT                     CONSTANT    VARCHAR2(1) := '0';
41 LOCK_CHILD_MODELS                 CONSTANT    VARCHAR2(1) := '1';
42 DO_NOT_LOCK_CHILD_MODELS          CONSTANT    VARCHAR2(1) := '0';
43 DO_INIT_MSG_LIST                  CONSTANT    VARCHAR2(1) := '1';
44 
45 -----lock profiles
46 LOCK_MODELS_FOR_EDIT       CONSTANT VARCHAR2(100) := 'CZ_EDIT_MODELS_NO_LOCK';
47 LOCK_REQUIRE_LOCKING       CONSTANT VARCHAR2(100) := 'CZ_REQUIRE_LOCKING';
48 LOCK_MODELS_FOR_GLOPS      CONSTANT VARCHAR2(100) := 'CZ_ALLOW_GLOBAL_OPERATIONS_WITHOUT_LOCK';
49 LOCK_PUBLICATION_FOR_TEST  CONSTANT VARCHAR2(100) := 'CZ_ALLOW_PUBLISH_TO_TEST_WHEN_LOCKED';
50 LOCK_PUBLICATION_FOR_PROD  CONSTANT VARCHAR2(100) := 'CZ_ALLOW_PUBLISH_TO_PRODUCTION_WHEN_LOCKED';
51 
52 ------constants for lock
53 LOCK_REQUIRED                   CONSTANT VARCHAR2(1) := 'Y';
54 LOCK_NOT_REQUIRED               CONSTANT VARCHAR2(1) := 'N';
55 
56 -----constants for deep and shallow lock
57 DEEP_LOCK    CONSTANT VARCHAR2(1)   := '1';
58 SHALLOW_LOCK CONSTANT VARCHAR2(1)   := '0';
59 
60 ----entity table names
61 DEVL_PROJECT_TABLE  CONSTANT VARCHAR2(100) := 'CZ_DEVL_PROJECTS';
62 UI_DEFS_TABLE       CONSTANT VARCHAR2(100) := 'CZ_UI_DEFS';
63 RULE_FOLDERS_TABLE  CONSTANT VARCHAR2(100) := 'CZ_RULE_FOLDERS';
64 
65 INVALID_ENTITY_TYPE EXCEPTION;
66 
67 ----role type constants
68 MANAGE_MODEL_ROLE  CONSTANT VARCHAR2(100) := 'CZMANAGEMODELROLE';
69 EDIT_MODEL_ROLE    CONSTANT VARCHAR2(100) := 'CZEDITMODELROLE';
70 EDIT_RULE_ROLE     CONSTANT VARCHAR2(100) := 'CZEDITRULEROLE';
71 EDIT_UI_ROLE       CONSTANT VARCHAR2(100) := 'CZEDITUIROLE';
72 SECURITY_MENU      CONSTANT VARCHAR2(100) := 'SECURITY';
73 MANAGE_ACCESS_ROLE CONSTANT VARCHAR2(100) := 'CZMANAGEACCESSROLE';
74 
75 
76 -----lock functions
77 LOCK_MODEL_FUNC      CONSTANT VARCHAR2(100)    := 'CZDEVEDITMODELFUNC';
78 LOCK_UI_FUNC         CONSTANT VARCHAR2(100)    := 'CZDEVEDITUIFUNC';
79 LOCK_RULEFOLDER_FUNC CONSTANT VARCHAR2(100)    := 'CZDEVEDITRULEFUNC';
80 
81 G_PKG_NAME                CONSTANT VARCHAR2(100) := 'cz_security_pvt';
82 G_INCOMPATIBLE_API   EXCEPTION;
83 
84 TYPE number_type_tbl  IS TABLE OF NUMBER index by BINARY_INTEGER;
85 TYPE varchar_type_tbl IS TABLE OF VARCHAR2(100) index by BINARY_INTEGER;
86 
87 TYPE model_name_tbl    IS TABLE OF VARCHAR2(255)  index by BINARY_INTEGER;
88 TYPE checkout_user_tbl IS TABLE OF VARCHAR2(100)  index by BINARY_INTEGER;
89 
90 l_grant_entity_tbl  number_type_tbl;
91 l_grant_entity_type_tbl varchar_type_tbl;
92 g_models_locked       number_type_tbl;
93 
94 
95 g_entity_profile_value VARCHAR2(100) := NULL;
96 g_lock_profile_value   VARCHAR2(100) := NULL;
97 g_has_priv_status      VARCHAR2(1) := 'N';
98 
99 ------------->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
100 ---Start of comments
101 ---API name                 : get_default_access_profile
102 ---Type                      : Public
103 ---Pre-reqs                 : None
104 ---Function                 : Returns entity access profile
105 ---Parameters               :
106 ---IN                       :
107 ---
108 ---
109 ---RETURN VALUE                : VARCHAR2
110 ---
111 ---
112 ---Version: Current version :1.0
113 
114 ---End of comments
115 
116 FUNCTION get_default_access_profile
117 RETURN VARCHAR2;
118 
119 ------------->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
120 ---Start of comments
121 ---API name                 : grant_privilege
122 ---Type                      : Public
123 ---Pre-reqs                 : None
124 ---Function                 : grant access to a user on an entity
125 ---Parameters               :
126 ---IN                       : p_api_version          IN  NUMBER       Required
127 ---                              p_user_name            IN  VARCHAR2      Required
128 ---                              p_privilege            IN  VARCHAR2      Required
129 ---                              p_entity_type          IN  VARCHAR2      Required
130 ---                              p_instance_pk1_value   IN  NUMBER      Required
131 ---
132 ---OUT                      :
133 ---                              x_return_status OUT NOCOPY VARCHAR2
134 ---                              x_msg_count     OUT NOCOPY NUMBER
135 ---                              x_msg_data      OUT NOCOPY VARCHAR2
136 ---
137 ---
138 ---Version: Current version :1.0
139 ---End of comments
140 
141 PROCEDURE grant_privilege(p_api_version        IN NUMBER,
142                           p_user_name          IN VARCHAR2,
143                           p_entity_role        IN VARCHAR2,
144                           p_instance_pk1_value IN NUMBER,
145                           x_return_status     OUT NOCOPY VARCHAR2,
146                           x_msg_count         OUT NOCOPY NUMBER,
147                           x_msg_data          OUT NOCOPY VARCHAR2);
148 
149 --------------------------------------------------------------------------
150 ---Start of comments
151 ---API name                 : revoke_privilege
152 ---Type                      : Public
153 ---Pre-reqs                 : None
154 ---Function                 : revoke access to a user on an entity
155 ---Parameters               :
156 ---IN                       : p_api_version          IN  NUMBER       Required
157 ---                              p_user_name            IN  VARCHAR2      Required
158 ---                              p_privilege            IN  VARCHAR2      Required
159 ---                              p_entity_type          IN  VARCHAR2      Required
160 ---                              p_instance_pk1_value   IN  NUMBER      Required
161 ---
162 ---OUT                      :
163 ---                              x_return_status OUT NOCOPY VARCHAR2
164 ---                              x_msg_count     OUT NOCOPY NUMBER
165 ---                              x_msg_data      OUT NOCOPY VARCHAR2
166 ---
167 ---
168 ---Version: Current version :1.0
169 ---End of comments
170 
171 PROCEDURE revoke_privilege(p_api_version       IN NUMBER,
172                           p_user_name          IN VARCHAR2,
173                           p_entity_role        IN VARCHAR2,
174                           p_instance_pk1_value IN NUMBER,
175                           x_return_status     OUT NOCOPY VARCHAR2,
176                           x_msg_count         OUT NOCOPY NUMBER,
177                           x_msg_data          OUT NOCOPY VARCHAR2);
178 --------------------------------------------------------------------------------
179 ---Start of comments
180 ---API name                 : has_privileges
181 ---Type                      : Public
182 ---Pre-reqs                 : None
183 ---Function                 : check user privilege on an entity
184 ---Parameters               :
185 ---IN                       : p_api_version          IN  NUMBER       Required
186 ---                              p_user_name            IN  VARCHAR2      Required
187 ---                              p_function_name        IN  VARCHAR2      Required
188 ---                              p_entity_type          IN  VARCHAR2      Required
189 ---                              p_instance_pk1_value   IN  NUMBER      Required
190 ---
191 ---RETURN VALUE                :
192 ---                              VARCHAR2 (allowable values are
193 ---                                              CZ_SECURITY_PUB.HAS_PRIVILEGE
194 ---                                          CZ_SECURITY_PUB.HAS_NO_PRIVILEGE)
195 ---
196 ---Version: Current version :1.0
197 ---End of comments
198 
199 FUNCTION has_privileges   (p_api_version       IN NUMBER,
200                           p_user_name          IN VARCHAR2,
201                           p_function_name      IN VARCHAR2,
202                           p_entity_type        IN VARCHAR2,
203                           p_instance_pk1_value IN NUMBER)
204 RETURN VARCHAR2;
205 
206 --------------------------
207 ----This API would return 'T' if the user has edit access on atleast one entity (MODEL,UI,RULEFOLDER),
208 -----otherwise it will return 'F'. This is used for the enable or disable the edit icon in the repository.
209 FUNCTION has_model_privileges(p_model_id IN NUMBER)
210 RETURN VARCHAR2;
211 
212 -----------------------------------------------------------------------------------
213 ---Start of comments
214 ---API name                 : lock_entity
215 ---Type                      : Public
216 ---Pre-reqs                 : None
217 ---Function                 : lock on an entity
218 ---Parameters               :
219 ---IN                       : p_api_version          IN  NUMBER       Required
220 ---                              p_user_name            IN  VARCHAR2      Required
221 ---                              p_entity_type          IN  VARCHAR2      Required
222 ---                              p_instance_pk1_value   IN  NUMBER      Required
223 ---                              p_lock_type                 IN  VARCHAR2 Required
224 ---                                 allowed values cz_security_pvt.DEEP_LOCK
225 ---                                                cz_security_pvt.SHALLOW_LOCK
226 ---OUT                      :
227 ---                              x_return_status OUT NOCOPY VARCHAR2
228 ---                              x_msg_count     OUT NOCOPY NUMBER
229 ---                              x_msg_data      OUT NOCOPY VARCHAR2
230 ---
231 ---Version: Current version :1.0
232 ---End of comments
233 
234 PROCEDURE lock_entity   (p_api_version            IN NUMBER,
235                             p_user_name           IN VARCHAR2,
236                             p_entity_type         IN VARCHAR2,
237                             p_instance_pk1_value  IN NUMBER,
238                             p_lock_type           IN VARCHAR2,
239                             x_locked_entities     OUT NOCOPY number_type_tbl,
240                             x_return_status       OUT NOCOPY VARCHAR2,
241                             x_msg_count           OUT NOCOPY NUMBER,
242                             x_msg_data            OUT NOCOPY VARCHAR2);
243 
244 ----------------
245 PROCEDURE lock_entity (p_model_id IN NUMBER,
246                           p_function_name IN VARCHAR2,
247                           x_locked_entities  OUT NOCOPY number_type_tbl,
248                           x_return_status    OUT NOCOPY VARCHAR2,
249                           x_msg_count        OUT NOCOPY NUMBER,
250                           x_msg_data         OUT NOCOPY VARCHAR2);
251 
252 ----------------
253 PROCEDURE lock_entity   (p_api_version            IN NUMBER,
254                             p_user_name           IN VARCHAR2,
255                             p_entity_type         IN VARCHAR2,
256                             p_instance_pk1_value  IN NUMBER,
257                             p_lock_type           IN VARCHAR2,
258                             x_return_status       OUT NOCOPY VARCHAR2,
259                             x_msg_count           OUT NOCOPY NUMBER,
260                             x_msg_data            OUT NOCOPY VARCHAR2);
261 -----------------
262 ------------------------------------------------------------------------------------------
263 ---Start of comments
264 ---API name                 : unlock_entity
265 ---Type                      : Public
266 ---Pre-reqs                 : None
267 ---Procedure                : unlock on an entity
268 ---Parameters               :
269 ---IN                       : p_api_version          IN  NUMBER       Required
270 ---                              p_user_name            IN  VARCHAR2      Required
271 ---                              p_entity_type          IN  VARCHAR2      Required
272 ---                              p_instance_pk1_value   IN  NUMBER      Required
273 ---
274 ---OUT                      :
275 ---                              x_return_status OUT NOCOPY VARCHAR2
276 ---                              x_msg_count     OUT NOCOPY NUMBER
277 ---                              x_msg_data      OUT NOCOPY VARCHAR2
278 ---
279 ---Version: Current version :1.0
280 ---p_user_name              : FND_USERS.USER_NAME
281 ---p_entity_type                : FND_OBJECTS.OBJ_NAME (ALlowable values are CZ_SECURITY_PUB.MODEL,
282 ---                              CZ_SECURITY_PUB.UI, CZ_SECURITY_PUB.RULEFOLDER)
283 ---p_instance_pk1_value     : Allowable values
284 ---                              devl_project_id (if p_entity_type is CZ_SECURITY_PUB.MODEL or
285 ---                              CZ_SECURITY_PUB.UI)
286 ---                              rule_folder_id (if p_entity_type is CZ_SECURITY_PUB.RULEFOLDER)
287 ---x_locked_entities         : entities locked by the API.  The calling application must keep a track of the
288 ---                               entities locked, so that when unlock is done only on these entities.
289 ---End of comments
290 
291 PROCEDURE unlock_entity   (p_api_version       IN NUMBER,
292                           p_user_name          IN VARCHAR2,
293                           p_entity_type        IN VARCHAR2,
294                           p_instance_pk1_value IN NUMBER,
295                           p_locked_entities    IN OUT NOCOPY number_type_tbl,
296                           x_return_status OUT NOCOPY VARCHAR2,
297                           x_msg_count     OUT NOCOPY NUMBER,
298                           x_msg_data      OUT NOCOPY VARCHAR2);
299 
300 -------------------------
301 PROCEDURE unlock_entity  (p_model_id IN NUMBER,
302                           p_function_name IN VARCHAR2,
303                           p_locked_entities IN OUT NOCOPY number_type_tbl,
304                           x_return_status OUT NOCOPY VARCHAR2,
305                           x_msg_count     OUT NOCOPY NUMBER,
306                           x_msg_data      OUT NOCOPY VARCHAR2);
307 
308 -------------------------
309 PROCEDURE unlock_entity  (p_model_id      IN NUMBER,
310                           p_function_name IN VARCHAR2,
311                           x_return_status OUT NOCOPY VARCHAR2,
312                           x_msg_count     OUT NOCOPY NUMBER,
313                           x_msg_data      OUT NOCOPY VARCHAR2);
314 
315 -------------------------
316 PROCEDURE unlock_entity   (p_api_version          IN NUMBER,
317                             p_user_name           IN VARCHAR2,
318                             p_entity_type         IN VARCHAR2,
319                             p_instance_pk1_value  IN NUMBER,
320                             p_lock_type           IN VARCHAR2,
321                             x_return_status       OUT NOCOPY VARCHAR2,
322                             x_msg_count           OUT NOCOPY NUMBER,
323                             x_msg_data            OUT NOCOPY VARCHAR2);
324 
325 -------------------------
326 -----unlocks whole model
327 PROCEDURE unlock_model (p_model_id IN NUMBER,
328                          x_return_status    OUT NOCOPY VARCHAR2,
329                          x_msg_count        OUT NOCOPY NUMBER,
330                          x_msg_data         OUT NOCOPY VARCHAR2);
331 
332 ---------------------------
333 FUNCTION get_profile_value(p_profile IN VARCHAR2)
334 RETURN VARCHAR2;
335 
336 ---------------------------------------------------------------------
337 PROCEDURE has_privileges(p_model_id        IN NUMBER,
338                          p_function_name   IN VARCHAR2,
339                          x_return_status OUT NOCOPY VARCHAR2,
340                          x_msg_data       OUT NOCOPY VARCHAR2,
341                          x_msg_count      OUT NOCOPY NUMBER);
342 
343 ----------------------------------------------------------------------
344 PROCEDURE is_lock_required (p_lock_profile  IN VARCHAR2,
345                             x_return_status OUT NOCOPY VARCHAR2,
346                             x_msg_data      OUT NOCOPY VARCHAR2,
347                             x_msg_count     OUT NOCOPY NUMBER);
348 
349 ---------------------------------------------------------------------
350 PROCEDURE revoke_privilege(p_api_version         IN NUMBER,
351                            p_instance_pk1_value  IN NUMBER,
352                            x_return_status      OUT NOCOPY VARCHAR2,
353                            x_msg_count          OUT NOCOPY NUMBER,
354                            x_msg_data           OUT NOCOPY VARCHAR2);
355 
356 --------------------------------------
357 -----This API returns 'N' if the MODEL(and its references),
358 -----UI (and its children) and RULEFOLDER (and subfolders under it) are not locked,
359 -----Otherwise it returns 'Y'. This is used for the display of the Lock icon in the repository.
360 FUNCTION is_model_locked (p_model_id IN NUMBER)
361 RETURN VARCHAR2;
362 
363 PROCEDURE is_model_locked (p_devl_project_id IN VARCHAR2,
364                           x_return_status   OUT NOCOPY VARCHAR2,
365                           x_msg_count       OUT NOCOPY NUMBER,
366                           x_msg_data        OUT NOCOPY VARCHAR2);
367 
368 -------------------------------------
369 --------Is_root_model_locked (p_model_id IN NUMBER) is used to check
370 --------lock on a single model. It would return 'N' if not locked otherwise it would return 'Y'.
371 FUNCTION is_model_structure_locked (p_model_id IN NUMBER)
372 RETURN VARCHAR2;
373 
374 -------------------------------------
375 -----API that check if the root UI or any of ites children are locked.
376 -----It would return a status of 'N' if not locked else 'Y'
377 FUNCTION is_root_ui_locked (p_ui_def_id IN NUMBER)
378 RETURN VARCHAR2;
379 
380 ------------------------------------
381 -----API used to check lock on a single model
382 -----It would return a status of 'N' if not locked else 'Y'
383 FUNCTION is_ui_def_locked (p_ui_def_id IN NUMBER)
384 RETURN VARCHAR2;
385 
386 ------------------------------------
387 -----API used to check lock on a single model and its children
388 -----It would return a status of 'N' if not locked else 'Y'
389 FUNCTION are_models_locked (p_model_id IN NUMBER)
390 RETURN VARCHAR2;
391 
392 ------------------------------------
393 -----API used to check lock on a all rule folders of a given model (includes sub folders)
394 -----It would return a status of 'N' if not locked else 'Y'
398 ---------------------------------
395 FUNCTION is_root_rulefolder_locked (p_model_id IN NUMBER)
396 RETURN VARCHAR2;
397 
399 -----API used to check lock on a single rule folder
400 -----It would return a status of 'N' if not locked else 'Y'
401 FUNCTION is_rulefolder_locked (p_rule_folder_id IN NUMBER)
402 RETURN VARCHAR2;
403 
404 ------------------------------------
405 PROCEDURE lock_entity (p_model_id IN NUMBER,
406                        p_function_name IN VARCHAR2,
407                           x_return_status    OUT NOCOPY VARCHAR2,
408                           x_msg_count        OUT NOCOPY NUMBER,
409                           x_msg_data         OUT NOCOPY VARCHAR2);
410 
411 FUNCTION unlock_model_structure (p_model_id IN NUMBER)
412 RETURN VARCHAR2;
413 
414 FUNCTION lock_model_structure (p_model_id IN NUMBER)
415 RETURN VARCHAR2;
416 
417 FUNCTION lock_ui_def (p_ui_def_id IN NUMBER)
418 RETURN VARCHAR2;
419 
420 FUNCTION unlock_ui_def (p_ui_def_id IN NUMBER)
421 RETURN VARCHAR2;
422 
423 FUNCTION lock_rulefolder(p_rule_folder_id IN NUMBER)
424 RETURN VARCHAR2;
425 
426 FUNCTION unlock_rulefolder(p_rule_folder_id IN NUMBER)
427 RETURN VARCHAR2;
428 
429 FUNCTION is_model_lockable (p_model_id IN NUMBER)
430 RETURN VARCHAR2;
431 
432 FUNCTION is_rulefolder_lockable (p_rule_folder_id IN NUMBER)
433 RETURN VARCHAR2;
434 
435 FUNCTION is_model_editable (p_model_id IN NUMBER)
436 RETURN VARCHAR2;
437 
438 FUNCTION is_ui_def_editable(p_ui_def_id IN NUMBER)
439 RETURN VARCHAR2;
440 
441 FUNCTION is_rulefolder_editable(p_rulefolder_id IN NUMBER)
442 RETURN VARCHAR2;
443 
444 FUNCTION is_structure_editable (p_model_id IN NUMBER)
445 RETURN VARCHAR2;
446 
447 FUNCTION has_model_privileges(p_model_id IN NUMBER, p_object_type IN VARCHAR2)
448 RETURN VARCHAR2;
449 
450 FUNCTION is_rulefolder_locked(p_rule_folder_id IN NUMBER,p_object_type IN VARCHAR2)
451 RETURN VARCHAR2;
452 
453 FUNCTION is_rulefolder_editable(p_rulefolder_id        IN NUMBER,
454                                 p_object_type          IN VARCHAR2,
455                                 p_parent_rulefolder_id IN NUMBER)
456 RETURN VARCHAR2;
457 
458 FUNCTION is_model_locked (p_model_id IN NUMBER,p_object_type IN VARCHAR2)
459 RETURN VARCHAR2;
460 
461 FUNCTION is_model_locked (p_model_id      IN NUMBER,
462                           p_object_type   IN VARCHAR2,
463                           p_checkout_user IN VARCHAR2,
464                           p_flag IN NUMBER)
465 RETURN VARCHAR2;
466 
467 FUNCTION is_model_editable (p_model_id IN NUMBER,p_object_type IN VARCHAR2)
468 RETURN VARCHAR2;
469 
470 FUNCTION is_model_editable (p_model_id IN NUMBER,
471                             p_object_type IN VARCHAR2,
472                             p_checkout_user IN VARCHAR2,
473                             p_flag IN VARCHAR2 )
474 RETURN VARCHAR2;
475 
476 ----->>>>>>>>>>>>>>>>>>>>>>>>>
477 FUNCTION get_user_name(p_user_id IN NUMBER)
478 RETURN VARCHAR2 ;
479 
480 FUNCTION get_resp_name (p_user_id IN NUMBER)
481 RETURN VARCHAR2;
482 
483 PROCEDURE GET_CZ_GRANTS_VIEW;
484 
485 PROCEDURE GET_CZ_GRANTS_UPDATE (p_entity_id   IN NUMBER,
486                                 p_entity_type IN VARCHAR2,
487                                 p_model_id    IN NUMBER,
488                                 p_priv        IN VARCHAR2,
489                                 p_user_name   in varchar2,
490                                 p_role        in varchar2);
491 FUNCTION get_grant_access(p_model_id IN NUMBER)
492 RETURN VARCHAR2;
493 
494 ------>>>>>>>>>>>>>>>>>>>>>>>>>>>>
495 /*
496  * This is the public interface for force unlock operations on a model in Oracle Configurator
497  * @param p_api_version number.  Current version of the API is 1.0
498  * @param p_model_id    number.  devl_project_id of the model from cz_devl_projects table
499  * @param p_unlock_references   A value of FND_API.G_TRUE indicates that the child models if any should be
500  *                              force unlocked. A value of FND_API.G_FALSE indicates that only the root model
501  *                              will be unlocked
502  * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
503  * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
504  * @param x_msg_count     number of messages on the stack.
505  * @param x_msg_data      standard FND OUT parameter for message.  Messages are written to the FND error stack
506  * @rep:scope public
507  * @rep:product CZ
508  * @rep:displayname API for working with force unlock operations on a model
509  * @rep:lifecycle active
510  * @rep:compatibility S
511  * @rep:category BUSINESS_ENTITY CZ_SECURITY
512  */
513 
514 PROCEDURE force_unlock_model (p_api_version        IN NUMBER,
515                               p_model_id           IN NUMBER,
516                               p_unlock_references  IN VARCHAR2,
517                               p_init_msg_list      IN VARCHAR2,
518                               x_return_status     OUT NOCOPY VARCHAR2,
519                               x_msg_count         OUT NOCOPY NUMBER,
520                               x_msg_data          OUT NOCOPY VARCHAR2);
521 
522 /*
523  * This is the public interface for lock operations on a model in Oracle Configurator
527  *                              will be locked
524  * @param p_model_id    number.  devl_project_id of the model from cz_devl_projects table
525  * @param p_lock_child_models   A value of FND_API.G_TRUE indicates that the child models if any should be
526  *                              locked. A value of FND_API.G_FALSE indicates that only the root model
528  * @param p_commit_flag A value of FND_API.G_TRUE indicates that the a commit be issued at the end of the
529  *          the procedure. A value of FND_API.G_FALSE indicates that no COMMIT is done.
530  * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
531  * @param x_locked_entities Contains models locked by this procedure call.
532  *         This when passed as an input parameter to unlock_model
533  *         API would ensure that only those models that have been locked by the lock API are unlocked.  Models
534  *         that were previously locked would not be unlocked (by the same user).  The retaining of the lock state
535  *         is done only during implicit locks and not when an unlock is done from developer.
536  * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
537  * @param x_msg_count     number of messages on the stack.
538  * @param x_msg_data      standard FND OUT parameter for message.  Messages are written to the FND error stack
539  * @rep:scope public
540  * @rep:product CZ
541  * @rep:displayname API for working with lock operations on a model
542  * @rep:lifecycle active
543  * @rep:compatibility S
544  * @rep:category BUSINESS_ENTITY CZ_SECURITY
545  *
546  * Validations: The lock_model API validates the following:
547  *              1. validate input parameters
548  *              2. Check for the profile value 'CZ: Require Locking'. If 'Yes' then lock model
549  *                 otherwise return a status of 'S'
550  *              3. When doing a lock on the model and its children, if any of the model(s)
551  *                 are locked by a different user (it is ok to be locked by the same user)
552  *                 an exception is raised.
553  *                 The error messages are written to the FND stack and there would be one message
554  *                 for each model locked by a different user.
555  *                 The message would contain the name of the model and the user who locked it.
556  *
557  * Error reporting: Messages are written to FND error stack.  The caller would have to get all the
558  *                  messages from the stack.  No messages are logged to cz_db_logs.
559  *
560  * Usage
561  * lock model and its children  :    cz_security_pvt.lock_model(
562  *                             p_model_id => <devl_project_id of the model>,
563  *                             p_lock_child_models =>  FND_API.G_TRUE,
564  *                             p_commit_flag =>  FND_API.G_TRUE,
565  *                             p_init_msg_list => FND_API.G_TRUE,
566  *                             x_locked_entities =>  l_locked_entities,
567  *                             x_return_status => x_return_status,
568  *                             x_msg_count =>   x_msg_count,
569  *                             x_msg_data =>   x_msg_data);
570  *
571  * lock root model only         :    cz_security_pvt.lock_model(
572  *                             p_model_id => <devl_project_id of the model>,
573  *                             p_lock_child_models =>  FND_API.G_FALSE,
574  *                             p_commit_flag =>  FND_API.G_TRUE,
575  *                             p_init_msg_list => FND_API.G_TRUE,
576  *                             x_locked_entities =>  l_locked_entities,
577  *                             x_return_status => x_return_status,
578  *                             x_msg_count =>   x_msg_count,
579  *                             x_msg_data =>   x_msg_data);
580  */
581 
582 PROCEDURE lock_model(p_api_version            IN NUMBER,
583                      p_model_id               IN NUMBER,
584                      p_lock_child_models      IN VARCHAR2,
585                      p_commit_flag            IN VARCHAR2,
586                      p_init_msg_list          IN VARCHAR2,
587                      x_locked_entities  OUT NOCOPY number_type_tbl,
588                      x_return_status         OUT NOCOPY VARCHAR2,
589                      x_msg_count             OUT NOCOPY NUMBER,
590                      x_msg_data              OUT NOCOPY VARCHAR2);
591 
592 /*
593  * This is the public interface for unlock operations on a model in Oracle Configurator
594  * @param p_model_id    number. devl_project_id of the model from cz_devl_projects table
595  * @param p_unlock_child_models A value of FND_API.G_TRUE indicates that the child models if any should be
596  *                              unlocked. A value of FND_API.G_FALSE indicates that only the root model
597  *                              will be unlocked
598  * @param p_models_to_unlock would contain an array of model id(s) that have been populated with
599  * locked models during the execution of the lock model API.  The unlock_model API will unlock the models
600  * in this array only.
601  * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
602  * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
603  * @param x_msg_count     number of messages on the stack.
604  * @param x_msg_data      standard FND OUT parameter for message.  Messages are written to the FND error stack
605  * @rep:scope public
606  * @rep:product CZ
607  * @rep:displayname API for working with unlock operations on a model
608  * @rep:lifecycle active
609  * @rep:compatibility S
613  * unlock model and its children  :    cz_security_pvt.unlock_model(
610  * @rep:category BUSINESS_ENTITY CZ_SECURITY
611  *
612  * Usage
614  *                             p_model_id => <devl_project_id of the model>,
615  *                             p_unlock_child_models =>  FND_API.G_TRUE,
616  *                             p_commit_flag =>  FND_API.G_TRUE,
617  *                             p_models_to_unlock =>  l_locked_entities,
618  *                             p_init_msg_list => FND_API.G_TRUE,
619  *                             x_return_status => x_return_status,
620  *                             x_msg_count =>   x_msg_count,
621  *                             x_msg_data =>   x_msg_data);
622  *
623  * unlock root model only         :    cz_security_pvt.unlock_model(
624  *                             p_model_id => <devl_project_id of the model>,
625  *                             p_unlock_child_models =>  FND_API.G_FALSE,
626  *                             p_commit_flag =>  FND_API.G_TRUE,
627  *                             p_models_to_unlock =>  l_locked_entities,
628  *                             p_init_msg_list => FND_API.G_TRUE,
629  *                             x_return_status => x_return_status,
630  *                             x_msg_count =>   x_msg_count,
631  *                             x_msg_data =>   x_msg_data);
632  *
633  */
634 
635 PROCEDURE unlock_model(p_api_version         IN NUMBER,
636                        p_commit_flag         IN VARCHAR2,
637                        p_models_to_unlock   IN number_type_tbl,
638                        p_init_msg_list       IN VARCHAR2,
639                        x_return_status      OUT NOCOPY VARCHAR2,
640                        x_msg_count          OUT NOCOPY NUMBER,
641                        x_msg_data           OUT NOCOPY VARCHAR2);
642 
643 ------------>>>>>>>>>>>>>>>>>>>>>>>>>>>>
644 ----for developer
645 PROCEDURE lock_model(p_api_version       IN NUMBER,
646                      p_model_id          IN NUMBER,
647                      p_lock_child_models IN VARCHAR2,
648                      p_commit_flag       IN VARCHAR2,
649                      p_init_msg_list     IN VARCHAR2,
650                      x_return_status    OUT NOCOPY VARCHAR2,
651                      x_msg_count        OUT NOCOPY NUMBER,
652                      x_msg_data         OUT NOCOPY VARCHAR2);
653 
654 PROCEDURE unlock_model(p_api_version         IN NUMBER,
655                        p_model_id            IN NUMBER,
656                        p_commit_flag         IN VARCHAR2,
657                        p_init_msg_list       IN VARCHAR2,
658                        x_return_status      OUT NOCOPY VARCHAR2,
659                        x_msg_count          OUT NOCOPY NUMBER,
660                        x_msg_data           OUT NOCOPY VARCHAR2);
661 
662 PROCEDURE lock_template(p_api_version       IN NUMBER,
663                         p_template_id       IN NUMBER,
664                         p_init_msg_list     IN VARCHAR2,
665                         x_return_status    OUT NOCOPY VARCHAR2,
666                         x_msg_count        OUT NOCOPY NUMBER,
667                         x_msg_data         OUT NOCOPY VARCHAR2);
668 
669 PROCEDURE unlock_template(p_api_version       IN NUMBER,
670                           p_template_id       IN NUMBER,
671                           p_force_unlock      IN VARCHAR2,
672                           p_init_msg_list     IN VARCHAR2,
673                           x_return_status    OUT NOCOPY VARCHAR2,
674                           x_msg_count        OUT NOCOPY NUMBER,
675                           x_msg_data         OUT NOCOPY VARCHAR2);
676 
677 ------------->>>>>>>>>>>>>>>>>>>>>>>>>
678 ----Wrappers to be used by Import, Publishing, Logic Gen and UI Gen. Hide the p_init_msg_list parameter.
679 ----The message list is not initialized.
680 
681 PROCEDURE lock_model(p_api_version            IN NUMBER,
682                      p_model_id               IN NUMBER,
683                      p_lock_child_models      IN VARCHAR2,
684                      p_commit_flag            IN VARCHAR2,
685                      x_locked_entities  OUT NOCOPY number_type_tbl,
686                      x_return_status         OUT NOCOPY VARCHAR2,
687                      x_msg_count             OUT NOCOPY NUMBER,
688                      x_msg_data              OUT NOCOPY VARCHAR2);
689 
690 PROCEDURE unlock_model(p_api_version         IN NUMBER,
691                        p_commit_flag         IN VARCHAR2,
692                        p_models_to_unlock IN number_type_tbl,
693                        x_return_status      OUT NOCOPY VARCHAR2,
694                        x_msg_count          OUT NOCOPY NUMBER,
695                        x_msg_data           OUT NOCOPY VARCHAR2);
696 
697 ------------->>>>>>>>>>>>>>>>>>>>>>>>>
698 /*
699  * This is the public interface for force unlock operations on a UI content template in Oracle Configurator
700  * @param p_api_version number.  Current version of the API is 1.0
701  * @param p_template_id number.  Template_id of the template from cz_ui_templates table
702  * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
703  * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
704  * @param x_msg_count     number of messages on the stack.
705  * @param x_msg_data      standard FND OUT parameter for message.  Messages are written to the FND error stack
706  * @rep:scope public
707  * @rep:product CZ
708  * @rep:displayname API for working with force unlock operations on a UI content template
709  * @rep:lifecycle active
710  * @rep:compatibility S
711  * @rep:category BUSINESS_ENTITY CZ_SECURITY
712  */
713 
714 PROCEDURE force_unlock_template (p_api_version    IN NUMBER,
715                                  p_template_id    IN NUMBER,
716                                  p_init_msg_list  IN VARCHAR2,
717                                  x_return_status OUT NOCOPY VARCHAR2,
718                                  x_msg_count     OUT NOCOPY NUMBER,
719                                  x_msg_data      OUT NOCOPY VARCHAR2);
720 
721 /*
722  * This is the public interface for lock operations on a UI content template in Oracle Configurator
723  * @param p_api_version number.  Current version of the API is 1.0
724  * @param p_template_id number.  Template_id of the template from cz_ui_templates table
725  * @param p_commit_flag A value of FND_API.G_TRUE indicates that the a commit be issued at the end of the
726  *          the procedure. A value of FND_API.G_FALSE indicates that no COMMIT is done.
727  * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
728  * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
729  * @param x_msg_count     number of messages on the stack.
730  * @param x_msg_data      standard FND OUT parameter for message.  Messages are written to the FND error stack
731  * @rep:scope public
732  * @rep:product CZ
733  * @rep:displayname API for working with force lock operations on a UI content template
734  * @rep:lifecycle active
735  * @rep:compatibility S
736  * @rep:category BUSINESS_ENTITY CZ_SECURITY
737  */
738 
739 PROCEDURE lock_template(p_api_version       IN NUMBER,
740                         p_template_id       IN NUMBER,
741                         p_commit_flag       IN VARCHAR2,
742                         p_init_msg_list     IN VARCHAR2,
743                         x_return_status    OUT NOCOPY VARCHAR2,
744                         x_msg_count        OUT NOCOPY NUMBER,
745                         x_msg_data         OUT NOCOPY VARCHAR2);
746 
747 /*
748  * This is the public interface for lock operations on a UI content template in Oracle Configurator
749  * @param p_api_version number.  Current version of the API is 1.0
750  * @param p_templates_to_lock array of templates to lock
751  * @param p_commit_flag A value of FND_API.G_TRUE indicates that the a commit be issued at the end of the
752  *          the procedure. A value of FND_API.G_FALSE indicates that no COMMIT is done.
753  * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
754  * @param x_locked_templates templates locked by this procedure
755  * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
756  * @param x_msg_count     number of messages on the stack.
757  * @param x_msg_data      standard FND OUT parameter for message.  Messages are written to the FND error stack
758  * @rep:scope public
759  * @rep:product CZ
760  * @rep:displayname API for working with force lock operations on a UI content template
761  * @rep:lifecycle active
762  * @rep:compatibility S
763  * @rep:category BUSINESS_ENTITY CZ_SECURITY
764  */
765 PROCEDURE lock_template(p_api_version            IN  NUMBER,
766                         p_templates_to_lock      IN  cz_security_pvt.number_type_tbl,
767                         p_commit_flag            IN  VARCHAR2,
768                         p_init_msg_list          IN  VARCHAR2,
769                         x_locked_templates       OUT NOCOPY cz_security_pvt.number_type_tbl,
770                         x_return_status          OUT NOCOPY VARCHAR2,
771                         x_msg_count              OUT NOCOPY NUMBER,
772                         x_msg_data               OUT NOCOPY VARCHAR2);
773 
774 
775 /*
776  * This is the public interface for unlock operations on a UI content template in Oracle Configurator
777  * @param p_template_id number.  Template_id of the template from cz_ui_templates table
778  * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
779  * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
780  * @param x_msg_count     number of messages on the stack.
781  * @param x_msg_data      standard FND OUT parameter for message.  Messages are written to the FND error stack
782  * @rep:scope public
783  * @rep:product CZ
784  * @rep:displayname API for working with unlock operations on a UI content template
785  * @rep:lifecycle active
786  * @rep:compatibility S
787  * @rep:category BUSINESS_ENTITY CZ_SECURITY
788  */
789 
790 PROCEDURE unlock_template(p_api_version      IN NUMBER,
791                           p_template_id      IN NUMBER,
792                           p_init_msg_list    IN VARCHAR2,
793                           x_return_status    OUT NOCOPY VARCHAR2,
794                           x_msg_count        OUT NOCOPY NUMBER,
795                           x_msg_data         OUT NOCOPY VARCHAR2);
796 
797 /*
798  * This is the public interface for unlock operations on a UI content template in Oracle Configurator
799  * @param p_templates_to_unlock     array of Template_ids from cz_ui_templates table to unlock
800  * @param p_init_msg_list FND_API.G_TRUE if the API should initialize the FND stack, FND_API.G_FALSE if not.
801  * @param x_return_status standard FND status. (ex:FND_API.G_RET_STS_SUCCESS )
802  * @param x_msg_count     number of messages on the stack.
803  * @param x_msg_data      standard FND OUT parameter for message.  Messages are written to the FND error stack
804  * @rep:scope public
805  * @rep:product CZ
806  * @rep:displayname API for working with unlock operations on a UI content template
807  * @rep:lifecycle active
808  * @rep:compatibility S
809  * @rep:category BUSINESS_ENTITY CZ_SECURITY
810  */
811 
812 PROCEDURE unlock_template(p_api_version IN  NUMBER,
813                         p_templates_to_unlock    IN  cz_security_pvt.number_type_tbl,
814                         p_commit_flag            IN  VARCHAR2,
815                         p_init_msg_list          IN  VARCHAR2,
816                         x_return_status          OUT NOCOPY VARCHAR2,
817                         x_msg_count              OUT NOCOPY NUMBER,
818                         x_msg_data               OUT NOCOPY VARCHAR2);
819 
820 
821 
822 
823 ----------------------------
824 ----procedures for rule import
825 PROCEDURE unlock_model(p_api_version         IN NUMBER,
826                        p_models_to_unlock    IN SYSTEM.CZ_NUMBER_TBL_TYPE,
827                        p_commit_flag         IN VARCHAR2,
828                        p_init_msg_list       IN VARCHAR2,
829                        x_return_status      OUT NOCOPY VARCHAR2,
830                        x_msg_count          OUT NOCOPY NUMBER,
831                        x_msg_data           OUT NOCOPY VARCHAR2);
832 
833 PROCEDURE unlock_model (p_api_version   IN NUMBER,
834 		    p_model_id              IN NUMBER,
835                 x_return_status         OUT NOCOPY VARCHAR2,
836                 x_msg_count             OUT NOCOPY NUMBER,
837                 x_msg_data              OUT NOCOPY VARCHAR2);
838 
839 -------------------------------------------------
840 -----11.5.10 + Locking only
841 ----
842 ------------------------------------------------
843 FUNCTION get_locking_profile_value
844 RETURN VARCHAR2;
845 -----------------------------
846 
847 END cz_security_pvt; /* end of package spec */