Here is what i did

package org.tynamo.hibernate.services;

import java.util.List;

import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.authz.annotation.RequiresRoles;
import org.hibernate.criterion.DetachedCriteria;
import org.tynamo.descriptor.CollectionDescriptor;
import org.tynamo.descriptor.TynamoClassDescriptor;
import org.tynamo.services.PersistenceService;

public interface HibernatePersistenceService extends PersistenceService
{
        @RequiresRoles("administrator")
        @RequiresPermissions("*:create, *:update")
        <T> T save(T instance);

        @RequiresRoles("administrator")
        @RequiresPermissions("*:delete")
        void remove(Object instance);

        public <T> T getInstance(Class<T> type, DetachedCriteria criteria);

        public <T> List<T> getInstances(Class<T> type, DetachedCriteria 
criteria);

        public <T> List<T> getInstances(Class<T> type, DetachedCriteria 
criteria,
int startIndex, int maxResults);

        public int count(Class type, DetachedCriteria criteria);

        /**
         * @param model to attach to the current persistence session
         */
        public void reattach(Object model);

        /**
         * Does a query by example
         *
         * @param example
         * @return
         */
        public <T> List<T> getInstances(T example, TynamoClassDescriptor
classDescriptor);

        public <T> T merge(T instance);

        @RequiresRoles("administrator")
        @RequiresPermissions("*:create, *:update")
        public <T> T saveOrUpdate(T instance);

        public List findByQuery(String queryString);

        public List findByQuery(String queryString, QueryParameter... 
parameters);

        public List findByQuery(String queryString, int startIndex, int 
maxResults,
QueryParameter... parameters);

        boolean isTransient(Object data, TynamoClassDescriptor classDescriptor);

        @RequiresRoles("administrator")
        @RequiresPermissions("*:create, *:update")
        <T> T addToCollection(CollectionDescriptor descriptor, T element, Object
collectionOwner);

        @RequiresRoles("administrator")
        @RequiresPermissions("*:delete")
        void removeFromCollection(CollectionDescriptor descriptor, Object 
element,
Object collectionOwner);
}




--
View this message in context: 
http://shiro-user.582556.n2.nabble.com/chicken-or-egg-first-dilemma-how-to-assign-perms-to-user-tp7578511p7578513.html
Sent from the Shiro User mailing list archive at Nabble.com.

Reply via email to