/** * @see org.opencms.db.I_CmsSubscriptionDriver#unsubscribeAllResourcesFor(org.opencms.db.CmsDbContext, java.lang.String, org.opencms.security.CmsPrincipal) */ public void unsubscribeAllResourcesFor(CmsDbContext dbc, String poolName, CmsPrincipal principal) throws CmsDataAccessException { try { if (principal != null) { StringBuffer conditions = new StringBuffer(256); conditions.append(m_sqlManager.readQuery(C_SUBSCRIPTION_DELETE)); conditions.append(BEGIN_CONDITION); conditions.append(m_sqlManager.readQuery(C_SUBSCRIPTION_DELETE_FILTER_PRINCIPAL)); conditions.append(END_CONDITION); Query q = m_sqlManager.createQueryFromJPQL(dbc, conditions.toString()); q.setParameter(1, principal.getId().toString()); @SuppressWarnings("unchecked") List<CmsDAOSubscription> res = q.getResultList(); for (CmsDAOSubscription sb : res) { m_sqlManager.remove(dbc, sb); } } } catch (PersistenceException e) { throw new CmsDbSqlException(Messages.get().container(Messages.ERR_GENERIC_SQL_1, C_SUBSCRIPTION_DELETE), e); } }
/** * @see org.opencms.db.I_CmsSubscriptionDriver#unsubscribeResourceFor(org.opencms.db.CmsDbContext, java.lang.String, org.opencms.security.CmsPrincipal, org.opencms.file.CmsResource) */ public void unsubscribeResourceFor(CmsDbContext dbc, String poolName, CmsPrincipal principal, CmsResource resource) throws CmsDataAccessException { try { StringBuffer conditions = new StringBuffer(256); conditions.append(m_sqlManager.readQuery(C_SUBSCRIPTION_DELETE)); conditions.append(BEGIN_CONDITION); conditions.append(m_sqlManager.readQuery(C_SUBSCRIPTION_DELETE_FILTER_PRINCIPAL)); conditions.append(END_CONDITION); conditions.append(BEGIN_INCLUDE_CONDITION); conditions.append(m_sqlManager.readQuery(C_SUBSCRIPTION_DELETE_FILTER_STRUCTURE)); conditions.append(END_CONDITION); Query q = m_sqlManager.createQueryFromJPQL(dbc, conditions.toString()); q.setParameter(1, principal.getId().toString()); q.setParameter(2, resource.getStructureId().toString()); @SuppressWarnings("unchecked") List<CmsDAOSubscription> res = q.getResultList(); for (CmsDAOSubscription sb : res) { m_sqlManager.remove(dbc, sb); } } catch (PersistenceException e) { throw new CmsDbSqlException(Messages.get().container(Messages.ERR_GENERIC_SQL_1, C_SUBSCRIPTION_DELETE), e); } }
/** * @see org.opencms.db.I_CmsSubscriptionDriver#unsubscribeAllResourcesFor(org.opencms.db.CmsDbContext, java.lang.String, org.opencms.security.CmsPrincipal) */ public void unsubscribeAllResourcesFor(CmsDbContext dbc, String poolName, CmsPrincipal principal) throws CmsDataAccessException { PreparedStatement stmt = null; Connection conn = null; try { if (principal != null) { conn = getSqlManager().getConnection(poolName); StringBuffer conditions = new StringBuffer(256); conditions.append(m_sqlManager.readQuery("C_SUBSCRIPTION_DELETE")); conditions.append(BEGIN_CONDITION); conditions.append(m_sqlManager.readQuery("C_SUBSCRIPTION_DELETE_FILTER_PRINCIPAL")); conditions.append(END_CONDITION); stmt = m_sqlManager.getPreparedStatementForSql(conn, conditions.toString()); stmt.setString(1, principal.getId().toString()); stmt.executeUpdate(); } } catch (SQLException e) { throw new CmsDbSqlException( Messages.get().container(Messages.ERR_GENERIC_SQL_1, CmsDbSqlException.getErrorQuery(stmt)), e); } finally { m_sqlManager.closeAll(dbc, conn, stmt, null); } }
/** * @see org.opencms.db.I_CmsSubscriptionDriver#unsubscribeResourceFor(org.opencms.db.CmsDbContext, java.lang.String, org.opencms.security.CmsPrincipal, org.opencms.file.CmsResource) */ public void unsubscribeResourceFor(CmsDbContext dbc, String poolName, CmsPrincipal principal, CmsResource resource) throws CmsDataAccessException { PreparedStatement stmt = null; Connection conn = null; try { conn = getSqlManager().getConnection(poolName); StringBuffer conditions = new StringBuffer(256); conditions.append(m_sqlManager.readQuery("C_SUBSCRIPTION_DELETE")); conditions.append(BEGIN_CONDITION); conditions.append(m_sqlManager.readQuery("C_SUBSCRIPTION_DELETE_FILTER_PRINCIPAL")); conditions.append(END_CONDITION); conditions.append(BEGIN_INCLUDE_CONDITION); conditions.append(m_sqlManager.readQuery("C_SUBSCRIPTION_DELETE_FILTER_STRUCTURE")); conditions.append(END_CONDITION); stmt = m_sqlManager.getPreparedStatementForSql(conn, conditions.toString()); stmt.setString(1, principal.getId().toString()); stmt.setString(2, resource.getStructureId().toString()); stmt.executeUpdate(); } catch (SQLException e) { throw new CmsDbSqlException( Messages.get().container(Messages.ERR_GENERIC_SQL_1, CmsDbSqlException.getErrorQuery(stmt)), e); } finally { m_sqlManager.closeAll(dbc, conn, stmt, null); } }
conn = getSqlManager().getConnection(poolName); stmt = m_sqlManager.getPreparedStatement(conn, "C_SUBSCRIPTION_CHECK_2"); stmt.setString(1, principal.getId().toString()); stmt.setString(2, resource.getStructureId().toString()); res = stmt.executeQuery(); stmt.setString(1, principal.getId().toString()); stmt.setString(2, resource.getStructureId().toString()); stmt.executeUpdate();
/** * @see org.opencms.db.I_CmsSubscriptionDriver#readAllSubscribedResources(org.opencms.db.CmsDbContext, java.lang.String, org.opencms.security.CmsPrincipal) */ public List<CmsResource> readAllSubscribedResources(CmsDbContext dbc, String poolName, CmsPrincipal principal) throws CmsDataAccessException { CmsResource currentResource = null; List<CmsResource> resources = new ArrayList<CmsResource>(); try { Query q = m_sqlManager.createQuery(dbc, dbc.currentProject(), C_SUBSCRIPTION_READ_ALL_1); q.setParameter(1, principal.getId().toString()); @SuppressWarnings("unchecked") List<Object[]> res = q.getResultList(); for (Object[] obj : res) { currentResource = ((CmsVfsDriver)m_driverManager.getVfsDriver(dbc)).createFile( obj, dbc.currentProject().getUuid(), false); resources.add(currentResource); } } catch (PersistenceException e) { throw new CmsDbSqlException( Messages.get().container(Messages.ERR_GENERIC_SQL_1, C_SUBSCRIPTION_READ_ALL_1), e); } return resources; }
/** * @see org.opencms.db.I_CmsSubscriptionDriver#subscribeResourceFor(org.opencms.db.CmsDbContext, java.lang.String, org.opencms.security.CmsPrincipal, org.opencms.file.CmsResource) */ public void subscribeResourceFor(CmsDbContext dbc, String poolName, CmsPrincipal principal, CmsResource resource) throws CmsDataAccessException { try { Query q = m_sqlManager.createQuery(dbc, C_SUBSCRIPTION_CHECK_2); q.setParameter(1, principal.getId().toString()); q.setParameter(2, resource.getStructureId().toString()); @SuppressWarnings("unchecked") List<CmsDAOSubscription> res = q.getResultList(); // only create subscription entry if principal is not subscribed to resource if (res.size() > 0) { // do nothing } else { // subscribe principal CmsDAOSubscription sb = new CmsDAOSubscription(); sb.setPrincipalId(principal.getId().toString()); sb.setStructureId(resource.getStructureId().toString()); sb.setDateDeleted(0); m_sqlManager.persist(dbc, sb); } } catch (PersistenceException e) { throw new CmsDbSqlException( Messages.get().container(Messages.ERR_GENERIC_SQL_1, C_SUBSCRIPTION_CHECK_2), e); } }
stmt = m_sqlManager.getPreparedStatement(conn, dbc.currentProject(), "C_SUBSCRIPTION_READ_ALL_1"); stmt.setString(1, principal.getId().toString()); res = stmt.executeQuery();