DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_SECURITY_POLICY_PKG

Source


1 PACKAGE BODY xla_security_policy_pkg AS
2 -- $Header: xlacmpol.pkb 120.5 2005/11/10 20:13:35 weshen ship $
3 /*===========================================================================+
4 |             Copyright (c) 2001-2002 Oracle Corporation                     |
5 |                       Redwood Shores, CA, USA                              |
6 |                         All rights reserved.                               |
7 +============================================================================+
8 | FILENAME                                                                   |
9 |    xlacmpol.pkb                                                            |
10 |                                                                            |
11 | PACKAGE NAME                                                               |
12 |    xla_security_policy_pkg                                                 |
13 |                                                                            |
14 | DESCRIPTION                                                                |
15 |    Security policy package that contains standard XLA security policy      |
16 |    attatched to the events                                                 |
17 |                                                                            |
18 | HISTORY                                                                    |
19 |    11-Feb-02  S. Singhania    Created from the package XLA_SECURITY_PKG    |
20 |    25-Aug-05  Shishir Joshi   Added MO_Policy.                             |
21 |    10-Nov-05  W. Shen         fix bug 4717192.                             |
22 |                                                                            |
23 +===========================================================================*/
24 
25 --=============================================================================
26 --          *********** public procedures and functions **********
27 --=============================================================================
28 --=============================================================================
29 --
30 --
31 --
32 --
33 -- Following are the public routines.
34 --
35 --    1.    xla_standard_policy
36 --
37 --
38 --
39 --
40 --
41 --
42 --
43 --
44 --
45 --
46 --
47 --
48 --=============================================================================
49 --=============================================================================
50 --
51 --
52 --
53 --=============================================================================
54 
55 -- Constants
56 
57 C_LEVEL_STATEMENT     CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
58 C_LEVEL_PROCEDURE     CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
59 C_LEVEL_EVENT         CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
60 C_LEVEL_EXCEPTION     CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
61 C_LEVEL_ERROR         CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
62 C_LEVEL_UNEXPECTED    CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
63 C_LEVEL_LOG_DISABLED  CONSTANT NUMBER := 99;
64 C_DEFAULT_MODULE      CONSTANT VARCHAR2(240) := 'xla.plsql.xla_security_policy_pkg';
65 
66 
67 -- Global variables for debugging
68 g_log_level     PLS_INTEGER  :=  FND_LOG.G_CURRENT_RUNTIME_LEVEL;
69 g_log_enabled   BOOLEAN :=  fnd_log.test
70                                (log_level  => g_log_level
71                                ,module     => C_DEFAULT_MODULE);
72 
73 
74 
75 /*===================================================================
76 print DEBUG messages
77 
78 =====================================================================*/
79 
80 PROCEDURE trace (p_msg          IN VARCHAR2
81                 ,p_level        IN NUMBER
82                 ,p_module       IN VARCHAR2) IS
83 BEGIN
84 
85    IF (p_msg IS NULL AND p_level >= g_log_level) THEN
86       fnd_log.message(p_level, p_module);
87    ELSIF p_level >= g_log_level THEN
88       fnd_log.string(p_level, p_module, p_msg);
89    END IF;
90 EXCEPTION
91    WHEN xla_exceptions_pkg.application_exception THEN
92       RAISE;
93    WHEN OTHERS THEN
94       xla_exceptions_pkg.raise_message
95          (p_location   => 'xla_security_policy_pkg.trace');
96 END trace;
97 
98 
99 FUNCTION xla_standard_policy
100        (p_obj_schema                 IN VARCHAR2
101        ,p_obj_name                   IN VARCHAR2)
102 RETURN VARCHAR2 IS
103 BEGIN
104    RETURN '1 = 1';
105 END xla_standard_policy;
106 
107 
108 /*===================================================================
109 
110 Derived MO Policy
111 
112 =====================================================================*/
113 
114 
115 FUNCTION MO_Policy
116        (p_obj_schema                 IN VARCHAR2
117        ,p_obj_name                   IN VARCHAR2)
118 RETURN VARCHAR2 IS
119 
120   l_mo_policy   VARCHAR2(4000);
121   l_log_module  VARCHAR2(240);
122 BEGIN
123 
124    IF g_log_enabled THEN
125       l_log_module := C_DEFAULT_MODULE||'.MO_Policy';
126    END IF;
127 
128    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
129       trace('MO_Policy.Begin',C_LEVEL_PROCEDURE,l_log_module);
130    END IF;
131 
132   l_mo_policy := mo_global.org_security
133      ( obj_schema => null
134       ,obj_name   => null
135      );
136 
137    IF (C_LEVEL_STATEMENT >= g_log_level) THEN
138       trace('l_mo_policy after calling  mo_global.org_security = ' || l_mo_policy,C_LEVEL_STATEMENT,l_log_module);
139    END IF;
140 
141   l_mo_policy := REGEXP_REPLACE(l_mo_policy, 'org_id', 'security_id_int_1',1,1);
142 
143   -- Security identifiers are not populated. In case of, manual journal entires
144   -- or third party merge events.
145   -- bug 4717192, add the if condition
146   IF(l_mo_policy is not null) THEN
147     l_mo_policy := l_mo_policy || ' OR security_id_int_1 IS NULL ';
148   END IF;
149 
150    xla_utility_pkg.print_logfile
151       ('l_mo_policy after replace = ' || l_mo_policy);
152 
153    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
154       trace('MO_Policy.End',C_LEVEL_PROCEDURE,l_log_module);
155    END IF;
156    RETURN(l_mo_policy);
157 END MO_Policy;
158 
159 END xla_security_policy_pkg;