/** * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved. * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * http://www.ewcms.com */ package com.ewcms.security.acls.service; import java.util.List; import java.util.Set; import org.springframework.security.acls.model.AccessControlEntry; import org.springframework.security.acls.model.MutableAclService; import org.springframework.security.acls.model.ObjectIdentity; import org.springframework.security.acls.model.Permission; import org.springframework.security.acls.model.Sid; /** * 对象控制访问接口 * * @author wangwei */ public interface EwcmsAclServiceable extends MutableAclService{ /** * 得到对象在当前用户的操作权限 * * @param object 对象 * @return 返回权限集合 */ Set<Permission> getPermissions(Object object); /** * 通过对象标识得到当前用户的操作权限 * * 对象标识属性不为“id”时,无法使用缺省的ObjectIdentityImpl创建,需要自己定义 * * @param objectIdentity 对象标识 * @return 返回权限集合 */ Set<Permission> getPermissions(ObjectIdentity objectIdentity); /** * 查询对象访问控制情况 * * @param object 对象 * @return 返回控制访问列表 */ List<AccessControlEntry> findAces(Object object); /** * 通过对象标识查询对象访问控制情况 * * @param objectIdentity 对象标识 * @return */ List<AccessControlEntry> findAces(ObjectIdentity objectIdentity); /** * 更新继承权限 * * <p>父对象标识不为空,则继承权限</p> * * @param object 被设置访问控制的对象 * @param parent 被设置访问控制的父对象 */ void updateInheriting(Object object,Object parent); /** * 添加对象访问控制权限 * * @param object 被设置访问控制的对象 * @param name 名称(如:用户称) * @param mask 权限编码 */ void addPermission(Object object,String name,Integer mask); /** * 添加对象访问控制权限 * * @param object 被设置访问控制的对象 * @param sid 身份对象 * @param Permission 权限 */ void addPermission(Object object,Sid sid,Permission permisson); /** * 删除对象访问控制权限 * * @param object 被设置访问控制的对象 * @param name 名称(如:用户称) */ void removePermission(Object obejct,String name); /** * 权限不存在添加权限,权限存在修改 * * @param object 被设置访问控制的对象 * @param name 名称(如:用户称) * @param mask 权限编码 */ void addOrUpdatePermission(Object object,String name,Integer mask); }