@Override public Object doInHibernate(Session session) throws HibernateException, SQLException { session.enableFilter(AUTH_FILTER_NAME).setParameterList("userGroups", m_authorizationGroups); return null; }
private void enableFilter(Filter f) { org.hibernate.Filter filter = session.enableFilter( f.getName() ); for ( Map.Entry<String, ValueExpression> me: f.getParameters().entrySet() ) { Object filterValue = me.getValue().getValue(); if ( filterValue instanceof Collection ) { filter.setParameterList(me.getKey(), (Collection) filterValue); } else { filter.setParameter(me.getKey(), filterValue); } } filter.validate(); }
private Object process(ProceedingJoinPoint pjp) throws Throwable { if (AdministratorUtil.isSuper()) { return pjp.proceed(); } HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest(); String requestURI = request.getRequestURI(); for (String item : excludeURI) { if(matcher.match(item, requestURI)) { return pjp.proceed(); } } Set<Long> managedUids = (Set<Long>) request.getSession().getAttribute("managedUids"); Session session = entityManager.unwrap(Session.class); Filter filter = session.enableFilter(filterName); filter.setParameterList("creator", managedUids); Object obj = pjp.proceed(); session.disableFilter(filterName); return obj; }
@Override public void enable(Session session, EventContext ec) { final List<String> privilegeValues = new ArrayList<String>(); for (final AdminPrivilege adminPrivilege : ec.getCurrentAdminPrivileges()) { privilegeValues.add(adminPrivilege.getValue()); } Long realOwner = ec.getCurrentSudoerId(); if (realOwner == null) { realOwner = ec.getCurrentUserId(); } final int isAdmin01 = ec.isCurrentUserAdmin() ? 1 : 0; final Filter filter = session.enableFilter(getName()); filter.setParameter("real_owner", realOwner); if (privilegeValues.isEmpty()) { filter.setParameterList("privileges", Collections.singletonList("none")); } else { filter.setParameterList("privileges", privilegeValues); } enableBaseFilters(session, isAdmin01, ec.getCurrentUserId()); } }
@Override public void enableFilter(Filter f, EntityManager entityManager) { try { org.hibernate.Filter filter = getSession(entityManager).enableFilter( f.getName() ); for ( Map.Entry<String, ValueExpression> me: f.getParameters().entrySet() ) { Object filterValue = me.getValue().getValue(); if ( filterValue instanceof Collection ) { filter.setParameterList(me.getKey(), (Collection) filterValue); } else { filter.setParameter(me.getKey(), filterValue); } } filter.validate(); } catch (NotHibernateException nhe) { super.enableFilter(f, entityManager); } }
@Override public void enable(Session session, EventContext ec) { List<Long> imageIds = null; final Long shareId = ec.getCurrentShareId(); if (shareId != null) { final ShareData shareData = shares.get(shareId); if (shareData != null && shareData.enabled) { imageIds = shareData.objectMap.get(Image.class.getName()); } } if (CollectionUtils.isEmpty(imageIds)) { imageIds = ImmutableList.of(-1L); } final int isAdmin01 = ec.isCurrentUserAdmin() ? 1 : 0; final int isShare01 = isShare(ec) ? 1 : 0; final Filter filter = session.enableFilter(getName()); filter.setParameter("is_admin", isAdmin01); filter.setParameter("is_share", isShare01); filter.setParameterList("images", imageIds); enableBaseFilters(session, isAdmin01, ec.getCurrentUserId()); } }
/*** * Since we assume that the group is "-1" for this method, we have to pass * in lists of all groups as we did before group permissions (~4.2). */ public void enable(Session sess, EventContext ec) { final Filter filter = sess.enableFilter(getName()); final int share01 = isShare(ec) ? 1 : 0; final int admin01 = ec.isCurrentUserAdmin() ? 1 : 0; filter.setParameter(is_admin, admin01); filter.setParameter(SecurityFilter.is_share, share01); // ticket:2219, not checking -1 here. filter.setParameter(SecurityFilter.current_user, ec.getCurrentUserId()); filter.setParameterList(member_of_groups, configGroup(ec, ec.getMemberOfGroupsList())); filter.setParameterList(leader_of_groups, configGroup(ec, ec.getLeaderOfGroupsList())); enableBaseFilters(sess, admin01, ec.getCurrentUserId()); }