コード例 #1
0
  public static void setThreadValues(User user) {
    if (user == null) {
      PrincipalThreadLocal.setName(null);
      PermissionThreadLocal.setPermissionChecker(null);

      return;
    }

    long userId = user.getUserId();

    String name = String.valueOf(userId);

    PrincipalThreadLocal.setName(name);

    try {
      PermissionChecker permissionChecker = PermissionThreadLocal.getPermissionChecker();

      if (permissionChecker == null) {
        permissionChecker =
            (PermissionChecker) Class.forName(PropsValues.PERMISSIONS_CHECKER).newInstance();
      }

      permissionChecker.init(user);

      PermissionThreadLocal.setPermissionChecker(permissionChecker);
    } catch (Exception e) {
      _log.error(e, e);
    }
  }
コード例 #2
0
  public static void clearResourceBlockCache(long companyId, long groupId, String name) {

    if (ExportImportThreadLocal.isImportInProcess()
        || !PermissionThreadLocal.isFlushResourceBlockEnabled(companyId, groupId, name)) {

      return;
    }

    _resourceBlockIdsBagCacheIndexer.removeKeys(
        ResourceBlockIdsBagKeyIndexEncoder.encode(companyId, groupId, name));
  }
コード例 #3
0
  public static void clearResourcePermissionCache(int scope, String name, String primKey) {

    if (ExportImportThreadLocal.isImportInProcess()
        || !PermissionThreadLocal.isFlushResourcePermissionEnabled(name, primKey)) {

      return;
    }

    if (scope == ResourceConstants.SCOPE_INDIVIDUAL) {
      _permissionPortalCacheNamePrimKeyIndexer.removeKeys(
          PermissionKeyNamePrimKeyIndexEncoder.encode(name, primKey));
    } else if (scope == ResourceConstants.SCOPE_GROUP) {
      _permissionPortalCacheGroupIdIndexer.removeKeys(Long.valueOf(primKey));
    } else {
      _permissionPortalCache.removeAll();
    }
  }