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 }