Coverage Summary for Class: SQLStrings (com.acciente.oacc.sql.internal.persister)
Class | Class, % | Method, % | Line, % |
---|---|---|---|
SQLStrings | 100% (1/ 1) | 60% (3/ 5) | 98.7% (156/ 158) |
1 /*
2 * Copyright 2009-2017, Acciente LLC
3 *
4 * Acciente LLC licenses this file to you under the
5 * Apache License, Version 2.0 (the "License"); you
6 * may not use this file except in compliance with the
7 * License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in
12 * writing, software distributed under the License is
13 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
14 * OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing
16 * permissions and limitations under the License.
17 */
18 package com.acciente.oacc.sql.internal.persister;
19
20 import com.acciente.oacc.ResourcePermission;
21 import com.acciente.oacc.ResourcePermissions;
22 import com.acciente.oacc.sql.SQLDialect;
23 import com.acciente.oacc.sql.SQLProfile;
24
25 import java.io.Serializable;
26
27 public class SQLStrings implements Serializable {
28 private static final long serialVersionUID = 1L;
29
30 // SQL string constants
31
32 // ResourceClass - common
33 public final String SQL_findInResourceClass_ResourceClassID_BY_ResourceClassName;
34 public final String SQL_findInResourceClass_ResourceClassID_ResourceClassName_IsAuthenticatable_IsUnauthenticatedCreateAllowed_BY_ResourceClassName;
35 public final String SQL_findInResourceClass_ResourceClassID_ResourceClassName_IsAuthenticatable_IsUnauthenticatedCreateAllowed_BY_ResourceID;
36 public final String SQL_findInResourceClass_ResourceClassName_BY_ALL;
37 public final String SQL_createInResourceClass_WITH_ResourceClassName_IsAuthenticatable_IsUnauthenticatedCreateAllowed;
38
39 // ResourceClassPermission - common
40 public final String SQL_findInResourceClassPermission_PermissionID_BY_ResourceClassID_PermissionName;
41 public final String SQL_findInResourceClassPermission_PermissionName_BY_ResourceClassName;
42 public final String SQL_createInResourceClassPermission_WITH_ResourceClassID_PermissionName;
43
44 // Domain - common
45 public final String SQL_findInDomain_DomainID_BY_ResourceDomainName;
46 public final String SQL_findInDomain_ResourceDomainName_BY_ResourceID;
47 public final String SQL_createInDomain_WITH_ResourceDomainName;
48 public final String SQL_createInDomain_WITH_ResourceDomainName_ParentDomainID;
49 public final String SQL_removeInDomain_BY_DomainID;
50 // Domain - recursive
51 public final String SQL_findInDomain_DescendantResourceDomainName_BY_ResourceDomainName;
52 public final String SQL_findInDomain_DescendantResourceDomainID_BY_DomainID_ORDERBY_DomainLevel;
53 public final String SQL_removeInDomain_withDescendants_BY_DomainID;
54 // Domain - non-recursive
55 public final String SQL_findInDomain_DirectDescendantResourceDomainName_BY_ResourceDomainName;
56 public final String SQL_findInDomain_DirectDescendantResourceDomainName_BY_DomainID;
57 public final String SQL_findInDomain_ParentResourceDomainName_BY_DomainID;
58
59 // GrantDomainCreatePermissionSys - common
60 public final String SQL_findInGrantDomainCreatePermissionSys_withoutInheritance_SysPermissionID_BY_AccessorID;
61 public final String SQL_createInGrantDomainCreatePermissionSys_WITH_AccessorID_GrantorID_IsWithGrant_SysPermissionID;
62 public final String SQL_updateInGrantDomainCreatePermissionSys_SET_GrantorID_IsWithGrant_BY_AccessorID_SysPermissionID;
63 public final String SQL_removeInGrantDomainCreatePermissionSys_BY_AccessorID;
64 public final String SQL_removeInGrantDomainCreatePermissionSys_BY_AccessorID_SysPermissionID;
65 // GrantDomainCreatePermissionSys - recursive
66 public final String SQL_findInGrantDomainCreatePermissionSys_SysPermissionID_IsWithGrant_BY_AccessorID;
67
68 // GrantDomainCreatePermissionPostCreateSys - common
69 public final String SQL_findInGrantDomainCreatePermissionPostCreateSys_withoutInheritance_PostCreateSysPermissionID_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID;
70 public final String SQL_removeInGrantDomainCreatePermissionPostCreateSys_BY_AccessorID;
71 public final String SQL_removeInGrantDomainCreatePermissionPostCreateSys_BY_AccessorID_PostCreateSysPermissionID;
72 public final String SQL_createInGrantDomainCreatePermissionPostCreateSys_WITH_AccessorID_GrantorID_IsWithGrant_PostCreateIsWithGrant_PostCreateSysPermissionID;
73 public final String SQL_updateInGrantDomainCreatePermissionPostCreateSys_SET_GrantorID_IsWithGrant_PostCreateIsWithGrant_BY_AccessorID_PostCreateSysPermissionID;
74 // GrantDomainCreatePermissionPostCreateSys - recursive
75 public final String SQL_findInGrantDomainCreatePermissionPostCreateSys_PostCreateSysPermissionID_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID;
76
77 // GrantDomainPermissionSys - common
78 public final String SQL_findInGrantDomainPermissionSys_withoutInheritance_SysPermissionID_IsWithGrant_BY_AccessorID_DomainID;
79 public final String SQL_findInGrantDomainPermissionSys_withoutInheritance_ResourceDomainName_SysPermissionID_IsWithGrant_BY_AccessorID;
80 public final String SQL_createInGrantDomainPermissionSys_WITH_AccessorID_GrantorID_AccessedDomainID_IsWithGrant_SysPermissionID;
81 public final String SQL_updateInGrantDomainPermissionSys_SET_GrantorID_IsWithGrant_BY_AccessorID_AccessedDomainID_SysPermissionID;
82 public final String SQL_removeInGrantDomainPermissionSys_BY_AccessorID;
83 public final String SQL_removeInGrantDomainPermissionSys_BY_AccessedDomainID;
84 public final String SQL_removeInGrantDomainPermissionSys_BY_AccessorID_AccessedDomainID;
85 public final String SQL_removeInGrantDomainPermissionSys_BY_AccessorID_AccessedDomainID_SysPermissionID;
86 // GrantDomainPermissionSys - recursive
87 public final String SQL_findInGrantDomainPermissionSys_ResourceID_ExternalId_BY_AccessorID_SysPermissionID_IsWithGrant_ResourceClassID;
88 public final String SQL_findInGrantDomainPermissionSys_ResourceID_ExternalID_BY_AccessorID_DomainID_SysPermissionID_IsWithGrant_ResourceClassID;
89 public final String SQL_findInGrantDomainPermissionSys_SysPermissionID_IsWithGrant_BY_AccessorID_DomainID;
90 public final String SQL_findInGrantDomainPermissionSys_ResourceDomainName_SysPermissionID_IsWithGrant_BY_AccessorID;
91 public final String SQL_removeInGrantDomainPermissionSys_withDescendants_BY_AccessedDomainID;
92 // GrantDomainPermissionSys - non-recursive
93 public final String SQL_findInGrantDomainPermissionSys_withoutInheritance_ResourceDomainId_BY_AccessorID_SysPermissionID_IsWithGrant;
94
95 // Resource - common
96 public final String SQL_findInResource_COUNTResourceID_BY_ResourceClassID_DomainID;
97 public final String SQL_createInResource_WITH_ResourceID_ResourceClassID_DomainID;
98 public final String SQL_createInResource_WITH_ResourceClassID_DomainID;
99 public final String SQL_removeInResource_BY_ResourceID;
100 public final String SQL_findInResource_ResourceId_BY_ResourceID;
101 public final String SQL_findInResource_ResourceId_ExternalId_BY_ResourceID;
102 public final String SQL_findInResource_DomainID_BY_ResourceID;
103 public final String SQL_findInResource_withoutInheritance_ResourceId_ExternalId_BY_ResourceClassID_DomainID;
104 public final String SQL_createInResourceExternalId_WITH_ResourceID_ExternalID;
105 public final String SQL_removeInResourceExternalId_BY_ResourceID;
106 public final String SQL_findInResourceExternalId_ResourceId_ExternalId_BY_ExternalID;
107 // Resource - recursive
108 public final String SQL_findInResource_COUNTResourceID_BY_DomainID;
109 // Resource - non-recursive
110 public final String SQL_findInResource_withoutInheritance_COUNTResourceID_BY_DomainID;
111
112 // GrantResourceCreatePermissionSys - common
113 public final String SQL_findInGrantResourceCreatePermissionSys_withoutInheritance_SysPermissionId_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID;
114 public final String SQL_findInGrantResourceCreatePermissionSys_withoutInheritance_ResourceDomainName_ResourceClassName_SysPermissionId_IsWithGrant_BY_AccessorID;
115 public final String SQL_createInGrantResourceCreatePermissionSys_WITH_AccessorID_GrantorID_AccessedDomainID_IsWithGrant_ResourceClassID_SysPermissionId;
116 public final String SQL_updateInGrantResourceCreatePermissionSys_SET_GrantorID_IsWithGrant_BY__AccessorID_AccessedDomainID_ResourceClassID_SysPermissionId;
117 public final String SQL_removeInGrantResourceCreatePermissionSys_BY_AccessorID;
118 public final String SQL_removeInGrantResourceCreatePermissionSys_BY_AccessedDomainId;
119 public final String SQL_removeInGrantResourceCreatePermissionSys_BY_AccessorID_AccessedDomainID_ResourceClassID;
120 public final String SQL_removeInGrantResourceCreatePermissionSys_BY_AccessorID_AccessedDomainID_ResourceClassID_SysPermissionID;
121 // GrantResourceCreatePermissionSys - recursive
122 public final String SQL_findInGrantResourceCreatePermissionSys_SysPermissionId_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID;
123 public final String SQL_findInGrantResourceCreatePermissionSys_ResourceDomainName_ResourceClassName_SysPermissionId_IsWithGrant_BY_AccessorID;
124 public final String SQL_removeInGrantResourceCreatePermissionSys_withDescendants_BY_AccessedDomainId;
125
126 // GrantResourceCreatePermissionPostCreateSys - common
127 public final String SQL_findInGrantResourceCreatePermissionPostCreateSys_withoutInheritance_PostCreateSysPermissionID_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID;
128 public final String SQL_findInGrantResourceCreatePermissionPostCreateSys_withoutInheritance_ResourceDomainName_ResourceClassName_PostCreateSysPermissionID_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID;
129 public final String SQL_createInGrantResourceCreatePermissionPostCreateSys_WITH_AccessorID_GrantorID_AccessedDomainID_IsWithGrant_PostCreateIsWithGrant_ResourceClassID_PostCreateSysPermissionID;
130 public final String SQL_updateInGrantResourceCreatePermissionPostCreateSys_SET_GrantorID_IsWithGrant_PostCreateIsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID_PostCreateSysPermissionID;
131 public final String SQL_removeInGrantResourceCreatePermissionPostCreateSys_BY_AccessorID;
132 public final String SQL_removeInGrantResourceCreatePermissionPostCreateSys_BY_AccessedDomainID;
133 public final String SQL_removeInGrantResourceCreatePermissionPostCreateSys_BY_AccessorID_AccessedDomainID_ResourceClassID;
134 public final String SQL_removeInGrantResourceCreatePermissionPostCreateSys_BY_AccessorID_AccessedDomainID_ResourceClassID_PostCreateSysPermissionID;
135 // GrantResourceCreatePermissionPostCreateSys - recursive
136 public final String SQL_findInGrantResourceCreatePermissionPostCreateSys_PostCreateSysPermissionID_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID;
137 public final String SQL_findInGrantResourceCreatePermissionPostCreateSys_ResourceDomainName_ResourceClassName_PostCreateSysPermissionID_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID;
138 public final String SQL_removeInGrantResourceCreatePermissionPostCreateSys_withDescendants_BY_AccessedDomainID;
139
140 // GrantResourceCreatePermissionPostCreate - common
141 public final String SQL_findInGrantResourceCreatePermissionPostCreate_withoutInheritance_PostCreatePermissionName_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID;
142 public final String SQL_findInGrantResourceCreatePermissionPostCreate_withoutInheritance_ResourceDomainName_ResourceClassName_PostCreatePermissionName_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID;
143 public final String SQL_createInGrantResourceCreatePermissionPostCreate_WITH_AccessorID_GrantorID_AccessedDomainID_IsWithGrant_PostCreateIsWithGrant_ResourceClassID_PostCreatePermissionName;
144 public final String SQL_updateInGrantResourceCreatePermissionPostCreate_SET_GrantorID_IsWithGrant_PostCreateIsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID_PostCreatePermissionName;
145 public final String SQL_removeInGrantResourceCreatePermissionPostCreate_BY_AccessorID;
146 public final String SQL_removeInGrantResourceCreatePermissionPostCreate_BY_AccessedDomainId;
147 public final String SQL_removeInGrantResourceCreatePermissionPostCreate_BY_AccessorID_AccessedDomainID_ResourceClassID;
148 public final String SQL_removeInGrantResourceCreatePermissionPostCreate_BY_AccessorID_AccessedDomainID_ResourceClassID_PostCreatePermissionName;
149 // GrantResourceCreatePermissionPostCreate - recursive
150 public final String SQL_findInGrantResourceCreatePermissionPostCreate_ResourceClassName_PostCreatePermissionName_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID;
151 public final String SQL_findInGrantResourceCreatePermissionPostCreate_ResourceDomainName_ResourceClassName_PostCreatePermissionName_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID;
152 public final String SQL_removeInGrantResourceCreatePermissionPostCreate_withDescendants_BY_AccessedDomainId;
153
154 // GrantResourcePermissionSys - common
155 public final String SQL_findInGrantResourcePermissionSys_ResourceID_ExternalID_BY_AccessedID_ResourceClassID_SysPermissionID_IsWithGrant;
156 public final String SQL_findInGrantResourcePermissionSys_withoutInheritance_ResourceClassName_SysPermissionID_IsWithGrant_BY_AccessorID_AccessedID;
157 public final String SQL_createInGrantResourcePermissionSys_WITH_AccessorID_GrantorID_AccessedID_IsWithGrant_ResourceClassID_SysPermissionID;
158 public final String SQL_updateInGrantResourcePermissionSys_SET_GrantorID_IsWithGrant_BY_AccessorID_AccessedID_ResourceClassID_SysPermissionID;
159 public final String SQL_removeInGrantResourcePermissionSys_BY_AccessorID_OR_AccessedID;
160 public final String SQL_removeInGrantResourcePermissionSys_BY_AccessorID_AccessedID;
161 public final String SQL_removeInGrantResourcePermissionSys_BY_AccessorID_AccessedID_ResourceClassID_SysPermissionID;
162 // GrantResourcePermissionSys - recursive
163 public final String SQL_findInGrantResourcePermissionSys_ResourceID_ExternalID_BY_AccessorID_ResourceClassID_SysPermissionID_IsWithGrant;
164 public final String SQL_findInGrantResourcePermissionSys_ResourceID_ExternalID_BY_AccessorID_DomainID_ResourceClassID_SysPermissionID_IsWithGrant;
165 public final String SQL_findInGrantResourcePermissionSys_ResourceClassName_SysPermissionID_IsWithGrant_BY_AccessorID_AccessedID;
166 // GrantResourcePermissionSys - non-recursive
167 public final String SQL_findInGrantResourcePermissionSys_directInheritance_ResourceID_BY_AccessorID;
168 public final String SQL_findInGrantResourcePermissionSys_withoutInheritance_ResourceID_ExternalID_BY_AccessorID_ResourceClassID_SysPermissionID_IsWithGrant;
169 public final String SQL_findInGrantResourcePermissionSys_withoutInheritance_ResourceID_ExternalID_BY_AccessorID_DomainID_ResourceClassID_SysPermissionID_IsWithGrant;
170
171 // GrantResourcePermission - common
172 public final String SQL_findInGrantResourcePermission_ResourceID_ExternalID_BY_AccessedID_ResourceClassID_PermissionID_IsWithGrant;
173 public final String SQL_findInGrantResourcePermission_withoutInheritance_ResourceClassName_PermissionName_IsWithGrant_BY_AccessorID_AccessedID;
174 public final String SQL_createInGrantResourcePermission_WITH_AccessorID_GrantorID_AccessedID_IsWithGrant_ResourceClassID_PermissionName;
175 public final String SQL_updateInGrantResourcePermission_SET_GrantorID_IsWithGrant_BY_AccessorID_AccessedID_ResourceClassID_PermissionName;
176 public final String SQL_removeInGrantResourcePermission_BY_AccessorID_OR_AccessedID;
177 public final String SQL_removeInGrantResourcePermission_BY_AccessorID_AccessedID;
178 public final String SQL_removeInGrantResourcePermission_BY_AccessorID_AccessedID_ResourceClassID_PermissionName;
179 // GrantResourcePermission - recursive
180 public final String SQL_findInGrantResourcePermission_ResourceClassName_PermissionName_IsWithGrant_BY_AccessorID_AccessedID;
181 public final String SQL_findInGrantResourcePermission_ResourceID_ExternalID_BY_AccessorID_ResourceClassID_PermissionID_IsWithGrant;
182 public final String SQL_findInGrantResourcePermission_ResourceID_ExternalID_BY_AccessorID_DomainID_ResourceClassID_PermissionID_IsWithGrant;
183 // GrantResourcePermission - non-recursive
184 public final String SQL_findInGrantResourcePermission_withoutInheritance_ResourceID_ExternalID_BY_AccessorID_ResourceClassID_PermissionID_IsWithGrant;
185 public final String SQL_findInGrantResourcePermission_withoutInheritance_ResourceID_ExternalID_BY_AccessorID_DomainID_ResourceClassID_PermissionID_IsWithGrant;
186
187 // GrantGlobalResourcePermissionSys - common
188 public final String SQL_findInGrantGlobalResourcePermissionSys_withoutInheritance_SysPermissionID_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID;
189 public final String SQL_findInGrantGlobalResourcePermissionSys_withoutInheritance_ResourceDomainName_ResourceClassName_SysPermissionID_IsWithGrant_BY_AccessorID;
190 public final String SQL_createInGrantGlobalResourcePermissionSys_WITH_AccessorID_GrantorID_AccessedDomainID_IsWithGrant_ResourceClassID_SysPermissionID;
191 public final String SQL_updateInGrantGlobalResourcePermissionSys_SET_GrantorID_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID_SysPermissionID;
192 public final String SQL_removeInGrantGlobalResourcePermissionSys_BY_AccessorID;
193 public final String SQL_removeInGrantGlobalResourcePermissionSys_BY_AccessedDomainId;
194 public final String SQL_removeInGrantGlobalResourcePermissionSys_BY_AccessorID_AccessedDomainID_ResourceClassID;
195 public final String SQL_removeInGrantGlobalResourcePermissionSys_BY_AccessorID_AccessedDomainID_ResourceClassID_SysPermissionID;
196 // GrantGlobalResourcePermissionSys - recursive
197 public final String SQL_findInGrantGlobalResourcePermissionSys_ResourceID_ExternalID_BY_AccessorID_ResourceClassID_SysPermissionID_IsWithGrant_ResourceClassID;
198 public final String SQL_findInGrantGlobalResourcePermissionSys_ResourceID_ExternalID_BY_AccessorID_DomainID_ResourceClassID_SysPermissionID_IsWithGrant_ResourceClassID;
199 public final String SQL_findInGrantGlobalResourcePermissionSys_SysPermissionID_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID;
200 public final String SQL_findInGrantGlobalResourcePermissionSys_ResourceDomainName_ResourceClassName_SysPermissionID_IsWithGrant_BY_AccessorID;
201 public final String SQL_removeInGrantGlobalResourcePermissionSys_withDescendants_BY_AccessedDomainId;
202 // GrantGlobalResourcePermissionSys - non-recursive
203 public final String SQL_findInGrantGlobalResourcePermissionSys_withoutInheritance_ResourceDomainID_BY_AccessorID_ResourceClassID_SysPermissionID_IsWithGrant;
204
205 // GrantGlobalResourcePermission - common
206 public final String SQL_findInGrantGlobalResourcePermission_withoutInheritance_PermissionName_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID;
207 public final String SQL_findInGrantGlobalResourcePermission_withoutInheritance_ResourceDomainName_ResourceClassName_PermissionName_IsWithGrant_BY_AccessorID;
208 public final String SQL_createInGrantGlobalResourcePermission_WITH_AccessorID_GrantorID_AccessedDomainID_IsWithGrant_ResourceClassID_PermissionName;
209 public final String SQL_updateInGrantGlobalResourcePermission_SET_GrantorID_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID_PermissionName;
210 public final String SQL_removeInGrantGlobalResourcePermission_BY_AccessorID;
211 public final String SQL_removeInGrantGlobalResourcePermission_BY_AccessedDomainId;
212 public final String SQL_removeInGrantGlobalResourcePermission_BY_AccessorID_AccessedDomainID_ResourceClassID;
213 public final String SQL_removeInGrantGlobalResourcePermission_BY_AccessorID_AccessedDomainID_ResourceClassID_PermissionName;
214 // GrantGlobalResourcePermission - recursive
215 public final String SQL_findInGrantGlobalResourcePermission_ResourceID_ExternalID_BY_AccessorID_ResourceClassID_PermissionID_IsWithGrant_ResourceClassID;
216 public final String SQL_findInGrantGlobalResourcePermission_ResourceID_ExternalID_BY_AccessorID_DomainID_ResourceClassID_PermissionID_IsWithGrant_ResourceClassID;
217 public final String SQL_findInGrantGlobalResourcePermission_PermissionName_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID;
218 public final String SQL_findInGrantGlobalResourcePermission_ResourceDomainName_ResourceClassName_PermissionName_IsWithGrant_BY_AccessorID;
219 public final String SQL_removeInGrantGlobalResourcePermission_withDescendants_BY_AccessedDomainId;
220 // GrantGlobalResourcePermission - non-recursive
221 public final String SQL_findInGrantGlobalResourcePermission_withoutInheritance_ResourceDomainID_BY_AccessorID_ResourceClassID_PermissionID_IsWithGrant;
222
223 // Key generators
224 public final String SQL_nextResourceID;
225
226 private final SQLProfile sqlProfile;
227
228 // resource permissions constants
229 private static final ResourcePermission ResourcePermission_INHERIT = ResourcePermissions.getInstance(ResourcePermissions.INHERIT);
230
231 public static SQLStrings getSQLStrings(String schemaName,
232 SQLProfile sqlProfile) {
233 return new SQLStrings(schemaName, sqlProfile, DialectSpecificSQLGenerator.getInstance(sqlProfile
234 .getSqlDialect()));
235 }
236
237 private SQLStrings(String schemaName,
238 SQLProfile sqlProfile,
239 DialectSpecificSQLGenerator dialectSpecificSQLGenerator) {
240 this.sqlProfile = sqlProfile;
241 final String withClause = dialectSpecificSQLGenerator.getWithClause();
242 final String unionClause = dialectSpecificSQLGenerator.getUnionClause();
243 final String schemaNameAndTablePrefix = schemaName != null ? schemaName + ".OAC_" : "OAC_";
244 // recursive query to compute all the resource ids that a given accessor is equivalent to as a
245 // result of having the INHERIT permission
246 final String SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
247 = withClause + " N( AccessorResourceId ) AS "
248 + "( SELECT ResourceId FROM "
249 + schemaNameAndTablePrefix
250 + "Resource WHERE ResourceId = ? " + unionClause + " SELECT Nplus1.AccessedResourceId FROM "
251 + schemaNameAndTablePrefix
252 + "Grant_ResPerm_Sys Nplus1, N "
253 + "WHERE Nplus1.AccessorResourceId = N.AccessorResourceId AND Nplus1.SysPermissionId = "
254 + ResourcePermission_INHERIT.getSystemPermissionId()
255 + " ) ";
256
257 // recursive query to compute all ancestors of a given an domain
258 final String SQL_findAncestorsRecursiveInDomain_DomainID_BY_DomainID
259 = ", R( DomainId, ParentDomainId ) AS "
260 + "( SELECT DomainId, ParentDomainId FROM "
261 + schemaNameAndTablePrefix
262 + "Domain WHERE DomainId = ? " + unionClause + " SELECT Rplus1.DomainId, Rplus1.ParentDomainId FROM "
263 + schemaNameAndTablePrefix
264 + "Domain Rplus1, R "
265 + "WHERE R.ParentDomainId IS NOT NULL AND Rplus1.DomainId = R.ParentDomainId ) ";
266
267 // recursive query to compute all descendants of a given an domain
268 final String SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
269 = "S( DomainId ) AS "
270 + "( SELECT DomainId FROM "
271 + schemaNameAndTablePrefix
272 + "Domain WHERE DomainId = ? " + unionClause + " SELECT Splus1.DomainId FROM "
273 + schemaNameAndTablePrefix
274 + "Domain Splus1, S "
275 + "WHERE Splus1.ParentDomainId IS NOT NULL AND Splus1.ParentDomainId = S.DomainId ) ";
276
277 // ResourceClass
278 SQL_findInResourceClass_ResourceClassID_BY_ResourceClassName
279 = "SELECT ResourceClassId FROM "
280 + schemaNameAndTablePrefix
281 + "ResourceClass WHERE ResourceClassName = ?";
282
283 SQL_findInResourceClass_ResourceClassID_ResourceClassName_IsAuthenticatable_IsUnauthenticatedCreateAllowed_BY_ResourceClassName
284 = "SELECT ResourceClassId, ResourceClassName, IsAuthenticatable, IsUnauthenticatedCreateAllowed FROM "
285 + schemaNameAndTablePrefix
286 + "ResourceClass WHERE ResourceClassName = ?";
287
288 SQL_findInResourceClass_ResourceClassID_ResourceClassName_IsAuthenticatable_IsUnauthenticatedCreateAllowed_BY_ResourceID
289 = "SELECT ResourceClassId, ResourceClassName, IsAuthenticatable, IsUnauthenticatedCreateAllowed FROM "
290 + schemaNameAndTablePrefix
291 + "ResourceClass WHERE ResourceClassId = ( SELECT ResourceClassId FROM "
292 + schemaNameAndTablePrefix
293 + "Resource WHERE ResourceId = ? )";
294
295 SQL_findInResourceClass_ResourceClassName_BY_ALL
296 = "SELECT ResourceClassName FROM "
297 + schemaNameAndTablePrefix
298 + "ResourceClass WHERE ResourceClassId <> 0"; // <> 0 filters out the SYSOBJECT class
299
300 SQL_createInResourceClass_WITH_ResourceClassName_IsAuthenticatable_IsUnauthenticatedCreateAllowed
301 = sqlProfile.isSequenceEnabled()
302 ? "INSERT INTO "
303 + schemaNameAndTablePrefix
304 + "ResourceClass ( ResourceClassId, ResourceClassName, IsAuthenticatable, IsUnauthenticatedCreateAllowed ) "
305 + "VALUES ( "
306 + dialectSpecificSQLGenerator.nextSequenceValueFragment(schemaNameAndTablePrefix + "ResourceClassId")
307 + ", ?, ?, ? )"
308 : "INSERT INTO "
309 + schemaNameAndTablePrefix
310 + "ResourceClass ( ResourceClassName, IsAuthenticatable, IsUnauthenticatedCreateAllowed ) "
311 + "VALUES ( ?, ?, ? )";
312
313 // ResourceClassPermission
314 SQL_findInResourceClassPermission_PermissionID_BY_ResourceClassID_PermissionName
315 = "SELECT PermissionId FROM "
316 + schemaNameAndTablePrefix
317 + "ResourceClassPermission WHERE ResourceClassId = ? AND PermissionName = ?";
318
319 SQL_findInResourceClassPermission_PermissionName_BY_ResourceClassName
320 = "SELECT PermissionName FROM "
321 + schemaNameAndTablePrefix
322 + "ResourceClassPermission WHERE ResourceClassId = ( SELECT ResourceClassId FROM "
323 + schemaNameAndTablePrefix
324 + "ResourceClass WHERE ResourceClassName = ? )";
325
326 SQL_createInResourceClassPermission_WITH_ResourceClassID_PermissionName
327 = sqlProfile.isSequenceEnabled()
328 ? "INSERT INTO "
329 + schemaNameAndTablePrefix
330 + "ResourceClassPermission ( ResourceClassId, PermissionId, PermissionName ) VALUES ( ?, "
331 + dialectSpecificSQLGenerator.nextSequenceValueFragment(schemaNameAndTablePrefix + "PermissionId")
332 + ", ? )"
333 : "INSERT INTO "
334 + schemaNameAndTablePrefix
335 + "ResourceClassPermission ( ResourceClassId, PermissionName ) VALUES ( ?, ? )";
336
337 // Domain - common
338 SQL_findInDomain_DomainID_BY_ResourceDomainName
339 = "SELECT DomainId FROM "
340 + schemaNameAndTablePrefix
341 + "Domain WHERE DomainName = ?";
342
343 SQL_findInDomain_ResourceDomainName_BY_ResourceID
344 = "SELECT DomainName FROM "
345 + schemaNameAndTablePrefix
346 + "Domain WHERE DomainId = ( SELECT DomainId FROM "
347 + schemaNameAndTablePrefix
348 + "Resource WHERE ResourceId = ? )";
349
350 SQL_createInDomain_WITH_ResourceDomainName
351 = sqlProfile.isSequenceEnabled()
352 ? "INSERT INTO "
353 + schemaNameAndTablePrefix
354 + "Domain ( DomainId, DomainName ) VALUES ( "
355 + dialectSpecificSQLGenerator.nextSequenceValueFragment(schemaNameAndTablePrefix + "DomainId")
356 + ", ? )"
357 : "INSERT INTO "
358 + schemaNameAndTablePrefix
359 + "Domain ( DomainName ) VALUES ( ? )";
360
361 SQL_createInDomain_WITH_ResourceDomainName_ParentDomainID
362 = sqlProfile.isSequenceEnabled()
363 ? "INSERT INTO "
364 + schemaNameAndTablePrefix
365 + "Domain ( DomainId, DomainName, ParentDomainId ) VALUES ( "
366 + dialectSpecificSQLGenerator.nextSequenceValueFragment(schemaNameAndTablePrefix + "DomainId")
367 + ", ?, ? )"
368 : "INSERT INTO "
369 + schemaNameAndTablePrefix
370 + "Domain ( DomainName, ParentDomainId ) VALUES ( ?, ? )";
371
372 SQL_removeInDomain_BY_DomainID
373 = "DELETE FROM "
374 + schemaNameAndTablePrefix
375 + "Domain WHERE DomainId = ?";
376
377 // Domain - recursive
378 // recursive query to return all descendants domain names of the specified domain names
379 SQL_findInDomain_DescendantResourceDomainName_BY_ResourceDomainName
380 = withClause + " S( DomainId, DomainName ) AS "
381 + "( SELECT DomainId, DomainName FROM "
382 + schemaNameAndTablePrefix
383 + "Domain WHERE DomainName = ? "
384 + unionClause + " "
385 + "SELECT Splus1.DomainId, Splus1.DomainName FROM "
386 + schemaNameAndTablePrefix
387 + "Domain Splus1, S "
388 + "WHERE Splus1.ParentDomainId IS NOT NULL AND Splus1.ParentDomainId = S.DomainId ) "
389 + "SELECT DomainId, DomainName FROM S";
390
391 SQL_findInDomain_DescendantResourceDomainID_BY_DomainID_ORDERBY_DomainLevel
392 = withClause + " S( DomainId, DomainName, DomainLevel ) AS "
393 + "( SELECT DomainId, DomainName, 0 FROM "
394 + schemaNameAndTablePrefix
395 + "Domain WHERE DomainId = ? "
396 + unionClause + " "
397 + "SELECT Splus1.DomainId, Splus1.DomainName, S.DomainLevel + 1 FROM "
398 + schemaNameAndTablePrefix
399 + "Domain Splus1, S "
400 + "WHERE Splus1.ParentDomainId IS NOT NULL AND Splus1.ParentDomainId = S.DomainId ) "
401 + "SELECT DomainId, DomainName FROM S ORDER BY DomainLevel";
402
403 SQL_removeInDomain_withDescendants_BY_DomainID
404 = sqlProfile.isRecursiveDeleteEnabled()
405 ? (SQLDialect.Oracle_11_2.equals(sqlProfile.getSqlDialect()))
406 ? "DELETE FROM "
407 + schemaNameAndTablePrefix
408 + "Domain WHERE DomainId IN ( "
409 + withClause + " "
410 + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
411 + "SELECT DomainId FROM S )"
412 : withClause + " "
413 + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
414 + "DELETE FROM "
415 + schemaNameAndTablePrefix
416 + "Domain WHERE DomainId IN ( SELECT DomainId FROM S )"
417 : null;
418
419 // Domain - non-recursive
420 // non-recursive query to return only direct (first-level) descendants domain names of the specified domain
421 SQL_findInDomain_DirectDescendantResourceDomainName_BY_ResourceDomainName
422 = "SELECT d1.DomainId, d1.DomainName FROM "
423 + schemaNameAndTablePrefix
424 + "Domain d0 JOIN "
425 + schemaNameAndTablePrefix
426 + "Domain d1 on d1.ParentDomainId=d0.DomainId WHERE d0.DomainName = ?";
427
428 SQL_findInDomain_DirectDescendantResourceDomainName_BY_DomainID
429 = "SELECT DomainId, DomainName FROM "
430 + schemaNameAndTablePrefix
431 + "Domain WHERE ParentDomainId = ?";
432
433 SQL_findInDomain_ParentResourceDomainName_BY_DomainID
434 = "SELECT d1.DomainId, d1.DomainName FROM "
435 + schemaNameAndTablePrefix
436 + "Domain d0 JOIN "
437 + schemaNameAndTablePrefix
438 + "Domain d1 ON d1.DomainId = d0.ParentDomainId WHERE d0.DomainId = ?";
439
440 // GrantDomainCreatePermissionSys - common
441 SQL_findInGrantDomainCreatePermissionSys_withoutInheritance_SysPermissionID_BY_AccessorID
442 = "SELECT A.SysPermissionId, A.IsWithGrant FROM "
443 + schemaNameAndTablePrefix
444 + "Grant_DomCrPerm_Sys A "
445 + "WHERE A.AccessorResourceId = ?";
446
447 SQL_createInGrantDomainCreatePermissionSys_WITH_AccessorID_GrantorID_IsWithGrant_SysPermissionID
448 = "INSERT INTO "
449 + schemaNameAndTablePrefix
450 + "Grant_DomCrPerm_Sys ( AccessorResourceId, GrantorResourceId, IsWithGrant, SysPermissionId ) "
451 + "VALUES( ?, ?, ?, ? )";
452
453 SQL_updateInGrantDomainCreatePermissionSys_SET_GrantorID_IsWithGrant_BY_AccessorID_SysPermissionID
454 = "UPDATE "
455 + schemaNameAndTablePrefix
456 + "Grant_DomCrPerm_Sys SET GrantorResourceId = ?, IsWithGrant = ? "
457 + "WHERE AccessorResourceId = ? AND SysPermissionId = ?";
458
459 SQL_removeInGrantDomainCreatePermissionSys_BY_AccessorID
460 = "DELETE FROM "
461 + schemaNameAndTablePrefix
462 + "Grant_DomCrPerm_Sys WHERE AccessorResourceId = ?";
463
464 SQL_removeInGrantDomainCreatePermissionSys_BY_AccessorID_SysPermissionID
465 = "DELETE FROM "
466 + schemaNameAndTablePrefix
467 + "Grant_DomCrPerm_Sys WHERE AccessorResourceId = ? AND SysPermissionId = ?";
468
469 // GrantDomainCreatePermissionSys - recursive
470 SQL_findInGrantDomainCreatePermissionSys_SysPermissionID_IsWithGrant_BY_AccessorID
471 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
472 + "SELECT A.SysPermissionId, A.IsWithGrant FROM "
473 + schemaNameAndTablePrefix
474 + "Grant_DomCrPerm_Sys A "
475 + "JOIN N ON N.AccessorResourceId = A.AccessorResourceId ";
476
477 // GrantDomainCreatePermissionPostCreateSys - common
478 SQL_findInGrantDomainCreatePermissionPostCreateSys_withoutInheritance_PostCreateSysPermissionID_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID
479 = "SELECT A.PostCreateSysPermissionId, A.PostCreateIsWithGrant, A.IsWithGrant FROM "
480 + schemaNameAndTablePrefix
481 + "Grant_DomCrPerm_PostCr_Sys A "
482 + "WHERE A.AccessorResourceId = ?";
483
484 SQL_createInGrantDomainCreatePermissionPostCreateSys_WITH_AccessorID_GrantorID_IsWithGrant_PostCreateIsWithGrant_PostCreateSysPermissionID
485 = "INSERT INTO "
486 + schemaNameAndTablePrefix
487 + "Grant_DomCrPerm_PostCr_Sys ( AccessorResourceId, GrantorResourceId, IsWithGrant, PostCreateIsWithGrant, PostCreateSysPermissionId ) "
488 + "VALUES( ?, ?, ?, ?, ? )";
489
490 SQL_updateInGrantDomainCreatePermissionPostCreateSys_SET_GrantorID_IsWithGrant_PostCreateIsWithGrant_BY_AccessorID_PostCreateSysPermissionID
491 = "UPDATE "
492 + schemaNameAndTablePrefix
493 + "Grant_DomCrPerm_PostCr_Sys SET GrantorResourceId = ?, IsWithGrant = ?, PostCreateIsWithGrant = ? "
494 + "WHERE AccessorResourceId = ? AND PostCreateSysPermissionId = ?";
495
496 SQL_removeInGrantDomainCreatePermissionPostCreateSys_BY_AccessorID
497 = "DELETE FROM "
498 + schemaNameAndTablePrefix
499 + "Grant_DomCrPerm_PostCr_Sys WHERE AccessorResourceId = ?";
500
501 SQL_removeInGrantDomainCreatePermissionPostCreateSys_BY_AccessorID_PostCreateSysPermissionID
502 = "DELETE FROM "
503 + schemaNameAndTablePrefix
504 + "Grant_DomCrPerm_PostCr_Sys WHERE AccessorResourceId = ? AND PostCreateSysPermissionId = ?";
505
506 // GrantDomainCreatePermissionPostCreateSys - recursive
507 SQL_findInGrantDomainCreatePermissionPostCreateSys_PostCreateSysPermissionID_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID
508 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
509 + "SELECT A.PostCreateSysPermissionId, A.PostCreateIsWithGrant, A.IsWithGrant FROM "
510 + schemaNameAndTablePrefix
511 + "Grant_DomCrPerm_PostCr_Sys A "
512 + "JOIN N ON N.AccessorResourceId = A.AccessorResourceId ";
513
514 // GrantDomainPermissionSys - common
515 SQL_findInGrantDomainPermissionSys_withoutInheritance_SysPermissionID_IsWithGrant_BY_AccessorID_DomainID
516 = "SELECT A.SysPermissionId, A.IsWithGrant FROM "
517 + schemaNameAndTablePrefix
518 + "Grant_DomPerm_Sys A "
519 + "WHERE A.AccessorResourceId = ? AND A.AccessedDomainId = ?";
520
521 SQL_findInGrantDomainPermissionSys_withoutInheritance_ResourceDomainName_SysPermissionID_IsWithGrant_BY_AccessorID
522 = "SELECT B.DomainName, A.SysPermissionId, A.IsWithGrant FROM "
523 + schemaNameAndTablePrefix
524 + "Grant_DomPerm_Sys A JOIN "
525 + schemaNameAndTablePrefix
526 + "Domain B ON B.DomainId = A.AccessedDomainId "
527 + "WHERE A.AccessorResourceId = ?";
528
529 SQL_createInGrantDomainPermissionSys_WITH_AccessorID_GrantorID_AccessedDomainID_IsWithGrant_SysPermissionID
530 = "INSERT INTO "
531 + schemaNameAndTablePrefix
532 + "Grant_DomPerm_Sys ( AccessorResourceId, GrantorResourceId, AccessedDomainId, IsWithGrant, SysPermissionId ) VALUES ( ?, ?, ?, ?, ? )";
533
534 SQL_updateInGrantDomainPermissionSys_SET_GrantorID_IsWithGrant_BY_AccessorID_AccessedDomainID_SysPermissionID
535 = "UPDATE "
536 + schemaNameAndTablePrefix
537 + "Grant_DomPerm_Sys SET GrantorResourceId = ?, IsWithGrant = ? "
538 + "WHERE AccessorResourceId = ? AND AccessedDomainId = ? AND SysPermissionId = ?";
539
540 SQL_removeInGrantDomainPermissionSys_BY_AccessorID
541 = "DELETE FROM "
542 + schemaNameAndTablePrefix
543 + "Grant_DomPerm_Sys WHERE AccessorResourceId = ?";
544
545 SQL_removeInGrantDomainPermissionSys_BY_AccessedDomainID
546 = "DELETE FROM "
547 + schemaNameAndTablePrefix
548 + "Grant_DomPerm_Sys WHERE AccessedDomainId = ?";
549
550 SQL_removeInGrantDomainPermissionSys_BY_AccessorID_AccessedDomainID
551 = "DELETE FROM "
552 + schemaNameAndTablePrefix
553 + "Grant_DomPerm_Sys WHERE AccessorResourceId = ? AND AccessedDomainId = ?";
554
555 SQL_removeInGrantDomainPermissionSys_BY_AccessorID_AccessedDomainID_SysPermissionID
556 = "DELETE FROM "
557 + schemaNameAndTablePrefix
558 + "Grant_DomPerm_Sys WHERE AccessorResourceId = ? AND AccessedDomainId = ? AND SysPermissionId = ?";
559
560 // GrantDomainPermissionSys - recursive
561
562 // query returns the resources that the accessor has access to via super user permission
563 SQL_findInGrantDomainPermissionSys_ResourceID_ExternalId_BY_AccessorID_SysPermissionID_IsWithGrant_ResourceClassID
564 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
565 + ", R( DomainId ) AS "
566 // this sub query is the starting set for the domain recursion, it returns all the direct
567 // resources domains that the accessor has the specified system permission on (currently super-user)
568 + "( SELECT AccessedDomainId FROM "
569 + schemaNameAndTablePrefix
570 + "Grant_DomPerm_Sys G "
571 + "JOIN N ON N.AccessorResourceId = G.AccessorResourceId "
572 + "WHERE G.SysPermissionId = ? AND ( ? IN ( 0, G.IsWithGrant ) ) "
573 // now we find the nested domains that the accessor can reach from the direct set above
574 + unionClause + " SELECT Rplus1.DomainId FROM "
575 + schemaNameAndTablePrefix
576 + "Domain Rplus1, R "
577 + "WHERE Rplus1.ParentDomainId IS NOT NULL AND Rplus1.ParentDomainId = R.DomainId ) "
578 // finally we get the resources of the specified type in the domains we computed above
579 + "SELECT A.ResourceId, E.ExternalId FROM "
580 + schemaNameAndTablePrefix
581 + "Resource A "
582 + "JOIN R ON R.DomainId = A.DomainId LEFT JOIN "
583 + schemaNameAndTablePrefix
584 + "ResourceExternalID E ON E.ResourceId = A.ResourceId "
585 + "WHERE A.ResourceClassId = ?";
586
587 SQL_findInGrantDomainPermissionSys_ResourceID_ExternalID_BY_AccessorID_DomainID_SysPermissionID_IsWithGrant_ResourceClassID
588 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
589 + ", " + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
590 + ", R( DomainId ) AS "
591 // this sub query is the starting set for the domain recursion, it returns all the direct
592 // resources domains that the accessor has the specified system permission on (currently super-user)
593 + "( SELECT AccessedDomainId FROM "
594 + schemaNameAndTablePrefix
595 + "Grant_DomPerm_Sys G "
596 + "JOIN N ON N.AccessorResourceId = G.AccessorResourceId "
597 + "WHERE G.SysPermissionId = ? AND ( ? IN ( 0, G.IsWithGrant ) ) "
598 // now we find the nested domains that the accessor can reach from the direct set above
599 + unionClause + " SELECT Rplus1.DomainId FROM "
600 + schemaNameAndTablePrefix
601 + "Domain Rplus1, R "
602 + "WHERE Rplus1.ParentDomainId IS NOT NULL AND Rplus1.ParentDomainId = R.DomainId ) "
603 // finally we get the resources of the specified type in the domains we computed above
604 + "SELECT A.ResourceId, E.ExternalId FROM "
605 + schemaNameAndTablePrefix
606 + "Resource A "
607 + "JOIN R ON R.DomainId = A.DomainId "
608 + "JOIN S ON S.DomainId = A.DomainId LEFT JOIN "
609 + schemaNameAndTablePrefix
610 + "ResourceExternalID E ON E.ResourceId = A.ResourceId "
611 + "WHERE A.ResourceClassId = ?";
612
613 SQL_findInGrantDomainPermissionSys_SysPermissionID_IsWithGrant_BY_AccessorID_DomainID
614 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
615 + SQL_findAncestorsRecursiveInDomain_DomainID_BY_DomainID
616 + "SELECT A.SysPermissionId, A.IsWithGrant FROM "
617 + schemaNameAndTablePrefix
618 + "Grant_DomPerm_Sys A "
619 + "JOIN N ON N.AccessorResourceId = A.AccessorResourceId "
620 + "JOIN R ON R.DomainId = A.AccessedDomainId ";
621
622 SQL_findInGrantDomainPermissionSys_ResourceDomainName_SysPermissionID_IsWithGrant_BY_AccessorID
623 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
624 + ", P( AccessedDomainId, SysPermissionId, IsWithGrant ) AS "
625 + "( SELECT A.AccessedDomainId, A.SysPermissionId, A.IsWithGrant FROM "
626 + schemaNameAndTablePrefix
627 + "Grant_DomPerm_Sys A "
628 + "JOIN N ON N.AccessorResourceId = A.AccessorResourceId "
629 + unionClause + " "
630 + "SELECT Pplus1.DomainId, P.SysPermissionId, P.IsWithGrant FROM "
631 + schemaNameAndTablePrefix
632 + "Domain Pplus1, P "
633 + "WHERE Pplus1.ParentDomainId IS NOT NULL AND Pplus1.ParentDomainId = P.AccessedDomainId ) "
634 + "SELECT B.DomainName, P.SysPermissionId, P.IsWithGrant FROM P JOIN "
635 + schemaNameAndTablePrefix
636 + "Domain B ON B.DomainId = P.AccessedDomainId";
637
638 SQL_removeInGrantDomainPermissionSys_withDescendants_BY_AccessedDomainID
639 = sqlProfile.isRecursiveDeleteEnabled()
640 ? (SQLDialect.Oracle_11_2.equals(sqlProfile.getSqlDialect()))
641 ? "DELETE FROM "
642 + schemaNameAndTablePrefix
643 + "Grant_DomPerm_Sys WHERE AccessedDomainId IN ( "
644 + withClause + " "
645 + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
646 + "SELECT DomainId FROM S )"
647 : withClause + " "
648 + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
649 + "DELETE FROM "
650 + schemaNameAndTablePrefix
651 + "Grant_DomPerm_Sys WHERE AccessedDomainId IN ( SELECT DomainId FROM S )"
652 : null;
653
654 // GrantDomainPermissionSys - non-recursive
655 SQL_findInGrantDomainPermissionSys_withoutInheritance_ResourceDomainId_BY_AccessorID_SysPermissionID_IsWithGrant
656 = "SELECT AccessedDomainID FROM "
657 + schemaNameAndTablePrefix
658 + "Grant_DomPerm_Sys "
659 + "WHERE AccessorResourceId = ? AND SysPermissionId = ? AND ( ? IN ( 0, IsWithGrant ) )";
660
661 // Resource: finder methods used getAccessorResourcesByResourcePermission()
662 SQL_findInGrantResourcePermissionSys_ResourceID_ExternalID_BY_AccessedID_ResourceClassID_SysPermissionID_IsWithGrant
663 = "SELECT A.AccessorResourceId ResourceId, E.ExternalId FROM "
664 + schemaNameAndTablePrefix
665 + "Grant_ResPerm_Sys A LEFT JOIN "
666 + schemaNameAndTablePrefix
667 + "ResourceExternalID E ON E.ResourceId = A.AccessorResourceId "
668 + "WHERE A.AccessedResourceId = ? AND A.ResourceClassId = ? AND A.SysPermissionId = ? AND ( ? IN ( 0, A.IsWithGrant ) )";
669
670 // Resource - common
671 SQL_findInResource_COUNTResourceID_BY_ResourceClassID_DomainID
672 = "SELECT COUNT( ResourceId ) COUNTResourceID FROM "
673 + schemaNameAndTablePrefix
674 + "Resource WHERE ResourceClassId = ? AND DomainId = ?";
675
676 SQL_createInResource_WITH_ResourceID_ResourceClassID_DomainID
677 = "INSERT INTO "
678 + schemaNameAndTablePrefix
679 + "Resource ( ResourceId, ResourceClassId, DomainId ) VALUES ( ?, ?, ? )";
680
681 SQL_createInResource_WITH_ResourceClassID_DomainID
682 = "INSERT INTO "
683 + schemaNameAndTablePrefix
684 + "Resource ( ResourceClassId, DomainId ) VALUES ( ?, ? )";
685
686 SQL_removeInResource_BY_ResourceID
687 = "DELETE FROM " + schemaNameAndTablePrefix + "Resource WHERE ResourceId = ?";
688
689 SQL_findInResource_ResourceId_BY_ResourceID
690 = "SELECT ResourceId FROM " + schemaNameAndTablePrefix + "Resource WHERE ResourceId = ?";
691
692 SQL_findInResource_ResourceId_ExternalId_BY_ResourceID
693 = "SELECT A.ResourceId, B.ExternalId FROM "
694 + schemaNameAndTablePrefix + "Resource A LEFT JOIN "
695 + schemaNameAndTablePrefix + "ResourceExternalID B ON B.ResourceID = A.ResourceID WHERE A.ResourceId = ?";
696
697 SQL_findInResource_DomainID_BY_ResourceID
698 = "SELECT DomainId FROM " + schemaNameAndTablePrefix + "Resource WHERE ResourceId = ? ";
699
700 SQL_findInResource_withoutInheritance_ResourceId_ExternalId_BY_ResourceClassID_DomainID
701 = "SELECT A.ResourceId, E.ExternalId FROM "
702 + schemaNameAndTablePrefix + "Resource A LEFT JOIN "
703 + schemaNameAndTablePrefix + "ResourceExternalID E ON E.ResourceId = A.ResourceId "
704 + "WHERE A.ResourceClassId = ? AND A.DomainId = ?";
705
706 SQL_createInResourceExternalId_WITH_ResourceID_ExternalID
707 = "INSERT INTO "
708 + schemaNameAndTablePrefix
709 + "ResourceExternalID ( ResourceId, ExternalId ) VALUES ( ?, ? )";
710
711 SQL_removeInResourceExternalId_BY_ResourceID
712 = "DELETE FROM " + schemaNameAndTablePrefix + "ResourceExternalID WHERE ResourceId = ?";
713
714 SQL_findInResourceExternalId_ResourceId_ExternalId_BY_ExternalID
715 = "SELECT ResourceId, ExternalId FROM "
716 + schemaNameAndTablePrefix + "ResourceExternalID WHERE ExternalId = ?";
717
718 // Resource - recursive
719 SQL_findInResource_COUNTResourceID_BY_DomainID
720 = withClause + " "
721 + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
722 + "SELECT COUNT( ResourceId ) COUNTResourceID FROM "
723 + schemaNameAndTablePrefix
724 + "Resource C JOIN S ON S.DomainId = C.DomainId";
725
726 // Resource - non-recursive
727 SQL_findInResource_withoutInheritance_COUNTResourceID_BY_DomainID
728 = "SELECT COUNT( ResourceId ) COUNTResourceID FROM "
729 + schemaNameAndTablePrefix
730 + "Resource WHERE DomainId = ?";
731
732 // GrantResourceCreatePermissionSys - common
733 SQL_findInGrantResourceCreatePermissionSys_withoutInheritance_SysPermissionId_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID
734 = "SELECT A.SysPermissionId, A.IsWithGrant FROM "
735 + schemaNameAndTablePrefix
736 + "Grant_ResCrPerm_Sys A "
737 + "WHERE A.AccessorResourceId = ? AND A.AccessedDomainId = ? AND A.ResourceClassId = ?";
738
739 SQL_findInGrantResourceCreatePermissionSys_withoutInheritance_ResourceDomainName_ResourceClassName_SysPermissionId_IsWithGrant_BY_AccessorID
740 = "SELECT C.DomainName, B.ResourceClassName, A.SysPermissionId, A.IsWithGrant FROM "
741 + schemaNameAndTablePrefix
742 + "Grant_ResCrPerm_Sys A JOIN "
743 + schemaNameAndTablePrefix
744 + "ResourceClass B ON B.ResourceClassId = A.ResourceClassId JOIN "
745 + schemaNameAndTablePrefix
746 + "Domain C ON C.DomainId = A.AccessedDomainId "
747 + "WHERE A.AccessorResourceId = ?";
748
749 SQL_createInGrantResourceCreatePermissionSys_WITH_AccessorID_GrantorID_AccessedDomainID_IsWithGrant_ResourceClassID_SysPermissionId
750 = "INSERT INTO "
751 + schemaNameAndTablePrefix
752 + "Grant_ResCrPerm_Sys ( AccessorResourceId, GrantorResourceId, AccessedDomainId, IsWithGrant, ResourceClassId, SysPermissionId ) "
753 + "VALUES( ?, ?, ?, ?, ?, ? )";
754
755 SQL_updateInGrantResourceCreatePermissionSys_SET_GrantorID_IsWithGrant_BY__AccessorID_AccessedDomainID_ResourceClassID_SysPermissionId
756 = "UPDATE "
757 + schemaNameAndTablePrefix
758 + "Grant_ResCrPerm_Sys SET GrantorResourceId = ?, IsWithGrant = ? "
759 + "WHERE AccessorResourceId = ? AND AccessedDomainId = ? AND ResourceClassId = ? AND SysPermissionId = ?";
760
761 SQL_removeInGrantResourceCreatePermissionSys_BY_AccessorID
762 = "DELETE FROM "
763 + schemaNameAndTablePrefix
764 + "Grant_ResCrPerm_Sys WHERE AccessorResourceId = ?";
765
766 SQL_removeInGrantResourceCreatePermissionSys_BY_AccessedDomainId
767 = "DELETE FROM "
768 + schemaNameAndTablePrefix
769 + "Grant_ResCrPerm_Sys WHERE AccessedDomainId = ?";
770
771 SQL_removeInGrantResourceCreatePermissionSys_BY_AccessorID_AccessedDomainID_ResourceClassID
772 = "DELETE FROM "
773 + schemaNameAndTablePrefix
774 + "Grant_ResCrPerm_Sys WHERE AccessorResourceId = ? AND AccessedDomainId = ? AND ResourceClassId = ?";
775
776 SQL_removeInGrantResourceCreatePermissionSys_BY_AccessorID_AccessedDomainID_ResourceClassID_SysPermissionID
777 = "DELETE FROM "
778 + schemaNameAndTablePrefix
779 + "Grant_ResCrPerm_Sys WHERE AccessorResourceId = ? AND AccessedDomainId = ? AND ResourceClassId = ? AND SysPermissionId = ?";
780
781 // GrantResourceCreatePermissionSys - recursive
782 SQL_findInGrantResourceCreatePermissionSys_SysPermissionId_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID
783 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
784 + SQL_findAncestorsRecursiveInDomain_DomainID_BY_DomainID
785 + "SELECT A.SysPermissionId, A.IsWithGrant FROM "
786 + schemaNameAndTablePrefix
787 + "Grant_ResCrPerm_Sys A "
788 + "JOIN N ON N.AccessorResourceId = A.AccessorResourceId "
789 + "JOIN R ON R.DomainId = A.AccessedDomainId "
790 + "WHERE A.ResourceClassId = ?";
791
792 SQL_findInGrantResourceCreatePermissionSys_ResourceDomainName_ResourceClassName_SysPermissionId_IsWithGrant_BY_AccessorID
793 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
794 + ", P( AccessedDomainId, ResourceClassId, SysPermissionId, IsWithGrant ) AS "
795 + "( SELECT A.AccessedDomainId, A.ResourceClassId, A.SysPermissionId, A.IsWithGrant FROM "
796 + schemaNameAndTablePrefix
797 + "Grant_ResCrPerm_Sys A "
798 + "JOIN N ON N.AccessorResourceId = A.AccessorResourceId "
799 + unionClause + " "
800 + "SELECT Pplus1.DomainId, P.ResourceClassId, P.SysPermissionId, P.IsWithGrant FROM "
801 + schemaNameAndTablePrefix
802 + "Domain Pplus1, P "
803 + "WHERE Pplus1.ParentDomainId IS NOT NULL AND Pplus1.ParentDomainId = P.AccessedDomainId ) "
804 + "SELECT C.DomainName, B.ResourceClassName, P.SysPermissionId, P.IsWithGrant FROM P JOIN "
805 + schemaNameAndTablePrefix
806 + "ResourceClass B ON B.ResourceClassId = P.ResourceClassId JOIN "
807 + schemaNameAndTablePrefix
808 + "Domain C ON C.DomainId = P.AccessedDomainId";
809
810 SQL_removeInGrantResourceCreatePermissionSys_withDescendants_BY_AccessedDomainId
811 = sqlProfile.isRecursiveDeleteEnabled()
812 ? (SQLDialect.Oracle_11_2.equals(sqlProfile.getSqlDialect()))
813 ? "DELETE FROM "
814 + schemaNameAndTablePrefix
815 + "Grant_ResCrPerm_Sys WHERE AccessedDomainId IN ( "
816 + withClause + " "
817 + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
818 + "SELECT DomainId FROM S )"
819 : withClause + " "
820 + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
821 + "DELETE FROM "
822 + schemaNameAndTablePrefix
823 + "Grant_ResCrPerm_Sys WHERE AccessedDomainId IN ( SELECT DomainId FROM S )"
824 : null;
825
826 // GrantResourceCreatePermissionPostCreateSys - common
827 SQL_findInGrantResourceCreatePermissionPostCreateSys_withoutInheritance_PostCreateSysPermissionID_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID
828 = "SELECT A.PostCreateSysPermissionId, A.PostCreateIsWithGrant, A.IsWithGrant FROM "
829 + schemaNameAndTablePrefix
830 + "Grant_ResCrPerm_PostCr_Sys A "
831 + "WHERE A.AccessorResourceId = ? AND A.AccessedDomainId = ? AND A.ResourceClassId = ?";
832
833 SQL_findInGrantResourceCreatePermissionPostCreateSys_withoutInheritance_ResourceDomainName_ResourceClassName_PostCreateSysPermissionID_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID
834 = "SELECT C.DomainName, B.ResourceClassName, A.PostCreateSysPermissionId, A.PostCreateIsWithGrant, A.IsWithGrant FROM "
835 + schemaNameAndTablePrefix
836 + "Grant_ResCrPerm_PostCr_Sys A JOIN "
837 + schemaNameAndTablePrefix
838 + "ResourceClass B ON B.ResourceClassId = A.ResourceClassId JOIN "
839 + schemaNameAndTablePrefix
840 + "Domain C ON C.DomainId = A.AccessedDomainId "
841 + "WHERE A.AccessorResourceId = ?";
842
843 SQL_createInGrantResourceCreatePermissionPostCreateSys_WITH_AccessorID_GrantorID_AccessedDomainID_IsWithGrant_PostCreateIsWithGrant_ResourceClassID_PostCreateSysPermissionID
844 = "INSERT INTO "
845 + schemaNameAndTablePrefix
846 + "Grant_ResCrPerm_PostCr_Sys ( AccessorResourceId, GrantorResourceId, AccessedDomainId, IsWithGrant, PostCreateIsWithGrant, ResourceClassId, PostCreateSysPermissionId ) "
847 + "VALUES( ?, ?, ?, ?, ?, ?, ? )";
848
849 SQL_updateInGrantResourceCreatePermissionPostCreateSys_SET_GrantorID_IsWithGrant_PostCreateIsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID_PostCreateSysPermissionID
850 = "UPDATE "
851 + schemaNameAndTablePrefix
852 + "Grant_ResCrPerm_PostCr_Sys SET GrantorResourceId = ?, IsWithGrant = ?, PostCreateIsWithGrant = ? "
853 + "WHERE AccessorResourceId = ? AND AccessedDomainId = ? AND ResourceClassId = ? AND PostCreateSysPermissionId = ?";
854
855 SQL_removeInGrantResourceCreatePermissionPostCreateSys_BY_AccessorID
856 = "DELETE FROM "
857 + schemaNameAndTablePrefix
858 + "Grant_ResCrPerm_PostCr_Sys WHERE AccessorResourceId = ?";
859
860 SQL_removeInGrantResourceCreatePermissionPostCreateSys_BY_AccessedDomainID
861 = "DELETE FROM "
862 + schemaNameAndTablePrefix
863 + "Grant_ResCrPerm_PostCr_Sys WHERE AccessedDomainId = ?";
864
865 SQL_removeInGrantResourceCreatePermissionPostCreateSys_BY_AccessorID_AccessedDomainID_ResourceClassID
866 = "DELETE FROM "
867 + schemaNameAndTablePrefix
868 + "Grant_ResCrPerm_PostCr_Sys WHERE AccessorResourceId = ? AND AccessedDomainId = ? AND ResourceClassId = ?";
869
870 SQL_removeInGrantResourceCreatePermissionPostCreateSys_BY_AccessorID_AccessedDomainID_ResourceClassID_PostCreateSysPermissionID
871 = "DELETE FROM "
872 + schemaNameAndTablePrefix
873 + "Grant_ResCrPerm_PostCr_Sys WHERE AccessorResourceId = ? AND AccessedDomainId = ? AND ResourceClassId = ? AND PostCreateSysPermissionId = ?";
874
875 // GrantResourceCreatePermissionPostCreateSys - recursive
876 SQL_findInGrantResourceCreatePermissionPostCreateSys_PostCreateSysPermissionID_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID
877 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
878 + SQL_findAncestorsRecursiveInDomain_DomainID_BY_DomainID
879 + "SELECT A.PostCreateSysPermissionId, A.PostCreateIsWithGrant, A.IsWithGrant FROM "
880 + schemaNameAndTablePrefix
881 + "Grant_ResCrPerm_PostCr_Sys A "
882 + "JOIN N ON N.AccessorResourceId = A.AccessorResourceId "
883 + "JOIN R ON R.DomainId = A.AccessedDomainId "
884 + "WHERE A.ResourceClassId = ?";
885
886 SQL_findInGrantResourceCreatePermissionPostCreateSys_ResourceDomainName_ResourceClassName_PostCreateSysPermissionID_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID
887 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
888 + ", P( AccessedDomainId, ResourceClassId, PostCreateSysPermissionId, PostCreateIsWithGrant, IsWithGrant ) AS "
889 + "( SELECT A.AccessedDomainId, A.ResourceClassId, A.PostCreateSysPermissionId, A.PostCreateIsWithGrant, A.IsWithGrant FROM "
890 + schemaNameAndTablePrefix
891 + "Grant_ResCrPerm_PostCr_Sys A "
892 + "JOIN N ON N.AccessorResourceId = A.AccessorResourceId "
893 + unionClause + " "
894 + "SELECT Pplus1.DomainId, P.ResourceClassId, P.PostCreateSysPermissionId, P.PostCreateIsWithGrant, P.IsWithGrant FROM "
895 + schemaNameAndTablePrefix
896 + "Domain Pplus1, P "
897 + "WHERE Pplus1.ParentDomainId IS NOT NULL AND Pplus1.ParentDomainId = P.AccessedDomainId ) "
898 + "SELECT C.DomainName, B.ResourceClassName, P.PostCreateSysPermissionId, P.PostCreateIsWithGrant, P.IsWithGrant FROM P JOIN "
899 + schemaNameAndTablePrefix
900 + "ResourceClass B ON B.ResourceClassId = P.ResourceClassId JOIN "
901 + schemaNameAndTablePrefix
902 + "Domain C ON C.DomainId = P.AccessedDomainId";
903
904 SQL_removeInGrantResourceCreatePermissionPostCreateSys_withDescendants_BY_AccessedDomainID
905 = sqlProfile.isRecursiveDeleteEnabled()
906 ? (SQLDialect.Oracle_11_2.equals(sqlProfile.getSqlDialect()))
907 ? "DELETE FROM "
908 + schemaNameAndTablePrefix
909 + "Grant_ResCrPerm_PostCr_Sys WHERE AccessedDomainId IN ( "
910 + withClause + " "
911 + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
912 + "SELECT DomainId FROM S )"
913 : withClause + " "
914 + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
915 + "DELETE FROM "
916 + schemaNameAndTablePrefix
917 + "Grant_ResCrPerm_PostCr_Sys WHERE AccessedDomainId IN ( SELECT DomainId FROM S )"
918 : null;
919
920 // GrantResourceCreatePermissionPostCreate - common
921 SQL_findInGrantResourceCreatePermissionPostCreate_withoutInheritance_PostCreatePermissionName_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID
922 = "SELECT B.PermissionName PostCreatePermissionName, A.PostCreateIsWithGrant, A.IsWithGrant FROM "
923 + schemaNameAndTablePrefix
924 + "Grant_ResCrPerm_PostCr A JOIN "
925 + schemaNameAndTablePrefix
926 + "ResourceClassPermission B ON B.ResourceClassId = A.ResourceClassId AND B.PermissionId = A.PostCreatePermissionId "
927 + "WHERE A.AccessorResourceId = ? AND A.AccessedDomainId = ? AND A.ResourceClassId = ?";
928
929 SQL_findInGrantResourceCreatePermissionPostCreate_withoutInheritance_ResourceDomainName_ResourceClassName_PostCreatePermissionName_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID
930 = "SELECT D.DomainName, C.ResourceClassName, B.PermissionName PostCreatePermissionName, A.PostCreateIsWithGrant, A.IsWithGrant FROM "
931 + schemaNameAndTablePrefix
932 + "Grant_ResCrPerm_PostCr A JOIN "
933 + schemaNameAndTablePrefix
934 + "ResourceClassPermission B ON B.ResourceClassId = A.ResourceClassId AND B.PermissionId = A.PostCreatePermissionId JOIN "
935 + schemaNameAndTablePrefix
936 + "ResourceClass C ON C.ResourceClassId = A.ResourceClassId JOIN "
937 + schemaNameAndTablePrefix
938 + "Domain D ON D.DomainId = A.AccessedDomainId "
939 + "WHERE A.AccessorResourceId = ?";
940
941 SQL_createInGrantResourceCreatePermissionPostCreate_WITH_AccessorID_GrantorID_AccessedDomainID_IsWithGrant_PostCreateIsWithGrant_ResourceClassID_PostCreatePermissionName
942 = "INSERT INTO "
943 + schemaNameAndTablePrefix
944 + "Grant_ResCrPerm_PostCr ( AccessorResourceId, GrantorResourceId, AccessedDomainId, IsWithGrant, PostCreateIsWithGrant, ResourceClassId, PostCreatePermissionId ) "
945 + "SELECT ?, ?, ?, ?, ?, A.ResourceClassId, A.PermissionId FROM "
946 + schemaNameAndTablePrefix
947 + "ResourceClassPermission A WHERE A.ResourceClassId = ? AND A.PermissionName = ?";
948
949 SQL_updateInGrantResourceCreatePermissionPostCreate_SET_GrantorID_IsWithGrant_PostCreateIsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID_PostCreatePermissionName
950 = "UPDATE "
951 + schemaNameAndTablePrefix
952 + "Grant_ResCrPerm_PostCr SET GrantorResourceId = ?, IsWithGrant = ?, PostCreateIsWithGrant = ? "
953 + "WHERE AccessorResourceId = ? AND AccessedDomainId = ? AND ResourceClassId = ? AND PostCreatePermissionId = ( "
954 + "SELECT A.PermissionId FROM "
955 + schemaNameAndTablePrefix
956 + "ResourceClassPermission A WHERE A.ResourceClassId = ResourceClassId AND A.PermissionName = ? )";
957
958 SQL_removeInGrantResourceCreatePermissionPostCreate_BY_AccessorID
959 = "DELETE FROM "
960 + schemaNameAndTablePrefix
961 + "Grant_ResCrPerm_PostCr WHERE AccessorResourceId = ?";
962
963 SQL_removeInGrantResourceCreatePermissionPostCreate_BY_AccessedDomainId
964 = "DELETE FROM "
965 + schemaNameAndTablePrefix
966 + "Grant_ResCrPerm_PostCr WHERE AccessedDomainId = ?";
967
968 SQL_removeInGrantResourceCreatePermissionPostCreate_BY_AccessorID_AccessedDomainID_ResourceClassID
969 = "DELETE FROM "
970 + schemaNameAndTablePrefix
971 + "Grant_ResCrPerm_PostCr WHERE AccessorResourceId = ? AND AccessedDomainId = ? AND ResourceClassId = ?";
972
973 SQL_removeInGrantResourceCreatePermissionPostCreate_BY_AccessorID_AccessedDomainID_ResourceClassID_PostCreatePermissionName
974 = "DELETE FROM "
975 + schemaNameAndTablePrefix
976 + "Grant_ResCrPerm_PostCr WHERE AccessorResourceId = ? AND AccessedDomainId = ? AND ResourceClassId = ? AND PostCreatePermissionId = ( "
977 + "SELECT A.PermissionId FROM "
978 + schemaNameAndTablePrefix
979 + "ResourceClassPermission A WHERE A.ResourceClassId = ResourceClassId AND A.PermissionName = ? )";
980
981 // GrantResourceCreatePermissionPostCreate - recursive
982 SQL_findInGrantResourceCreatePermissionPostCreate_ResourceClassName_PostCreatePermissionName_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID
983 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
984 + SQL_findAncestorsRecursiveInDomain_DomainID_BY_DomainID
985 + "SELECT C.ResourceClassName, B.PermissionName PostCreatePermissionName, A.PostCreateIsWithGrant, A.IsWithGrant FROM "
986 + schemaNameAndTablePrefix
987 + "Grant_ResCrPerm_PostCr A JOIN "
988 + schemaNameAndTablePrefix
989 + "ResourceClassPermission B ON B.ResourceClassId = A.ResourceClassId AND B.PermissionId = A.PostCreatePermissionId JOIN "
990 + schemaNameAndTablePrefix
991 + "ResourceClass C ON C.ResourceClassId = A.ResourceClassId "
992 + "JOIN N ON N.AccessorResourceId = A.AccessorResourceId "
993 + "JOIN R ON R.DomainId = A.AccessedDomainId "
994 + "WHERE A.ResourceClassId = ?";
995
996 SQL_findInGrantResourceCreatePermissionPostCreate_ResourceDomainName_ResourceClassName_PostCreatePermissionName_PostCreateIsWithGrant_IsWithGrant_BY_AccessorID
997 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
998 + ", P( AccessedDomainId, ResourceClassId, PostCreatePermissionId, PostCreateIsWithGrant, IsWithGrant ) AS "
999 + "( SELECT A.AccessedDomainId, A.ResourceClassId, A.PostCreatePermissionId, A.PostCreateIsWithGrant, A.IsWithGrant FROM "
1000 + schemaNameAndTablePrefix
1001 + "Grant_ResCrPerm_PostCr A "
1002 + "JOIN N ON N.AccessorResourceId = A.AccessorResourceId "
1003 + unionClause + " "
1004 + "SELECT Pplus1.DomainId, P.ResourceClassId, P.PostCreatePermissionId, P.PostCreateIsWithGrant, P.IsWithGrant FROM "
1005 + schemaNameAndTablePrefix
1006 + "Domain Pplus1, P "
1007 + "WHERE Pplus1.ParentDomainId IS NOT NULL AND Pplus1.ParentDomainId = P.AccessedDomainId ) "
1008 + "SELECT D.DomainName, C.ResourceClassName, B.PermissionName PostCreatePermissionName, P.PostCreateIsWithGrant, P.IsWithGrant FROM P JOIN "
1009 + schemaNameAndTablePrefix
1010 + "ResourceClassPermission B ON B.ResourceClassId = P.ResourceClassId AND B.PermissionId = P.PostCreatePermissionId JOIN "
1011 + schemaNameAndTablePrefix
1012 + "ResourceClass C ON C.ResourceClassId = P.ResourceClassId JOIN "
1013 + schemaNameAndTablePrefix
1014 + "Domain D ON D.DomainId = P.AccessedDomainId";
1015
1016 SQL_removeInGrantResourceCreatePermissionPostCreate_withDescendants_BY_AccessedDomainId
1017 = sqlProfile.isRecursiveDeleteEnabled()
1018 ? (SQLDialect.Oracle_11_2.equals(sqlProfile.getSqlDialect()))
1019 ? "DELETE FROM "
1020 + schemaNameAndTablePrefix
1021 + "Grant_ResCrPerm_PostCr WHERE AccessedDomainId IN ( "
1022 + withClause + " "
1023 + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
1024 + "SELECT DomainId FROM S )"
1025 : withClause + " "
1026 + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
1027 + "DELETE FROM "
1028 + schemaNameAndTablePrefix
1029 + "Grant_ResCrPerm_PostCr WHERE AccessedDomainId IN ( SELECT DomainId FROM S )"
1030 : null;
1031
1032 // GrantResourcePermissionSys - common
1033 SQL_findInGrantResourcePermissionSys_withoutInheritance_ResourceClassName_SysPermissionID_IsWithGrant_BY_AccessorID_AccessedID
1034 = "SELECT B.ResourceClassName, A.SysPermissionId, A.IsWithGrant FROM "
1035 + schemaNameAndTablePrefix
1036 + "Grant_ResPerm_Sys A JOIN "
1037 + schemaNameAndTablePrefix
1038 + "ResourceClass B ON B.ResourceClassId = A.ResourceClassId "
1039 + "WHERE A.AccessorResourceId = ? AND A.AccessedResourceId = ?";
1040
1041 SQL_createInGrantResourcePermissionSys_WITH_AccessorID_GrantorID_AccessedID_IsWithGrant_ResourceClassID_SysPermissionID
1042 = "INSERT INTO "
1043 + schemaNameAndTablePrefix
1044 + "Grant_ResPerm_Sys ( AccessorResourceId, GrantorResourceId, AccessedResourceId, IsWithGrant, ResourceClassId, SysPermissionId ) "
1045 + "VALUES ( ?, ?, ?, ?, ?, ? )";
1046
1047 SQL_updateInGrantResourcePermissionSys_SET_GrantorID_IsWithGrant_BY_AccessorID_AccessedID_ResourceClassID_SysPermissionID
1048 = "UPDATE "
1049 + schemaNameAndTablePrefix
1050 + "Grant_ResPerm_Sys SET GrantorResourceId = ?, IsWithGrant = ? "
1051 + "WHERE AccessorResourceId = ? AND AccessedResourceId = ? AND ResourceClassId = ? AND SysPermissionId = ?";
1052
1053 SQL_removeInGrantResourcePermissionSys_BY_AccessorID_OR_AccessedID
1054 = "DELETE FROM "
1055 + schemaNameAndTablePrefix
1056 + "Grant_ResPerm_Sys WHERE AccessorResourceId = ? OR AccessedResourceId = ?";
1057
1058 SQL_removeInGrantResourcePermissionSys_BY_AccessorID_AccessedID
1059 = "DELETE FROM "
1060 + schemaNameAndTablePrefix
1061 + "Grant_ResPerm_Sys WHERE AccessorResourceId = ? AND AccessedResourceId = ?";
1062
1063 SQL_removeInGrantResourcePermissionSys_BY_AccessorID_AccessedID_ResourceClassID_SysPermissionID
1064 = "DELETE FROM "
1065 + schemaNameAndTablePrefix
1066 + "Grant_ResPerm_Sys WHERE AccessorResourceId = ? AND AccessedResourceId = ? AND ResourceClassId = ? AND SysPermissionId = ?";
1067
1068 // GrantResourcePermissionSys - recursive
1069 SQL_findInGrantResourcePermissionSys_ResourceID_ExternalID_BY_AccessorID_ResourceClassID_SysPermissionID_IsWithGrant
1070 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
1071 + "SELECT B.AccessedResourceId ResourceId, E.ExternalId FROM "
1072 + schemaNameAndTablePrefix
1073 + "Grant_ResPerm_Sys B "
1074 + "JOIN N ON N.AccessorResourceId = B.AccessorResourceId LEFT JOIN "
1075 + schemaNameAndTablePrefix
1076 + "ResourceExternalID E ON E.ResourceId = B.AccessedResourceId "
1077 + "WHERE B.ResourceClassId = ? AND B.SysPermissionId = ? AND ( ? IN ( 0, B.IsWithGrant ) )";
1078
1079 SQL_findInGrantResourcePermissionSys_ResourceID_ExternalID_BY_AccessorID_DomainID_ResourceClassID_SysPermissionID_IsWithGrant
1080 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
1081 + ", " + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
1082 + "SELECT B.AccessedResourceId ResourceId, E.ExternalId FROM "
1083 + schemaNameAndTablePrefix
1084 + "Grant_ResPerm_Sys B JOIN "
1085 + schemaNameAndTablePrefix
1086 + "Resource C ON C.ResourceId = B.AccessedResourceId "
1087 + "JOIN N ON N.AccessorResourceId = B.AccessorResourceId "
1088 + "JOIN S ON S.DomainId = C.DomainId LEFT JOIN "
1089 + schemaNameAndTablePrefix
1090 + "ResourceExternalID E ON E.ResourceId = B.AccessedResourceId "
1091 + "WHERE B.ResourceClassId = ? AND B.SysPermissionId = ? AND ( ? IN ( 0, B.IsWithGrant ) )";
1092
1093 SQL_findInGrantResourcePermissionSys_ResourceClassName_SysPermissionID_IsWithGrant_BY_AccessorID_AccessedID
1094 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
1095 + "SELECT B.ResourceClassName, A.SysPermissionId, A.IsWithGrant FROM "
1096 + schemaNameAndTablePrefix
1097 + "Grant_ResPerm_Sys A JOIN "
1098 + schemaNameAndTablePrefix
1099 + "ResourceClass B ON B.ResourceClassId = A.ResourceClassId "
1100 + "JOIN N ON N.AccessorResourceId = A.AccessorResourceId "
1101 + "WHERE A.AccessedResourceId = ?";
1102
1103 // GrantResourcePermissionSys - non-recursive
1104 SQL_findInGrantResourcePermissionSys_directInheritance_ResourceID_BY_AccessorID
1105 = "SELECT AccessedResourceId ResourceId FROM "
1106 + schemaNameAndTablePrefix
1107 + "Grant_ResPerm_Sys "
1108 + "WHERE AccessorResourceId = ? AND SysPermissionId = "
1109 + ResourcePermission_INHERIT.getSystemPermissionId();
1110
1111 SQL_findInGrantResourcePermissionSys_withoutInheritance_ResourceID_ExternalID_BY_AccessorID_ResourceClassID_SysPermissionID_IsWithGrant
1112 = "SELECT B.AccessedResourceId ResourceId, E.ExternalId FROM "
1113 + schemaNameAndTablePrefix
1114 + "Grant_ResPerm_Sys B LEFT JOIN "
1115 + schemaNameAndTablePrefix
1116 + "ResourceExternalID E ON E.ResourceId = B.AccessedResourceId "
1117 + "WHERE B.AccessorResourceId = ? AND B.ResourceClassId = ? AND B.SysPermissionId = ? AND ( ? IN ( 0, B.IsWithGrant ) )";
1118
1119 SQL_findInGrantResourcePermissionSys_withoutInheritance_ResourceID_ExternalID_BY_AccessorID_DomainID_ResourceClassID_SysPermissionID_IsWithGrant
1120 = "SELECT B.AccessedResourceId ResourceId, E.ExternalId FROM "
1121 + schemaNameAndTablePrefix
1122 + "Grant_ResPerm_Sys B JOIN "
1123 + schemaNameAndTablePrefix
1124 + "Resource C ON C.ResourceId = B.AccessedResourceId LEFT JOIN "
1125 + schemaNameAndTablePrefix
1126 + "ResourceExternalID E ON E.ResourceId = B.AccessedResourceId "
1127 + "WHERE B.AccessorResourceId = ? AND C.DomainId = ? AND B.ResourceClassId = ? AND B.SysPermissionId = ? AND ( ? IN ( 0, B.IsWithGrant ) )";
1128
1129 // GrantResourcePermission - common
1130 SQL_findInGrantResourcePermission_ResourceID_ExternalID_BY_AccessedID_ResourceClassID_PermissionID_IsWithGrant
1131 = "SELECT A.AccessorResourceId ResourceId, E.ExternalId FROM "
1132 + schemaNameAndTablePrefix
1133 + "Grant_ResPerm A LEFT JOIN "
1134 + schemaNameAndTablePrefix
1135 + "ResourceExternalID E ON E.ResourceId = A.AccessorResourceId "
1136 + "WHERE A.AccessedResourceId = ? AND A.ResourceClassId = ? AND A.PermissionId = ? AND ( ? IN ( 0, A.IsWithGrant ) )";
1137
1138 SQL_findInGrantResourcePermission_withoutInheritance_ResourceClassName_PermissionName_IsWithGrant_BY_AccessorID_AccessedID
1139 = "SELECT C.ResourceClassName, B.PermissionName, A.IsWithGrant FROM "
1140 + schemaNameAndTablePrefix
1141 + "Grant_ResPerm A JOIN "
1142 + schemaNameAndTablePrefix
1143 + "ResourceClassPermission B ON B.ResourceClassId = A.ResourceClassId AND B.PermissionId = A.PermissionId JOIN "
1144 + schemaNameAndTablePrefix
1145 + "ResourceClass C ON C.ResourceClassId = A.ResourceClassId "
1146 + "WHERE A.AccessorResourceId = ? AND A.AccessedResourceId = ?";
1147
1148 SQL_createInGrantResourcePermission_WITH_AccessorID_GrantorID_AccessedID_IsWithGrant_ResourceClassID_PermissionName
1149 = "INSERT INTO "
1150 + schemaNameAndTablePrefix
1151 + "Grant_ResPerm ( AccessorResourceId, GrantorResourceId, AccessedResourceId, IsWithGrant, ResourceClassId, PermissionId ) "
1152 + "SELECT ?, ?, ?, ?, A.ResourceClassId, A.PermissionId FROM "
1153 + schemaNameAndTablePrefix
1154 + "ResourceClassPermission A WHERE A.ResourceClassId = ? AND A.PermissionName = ?";
1155
1156 SQL_updateInGrantResourcePermission_SET_GrantorID_IsWithGrant_BY_AccessorID_AccessedID_ResourceClassID_PermissionName
1157 = "UPDATE "
1158 + schemaNameAndTablePrefix
1159 + "Grant_ResPerm SET GrantorResourceId = ?, IsWithGrant = ? "
1160 + "WHERE AccessorResourceId = ? AND AccessedResourceId = ? AND ResourceClassId = ? AND PermissionId = ( "
1161 + "SELECT A.PermissionId FROM "
1162 + schemaNameAndTablePrefix
1163 + "ResourceClassPermission A WHERE A.ResourceClassId = ResourceClassId AND A.PermissionName = ? )";
1164
1165 SQL_removeInGrantResourcePermission_BY_AccessorID_OR_AccessedID
1166 = "DELETE FROM "
1167 + schemaNameAndTablePrefix
1168 + "Grant_ResPerm WHERE AccessorResourceId = ? OR AccessedResourceId = ?";
1169
1170 SQL_removeInGrantResourcePermission_BY_AccessorID_AccessedID
1171 = "DELETE FROM "
1172 + schemaNameAndTablePrefix
1173 + "Grant_ResPerm WHERE AccessorResourceId = ? AND AccessedResourceId = ?";
1174
1175 SQL_removeInGrantResourcePermission_BY_AccessorID_AccessedID_ResourceClassID_PermissionName
1176 = "DELETE FROM "
1177 + schemaNameAndTablePrefix
1178 + "Grant_ResPerm WHERE AccessorResourceId = ? AND AccessedResourceId = ? AND ResourceClassId = ? AND PermissionId = ( "
1179 + "SELECT A.PermissionId FROM "
1180 + schemaNameAndTablePrefix
1181 + "ResourceClassPermission A WHERE A.ResourceClassId = ResourceClassId AND A.PermissionName = ? )";
1182
1183 // GrantResourcePermission - recursive
1184 SQL_findInGrantResourcePermission_ResourceID_ExternalID_BY_AccessorID_ResourceClassID_PermissionID_IsWithGrant
1185 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
1186 + "SELECT B.AccessedResourceId ResourceId, E.ExternalId FROM "
1187 + schemaNameAndTablePrefix
1188 + "Grant_ResPerm B "
1189 + "JOIN N ON N.AccessorResourceId = B.AccessorResourceId LEFT JOIN "
1190 + schemaNameAndTablePrefix
1191 + "ResourceExternalID E ON E.ResourceId = B.AccessedResourceId "
1192 + "WHERE B.ResourceClassId = ? AND B.PermissionId = ? AND ( ? IN ( 0, B.IsWithGrant ) )";
1193
1194 SQL_findInGrantResourcePermission_ResourceID_ExternalID_BY_AccessorID_DomainID_ResourceClassID_PermissionID_IsWithGrant
1195 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
1196 + ", " + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
1197 + "SELECT B.AccessedResourceId ResourceId, E.ExternalId FROM "
1198 + schemaNameAndTablePrefix
1199 + "Grant_ResPerm B JOIN "
1200 + schemaNameAndTablePrefix
1201 + "Resource C ON C.ResourceId = B.AccessedResourceId "
1202 + "JOIN N ON N.AccessorResourceId = B.AccessorResourceId "
1203 + "JOIN S ON S.DomainId = C.DomainId LEFT JOIN "
1204 + schemaNameAndTablePrefix
1205 + "ResourceExternalID E ON E.ResourceId = B.AccessedResourceId "
1206 + "WHERE B.ResourceClassId = ? AND B.PermissionId = ? AND ( ? IN ( 0, B.IsWithGrant ) )";
1207
1208 SQL_findInGrantResourcePermission_ResourceClassName_PermissionName_IsWithGrant_BY_AccessorID_AccessedID
1209 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
1210 + "SELECT C.ResourceClassName, B.PermissionName, A.IsWithGrant FROM "
1211 + schemaNameAndTablePrefix
1212 + "Grant_ResPerm A JOIN "
1213 + schemaNameAndTablePrefix
1214 + "ResourceClassPermission B ON B.ResourceClassId = A.ResourceClassId AND B.PermissionId = A.PermissionId JOIN "
1215 + schemaNameAndTablePrefix
1216 + "ResourceClass C ON C.ResourceClassId = A.ResourceClassId "
1217 + "JOIN N ON N.AccessorResourceId = A.AccessorResourceId "
1218 + "WHERE A.AccessedResourceId = ?";
1219
1220 // GrantResourcePermission - non-recursive
1221 SQL_findInGrantResourcePermission_withoutInheritance_ResourceID_ExternalID_BY_AccessorID_ResourceClassID_PermissionID_IsWithGrant
1222 = "SELECT A.AccessedResourceId ResourceId, E.ExternalId FROM "
1223 + schemaNameAndTablePrefix
1224 + "Grant_ResPerm A LEFT JOIN "
1225 + schemaNameAndTablePrefix
1226 + "ResourceExternalID E ON E.ResourceId = A.AccessedResourceId "
1227 + "WHERE A.AccessorResourceId = ? AND A.ResourceClassId = ? AND A.PermissionId = ? AND ( ? IN ( 0, A.IsWithGrant ) )";
1228
1229 SQL_findInGrantResourcePermission_withoutInheritance_ResourceID_ExternalID_BY_AccessorID_DomainID_ResourceClassID_PermissionID_IsWithGrant
1230 = "SELECT A.AccessedResourceId ResourceId, E.ExternalId FROM "
1231 + schemaNameAndTablePrefix
1232 + "Grant_ResPerm A JOIN "
1233 + schemaNameAndTablePrefix
1234 + "Resource B ON A.AccessedResourceId=B.ResourceId LEFT JOIN "
1235 + schemaNameAndTablePrefix
1236 + "ResourceExternalID E ON E.ResourceId = A.AccessedResourceId "
1237 + "WHERE A.AccessorResourceId = ? AND B.DomainId = ? AND A.ResourceClassId = ? AND A.PermissionId = ? AND ( ? IN ( 0, A.IsWithGrant ) )";
1238
1239 // GrantGlobalResourcePermissionSys - common
1240 SQL_findInGrantGlobalResourcePermissionSys_withoutInheritance_SysPermissionID_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID
1241 = "SELECT A.SysPermissionId, A.IsWithGrant FROM "
1242 + schemaNameAndTablePrefix
1243 + "Grant_Global_ResPerm_Sys A "
1244 + "WHERE A.AccessorResourceId = ? AND A.AccessedDomainId = ? AND A.ResourceClassId = ?";
1245
1246 SQL_findInGrantGlobalResourcePermissionSys_withoutInheritance_ResourceDomainName_ResourceClassName_SysPermissionID_IsWithGrant_BY_AccessorID
1247 = "SELECT C.DomainName, B.ResourceClassName, A.SysPermissionId, A.IsWithGrant FROM "
1248 + schemaNameAndTablePrefix
1249 + "Grant_Global_ResPerm_Sys A JOIN "
1250 + schemaNameAndTablePrefix
1251 + "ResourceClass B ON B.ResourceClassId = A.ResourceClassId JOIN "
1252 + schemaNameAndTablePrefix
1253 + "Domain C ON C.DomainId = A.AccessedDomainId "
1254 + "WHERE A.AccessorResourceId = ?";
1255
1256 SQL_createInGrantGlobalResourcePermissionSys_WITH_AccessorID_GrantorID_AccessedDomainID_IsWithGrant_ResourceClassID_SysPermissionID
1257 = "INSERT INTO "
1258 + schemaNameAndTablePrefix
1259 + "Grant_Global_ResPerm_Sys ( AccessorResourceId, GrantorResourceId, AccessedDomainId, IsWithGrant, ResourceClassId, SysPermissionId ) "
1260 + "VALUES ( ?, ?, ?, ?, ?, ? )";
1261
1262 SQL_updateInGrantGlobalResourcePermissionSys_SET_GrantorID_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID_SysPermissionID
1263 = "UPDATE "
1264 + schemaNameAndTablePrefix
1265 + "Grant_Global_ResPerm_Sys SET GrantorResourceId = ?, IsWithGrant = ? "
1266 + "WHERE AccessorResourceId = ? AND AccessedDomainId = ? AND ResourceClassId = ? AND SysPermissionId = ?";
1267
1268 SQL_removeInGrantGlobalResourcePermissionSys_BY_AccessorID
1269 = "DELETE FROM "
1270 + schemaNameAndTablePrefix
1271 + "Grant_Global_ResPerm_Sys WHERE AccessorResourceId = ?";
1272
1273 SQL_removeInGrantGlobalResourcePermissionSys_BY_AccessedDomainId
1274 = "DELETE FROM "
1275 + schemaNameAndTablePrefix
1276 + "Grant_Global_ResPerm_Sys WHERE AccessedDomainId = ?";
1277
1278 SQL_removeInGrantGlobalResourcePermissionSys_BY_AccessorID_AccessedDomainID_ResourceClassID
1279 = "DELETE FROM "
1280 + schemaNameAndTablePrefix
1281 + "Grant_Global_ResPerm_Sys WHERE AccessorResourceId = ? AND AccessedDomainId = ? AND ResourceClassId = ?";
1282
1283 SQL_removeInGrantGlobalResourcePermissionSys_BY_AccessorID_AccessedDomainID_ResourceClassID_SysPermissionID
1284 = "DELETE FROM "
1285 + schemaNameAndTablePrefix
1286 + "Grant_Global_ResPerm_Sys WHERE AccessorResourceId = ? AND AccessedDomainId = ? AND ResourceClassId = ? AND SysPermissionId = ?";
1287
1288 // GrantGlobalResourcePermissionSys - recursive
1289 SQL_findInGrantGlobalResourcePermissionSys_ResourceID_ExternalID_BY_AccessorID_ResourceClassID_SysPermissionID_IsWithGrant_ResourceClassID
1290 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
1291 + ", R( DomainId ) AS "
1292 // this sub query is the starting set for the domain recursion, it returns all the direct
1293 // resources domains that the accessor has the specified system permission on
1294 + "( SELECT B.AccessedDomainId FROM "
1295 + schemaNameAndTablePrefix
1296 + "Grant_Global_ResPerm_Sys B "
1297 + "JOIN N ON N.AccessorResourceId = B.AccessorResourceId "
1298 + "WHERE B.ResourceClassId = ? AND B.SysPermissionId = ? AND ( ? IN ( 0, B.IsWithGrant ) ) "
1299 // now we find the nested domains that the accessor can reach from the direct set above
1300 + unionClause + " SELECT Rplus1.DomainId FROM "
1301 + schemaNameAndTablePrefix
1302 + "Domain Rplus1, R "
1303 + "WHERE Rplus1.ParentDomainId IS NOT NULL AND Rplus1.ParentDomainId = R.DomainId ) "
1304 // finally we get the resources of the specified type in the domains we computed above
1305 + "SELECT A.ResourceId, E.ExternalId FROM "
1306 + schemaNameAndTablePrefix
1307 + "Resource A "
1308 + "JOIN R ON R.DomainId = A.DomainId LEFT JOIN "
1309 + schemaNameAndTablePrefix
1310 + "ResourceExternalID E ON E.ResourceId = A.ResourceId "
1311 + "WHERE A.ResourceClassId = ?";
1312
1313 SQL_findInGrantGlobalResourcePermissionSys_ResourceID_ExternalID_BY_AccessorID_DomainID_ResourceClassID_SysPermissionID_IsWithGrant_ResourceClassID
1314 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
1315 + ", " + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
1316 + ", R( DomainId ) AS "
1317 // this sub query is the starting set for the domain recursion, it returns all the direct
1318 // resources domains that the accessor has the specified system permission on
1319 + "( SELECT B.AccessedDomainId FROM "
1320 + schemaNameAndTablePrefix
1321 + "Grant_Global_ResPerm_Sys B "
1322 + "JOIN N ON N.AccessorResourceId = B.AccessorResourceId "
1323 + "WHERE B.ResourceClassId = ? AND B.SysPermissionId = ? AND ( ? IN ( 0, B.IsWithGrant ) ) "
1324 // now we find the nested domains that the accessor can reach from the direct set above
1325 + unionClause + " SELECT Rplus1.DomainId FROM "
1326 + schemaNameAndTablePrefix
1327 + "Domain Rplus1, R "
1328 + "WHERE Rplus1.ParentDomainId IS NOT NULL AND Rplus1.ParentDomainId = R.DomainId ) "
1329 // finally we get the resources of the specified type in the domains we computed above
1330 + "SELECT A.ResourceId, E.ExternalId FROM "
1331 + schemaNameAndTablePrefix
1332 + "Resource A "
1333 + "JOIN R ON R.DomainId = A.DomainId "
1334 + "JOIN S ON S.DomainId = A.DomainId LEFT JOIN "
1335 + schemaNameAndTablePrefix
1336 + "ResourceExternalID E ON E.ResourceId = A.ResourceId "
1337 + "WHERE A.ResourceClassId = ?";
1338
1339 SQL_findInGrantGlobalResourcePermissionSys_SysPermissionID_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID
1340 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
1341 + SQL_findAncestorsRecursiveInDomain_DomainID_BY_DomainID
1342 + "SELECT A.SysPermissionId, A.IsWithGrant FROM "
1343 + schemaNameAndTablePrefix
1344 + "Grant_Global_ResPerm_Sys A "
1345 + "JOIN N ON N.AccessorResourceId = A.AccessorResourceId "
1346 + "JOIN R ON R.DomainId = A.AccessedDomainId "
1347 + "WHERE A.ResourceClassId = ?";
1348
1349 SQL_findInGrantGlobalResourcePermissionSys_ResourceDomainName_ResourceClassName_SysPermissionID_IsWithGrant_BY_AccessorID
1350 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
1351 + ", P( AccessedDomainId, ResourceClassId, SysPermissionId, IsWithGrant ) AS "
1352 + "( SELECT A.AccessedDomainId, A.ResourceClassId, A.SysPermissionId, A.IsWithGrant FROM "
1353 + schemaNameAndTablePrefix
1354 + "Grant_Global_ResPerm_Sys A "
1355 + "JOIN N ON N.AccessorResourceId = A.AccessorResourceId "
1356 + unionClause + " "
1357 + "SELECT Pplus1.DomainId, P.ResourceClassId, P.SysPermissionId, P.IsWithGrant FROM "
1358 + schemaNameAndTablePrefix
1359 + "Domain Pplus1, P "
1360 + "WHERE Pplus1.ParentDomainId IS NOT NULL AND Pplus1.ParentDomainId = P.AccessedDomainId ) "
1361 + "SELECT C.DomainName, B.ResourceClassName, P.SysPermissionId, P.IsWithGrant FROM P JOIN "
1362 + schemaNameAndTablePrefix
1363 + "ResourceClass B ON B.ResourceClassId = P.ResourceClassId JOIN "
1364 + schemaNameAndTablePrefix
1365 + "Domain C ON C.DomainId = P.AccessedDomainId";
1366
1367 SQL_removeInGrantGlobalResourcePermissionSys_withDescendants_BY_AccessedDomainId
1368 = sqlProfile.isRecursiveDeleteEnabled()
1369 ? (SQLDialect.Oracle_11_2.equals(sqlProfile.getSqlDialect()))
1370 ? "DELETE FROM "
1371 + schemaNameAndTablePrefix
1372 + "Grant_Global_ResPerm_Sys WHERE AccessedDomainId IN ( "
1373 + withClause + " "
1374 + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
1375 + "SELECT DomainId FROM S )"
1376 : withClause + " "
1377 + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
1378 + "DELETE FROM "
1379 + schemaNameAndTablePrefix
1380 + "Grant_Global_ResPerm_Sys WHERE AccessedDomainId IN ( SELECT DomainId FROM S )"
1381 : null;
1382
1383 // GrantGlobalResourcePermissionSys - non-recursive
1384 SQL_findInGrantGlobalResourcePermissionSys_withoutInheritance_ResourceDomainID_BY_AccessorID_ResourceClassID_SysPermissionID_IsWithGrant
1385 = "SELECT AccessedDomainId DomainId FROM "
1386 + schemaNameAndTablePrefix
1387 + "Grant_Global_ResPerm_Sys "
1388 + "WHERE AccessorResourceId = ? AND ResourceClassId = ? AND SysPermissionId = ? AND ( ? IN ( 0, IsWithGrant ) )";
1389
1390 // GrantGlobalResourcePermission - common
1391 SQL_findInGrantGlobalResourcePermission_withoutInheritance_PermissionName_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID
1392 = "SELECT B.PermissionName, A.IsWithGrant FROM "
1393 + schemaNameAndTablePrefix
1394 + "Grant_Global_ResPerm A JOIN "
1395 + schemaNameAndTablePrefix
1396 + "ResourceClassPermission B ON B.ResourceClassId = A.ResourceClassId AND B.PermissionId = A.PermissionId "
1397 + "WHERE A.AccessorResourceId = ? AND A.AccessedDomainId = ? AND A.ResourceClassId = ?";
1398
1399 SQL_findInGrantGlobalResourcePermission_withoutInheritance_ResourceDomainName_ResourceClassName_PermissionName_IsWithGrant_BY_AccessorID
1400 = "SELECT D.DomainName, C.ResourceClassName, B.PermissionName, A.IsWithGrant FROM "
1401 + schemaNameAndTablePrefix
1402 + "Grant_Global_ResPerm A JOIN "
1403 + schemaNameAndTablePrefix
1404 + "ResourceClassPermission B ON B.ResourceClassId = A.ResourceClassId AND B.PermissionId = A.PermissionId JOIN "
1405 + schemaNameAndTablePrefix
1406 + "ResourceClass C ON C.ResourceClassId = A.ResourceClassId JOIN "
1407 + schemaNameAndTablePrefix
1408 + "Domain D ON D.DomainId = A.AccessedDomainId "
1409 + "WHERE A.AccessorResourceId = ?";
1410
1411 SQL_createInGrantGlobalResourcePermission_WITH_AccessorID_GrantorID_AccessedDomainID_IsWithGrant_ResourceClassID_PermissionName
1412 = "INSERT INTO "
1413 + schemaNameAndTablePrefix
1414 + "Grant_Global_ResPerm ( AccessorResourceId, GrantorResourceId, AccessedDomainId, IsWithGrant, ResourceClassId, PermissionId ) "
1415 + "SELECT ?, ?, ?, ?, A.ResourceClassId, A.PermissionId FROM "
1416 + schemaNameAndTablePrefix
1417 + "ResourceClassPermission A WHERE A.ResourceClassId = ? AND A.PermissionName = ?";
1418
1419 SQL_updateInGrantGlobalResourcePermission_SET_GrantorID_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID_PermissionName
1420 = "UPDATE "
1421 + schemaNameAndTablePrefix
1422 + "Grant_Global_ResPerm SET GrantorResourceId = ?, IsWithGrant = ? "
1423 + "WHERE AccessorResourceId = ? AND AccessedDomainId = ? AND ResourceClassId = ? AND PermissionId = ( "
1424 + "SELECT A.PermissionId FROM "
1425 + schemaNameAndTablePrefix
1426 + "ResourceClassPermission A WHERE A.ResourceClassId = ResourceClassId AND A.PermissionName = ? )";
1427
1428 SQL_removeInGrantGlobalResourcePermission_BY_AccessorID
1429 = "DELETE FROM "
1430 + schemaNameAndTablePrefix
1431 + "Grant_Global_ResPerm WHERE AccessorResourceId = ?";
1432
1433 SQL_removeInGrantGlobalResourcePermission_BY_AccessedDomainId
1434 = "DELETE FROM "
1435 + schemaNameAndTablePrefix
1436 + "Grant_Global_ResPerm WHERE AccessedDomainId = ?";
1437
1438 SQL_removeInGrantGlobalResourcePermission_BY_AccessorID_AccessedDomainID_ResourceClassID
1439 = "DELETE FROM "
1440 + schemaNameAndTablePrefix
1441 + "Grant_Global_ResPerm WHERE AccessorResourceId = ? AND AccessedDomainId = ? AND ResourceClassId = ?";
1442
1443 SQL_removeInGrantGlobalResourcePermission_BY_AccessorID_AccessedDomainID_ResourceClassID_PermissionName
1444 = "DELETE FROM "
1445 + schemaNameAndTablePrefix
1446 + "Grant_Global_ResPerm WHERE AccessorResourceId = ? AND AccessedDomainId = ? AND ResourceClassId = ? AND PermissionId = ( "
1447 + "SELECT A.PermissionId FROM "
1448 + schemaNameAndTablePrefix
1449 + "ResourceClassPermission A WHERE A.ResourceClassId = ResourceClassId AND A.PermissionName = ? )";
1450
1451 // GrantGlobalResourcePermission - recursive
1452 SQL_findInGrantGlobalResourcePermission_ResourceID_ExternalID_BY_AccessorID_ResourceClassID_PermissionID_IsWithGrant_ResourceClassID
1453 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
1454 + ", R( DomainId ) AS "
1455 // this sub query is the starting set for the domain recursion, it returns all the direct
1456 // resources domains that the accessor has the specified system permission on
1457 + "( SELECT B.AccessedDomainId FROM "
1458 + schemaNameAndTablePrefix
1459 + "Grant_Global_ResPerm B "
1460 + "JOIN N ON N.AccessorResourceId = B.AccessorResourceId "
1461 + "WHERE B.ResourceClassId = ? AND B.PermissionId = ? AND ( ? IN ( 0, B.IsWithGrant ) ) "
1462 // now we find the nested domains that the accessor can reach from the direct set above
1463 + unionClause + " SELECT Rplus1.DomainId FROM "
1464 + schemaNameAndTablePrefix
1465 + "Domain Rplus1, R "
1466 + "WHERE Rplus1.ParentDomainId IS NOT NULL AND Rplus1.ParentDomainId = R.DomainId ) "
1467 // finally we get the resources of the specified type in the domains we computed above
1468 + "SELECT A.ResourceId, E.ExternalId FROM "
1469 + schemaNameAndTablePrefix
1470 + "Resource A "
1471 + "JOIN R ON R.DomainId = A.DomainId LEFT JOIN "
1472 + schemaNameAndTablePrefix
1473 + "ResourceExternalID E ON E.ResourceId = A.ResourceId "
1474 + "WHERE A.ResourceClassId = ?";
1475
1476 SQL_findInGrantGlobalResourcePermission_ResourceID_ExternalID_BY_AccessorID_DomainID_ResourceClassID_PermissionID_IsWithGrant_ResourceClassID
1477 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
1478 + ", " + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
1479 + ", R( DomainId ) AS "
1480 // this sub query is the starting set for the domain recursion, it returns all the direct
1481 // resources domains that the accessor has the specified system permission on
1482 + "( SELECT B.AccessedDomainId FROM "
1483 + schemaNameAndTablePrefix
1484 + "Grant_Global_ResPerm B "
1485 + "JOIN N ON N.AccessorResourceId = B.AccessorResourceId "
1486 + "WHERE B.ResourceClassId = ? AND B.PermissionId = ? AND ( ? IN ( 0, B.IsWithGrant ) ) "
1487 // now we find the nested domains that the accessor can reach from the direct set above
1488 + unionClause + " SELECT Rplus1.DomainId FROM "
1489 + schemaNameAndTablePrefix
1490 + "Domain Rplus1, R "
1491 + "WHERE Rplus1.ParentDomainId IS NOT NULL AND Rplus1.ParentDomainId = R.DomainId ) "
1492 // finally we get the resources of the specified type in the domains we computed above
1493 + "SELECT A.ResourceId, E.ExternalId FROM "
1494 + schemaNameAndTablePrefix
1495 + "Resource A "
1496 + "JOIN R ON R.DomainId = A.DomainId "
1497 + "JOIN S ON S.DomainId = A.DomainId LEFT JOIN "
1498 + schemaNameAndTablePrefix
1499 + "ResourceExternalID E ON E.ResourceId = A.ResourceId "
1500 + "WHERE A.ResourceClassId = ?";
1501
1502 SQL_findInGrantGlobalResourcePermission_PermissionName_IsWithGrant_BY_AccessorID_AccessedDomainID_ResourceClassID
1503 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
1504 + SQL_findAncestorsRecursiveInDomain_DomainID_BY_DomainID
1505 + "SELECT B.PermissionName, A.IsWithGrant FROM "
1506 + schemaNameAndTablePrefix
1507 + "Grant_Global_ResPerm A JOIN "
1508 + schemaNameAndTablePrefix
1509 + "ResourceClassPermission B ON B.ResourceClassId = A.ResourceClassId AND B.PermissionId = A.PermissionId "
1510 + "JOIN N ON N.AccessorResourceId = A.AccessorResourceId "
1511 + "JOIN R ON R.DomainId = A.AccessedDomainId "
1512 + "WHERE A.ResourceClassId = ?";
1513
1514 SQL_findInGrantGlobalResourcePermission_ResourceDomainName_ResourceClassName_PermissionName_IsWithGrant_BY_AccessorID
1515 = SQL_findRecursiveInGrantResourcePermissionSys_AccessorID_BY_AccessorID
1516 + ", P( AccessedDomainId, ResourceClassId, PermissionId, IsWithGrant ) AS "
1517 + "( SELECT A.AccessedDomainId, A.ResourceClassId, A.PermissionId, A.IsWithGrant FROM "
1518 + schemaNameAndTablePrefix
1519 + "Grant_Global_ResPerm A "
1520 + "JOIN N ON N.AccessorResourceId = A.AccessorResourceId "
1521 + unionClause + " "
1522 + "SELECT Pplus1.DomainId, P.ResourceClassId, P.PermissionId, P.IsWithGrant FROM "
1523 + schemaNameAndTablePrefix
1524 + "Domain Pplus1, P "
1525 + "WHERE Pplus1.ParentDomainId IS NOT NULL AND Pplus1.ParentDomainId = P.AccessedDomainId ) "
1526 + "SELECT D.DomainName, C.ResourceClassName, B.PermissionName, P.IsWithGrant FROM P JOIN "
1527 + schemaNameAndTablePrefix
1528 + "ResourceClassPermission B ON B.ResourceClassId = P.ResourceClassId AND B.PermissionId = P.PermissionId JOIN "
1529 + schemaNameAndTablePrefix
1530 + "ResourceClass C ON C.ResourceClassId = P.ResourceClassId JOIN "
1531 + schemaNameAndTablePrefix
1532 + "Domain D ON D.DomainId = P.AccessedDomainId";
1533
1534 SQL_removeInGrantGlobalResourcePermission_withDescendants_BY_AccessedDomainId
1535 = sqlProfile.isRecursiveDeleteEnabled()
1536 ? (SQLDialect.Oracle_11_2.equals(sqlProfile.getSqlDialect()))
1537 ? "DELETE FROM "
1538 + schemaNameAndTablePrefix
1539 + "Grant_Global_ResPerm WHERE AccessedDomainId IN ( "
1540 + withClause + " "
1541 + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
1542 + "SELECT DomainId FROM S )"
1543 : withClause + " "
1544 + SQL_findDescendantsRecursiveInDomain_DomainID_BY_DomainID
1545 + "DELETE FROM "
1546 + schemaNameAndTablePrefix
1547 + "Grant_Global_ResPerm WHERE AccessedDomainId IN ( SELECT DomainId FROM S )"
1548 : null;
1549
1550 // GrantGlobalResourcePermission - non-recursive
1551 SQL_findInGrantGlobalResourcePermission_withoutInheritance_ResourceDomainID_BY_AccessorID_ResourceClassID_PermissionID_IsWithGrant
1552 = "SELECT AccessedDomainId DomainId FROM "
1553 + schemaNameAndTablePrefix
1554 + "Grant_Global_ResPerm "
1555 + "WHERE AccessorResourceId = ? AND ResourceClassId = ? AND PermissionId = ? AND ( ? IN ( 0, IsWithGrant ) )";
1556
1557 // Key generators
1558 SQL_nextResourceID
1559 = dialectSpecificSQLGenerator.nextSequenceValueStatement(schemaNameAndTablePrefix + "ResourceId");
1560 }
1561
1562 public SQLProfile getSqlProfile() {
1563 return sqlProfile;
1564 }
1565
1566 public SQLDialect getSqlDialect() {
1567 return sqlProfile.getSqlDialect();
1568 }
1569 }