private void setUser( AccessRight defaultRight, String userGridId, String userId, String serviceGridId, String serviceId, boolean permitted) throws DaoException { AccessRightDao arDao = getAccessRightDao(); if (defaultRight.isPermitted() != permitted) { arDao.setAccessRight(userGridId, userId, serviceGridId, serviceId, permitted); } else { arDao.deleteAccessRight(userGridId, userId, serviceGridId, serviceId); } AccessLimitDao alDao = getAccessLimitDao(); alDao.deleteAccessLimits(userGridId, userId, serviceGridId, serviceId); if (permitted) { for (AccessLimit l : alDao.getServiceDefaultAccessLimits(userGridId, serviceGridId, serviceId)) { alDao.setAccessLimit( userGridId, userId, serviceGridId, serviceId, l.getPeriod(), l.getLimitType(), l.getLimitCount()); } } }
/* * (non-Javadoc) * @see jp.go.nict.langrid.p2pgridbasis.dao#updateData(jp.go.nict.langrid.p2pgridbasis.data.Data) */ public synchronized boolean updateDataTarget(Data data) throws DataDaoException, UnmatchedDataTypeException { logger.debug("[AccessLimit] : " + data.getId()); if (data.getClass().equals(AccessLimitData.class) == false) { throw new UnmatchedDataTypeException( AccessLimitData.class.toString(), data.getClass().toString()); } boolean updated = false; if (data.getAttributes().getKeys().contains("IsDeleted") && data.getAttributes().getValue("IsDeleted").equals("true")) { try { logger.debug("Delete"); AccessLimitData accessLimitData = (AccessLimitData) data; AccessLimit limit = accessLimitData.getAccessLimit(); removeEntityListener(); dao.deleteAccessLimit( limit.getUserGridId(), limit.getUserId(), limit.getServiceGridId(), limit.getServiceId(), limit.getPeriod(), limit.getLimitType()); updated = true; setEntityListener(); getController().baseSummaryAdd(data); } catch (DataConvertException e) { throw new DataDaoException(e); } catch (ServiceNotFoundException e) { // // try { getController().baseSummaryAdd(data); } catch (ControllerException e1) { e1.printStackTrace(); } } catch (DaoException e) { throw new DataDaoException(e); } catch (ParseException e) { throw new DataDaoException(e); } catch (ControllerException e) { throw new DataDaoException(e); } return updated; } AccessLimit limit = null; try { AccessLimitData accessLimitData = (AccessLimitData) data; limit = accessLimitData.getAccessLimit(); logger.debug("New or UpDate"); removeEntityListener(); daoContext.beginTransaction(); daoContext.mergeEntity(limit); daoContext.commitTransaction(); setEntityListener(); getController().baseSummaryAdd(data); updated = true; } catch (ParseException e) { throw new DataDaoException(e); } catch (DaoException e) { throw new DataDaoException(e); } catch (DataConvertException e) { throw new DataDaoException(e); } catch (ControllerException e) { throw new DataDaoException(e); } return updated; }