package com.idega.core.accesscontrol.business; import java.util.Collection; import java.util.List; import java.util.Set; import javax.ejb.FinderException; import javax.servlet.http.HttpServletRequest; import com.idega.core.accesscontrol.data.ICRole; import com.idega.core.accesscontrol.data.PermissionGroup; import com.idega.core.builder.data.ICPage; import com.idega.core.component.data.ICObject; import com.idega.core.file.data.ICFile; import com.idega.core.user.data.User; import com.idega.idegaweb.IWApplicationContext; import com.idega.idegaweb.IWUserContext; import com.idega.presentation.PresentationObject; import com.idega.user.data.Group; /** * Title: idegaWeb * Description: * Copyright: Copyright (c) 2001 * Company: idega * @author <a href="gummi@idega.is">Gu�mundur �g�st S�mundsson</a> * @version 1.0 */ public interface AccessController extends com.idega.idegaweb.IWService{ public static final String CATEGORY_STRING_OBJECT_INSTANCE_ID = "ic_object_instance_id"; public static final String CATEGORY_STRING_IC_OBJECT_ID = "ic_object_id"; public static final String CATEGORY_STRING_BUNDLE_IDENTIFIER = "iw_bundle_identifier"; public static final String CATEGORY_STRING_PAGE_ID = "page_id"; public static final String CATEGORY_STRING_PAGE = "page";//don't know what this is for public static final String CATEGORY_STRING_JSP_PAGE = "jsp_page"; public static final String CATEGORY_STRING_FILE_ID = "ic_file_id"; public static final String CATEGORY_STRING_GROUP_ID = "ic_group_id"; //public static final String CATEGORY_STRING_ROLE = "role"; we use RoleObject.getStaticInstance().toString() //public static final String CATEGORY_STRING_ENTITY_RECORD_ID = "ic_entity_record_id"; for general data permissions? public static final String _PARAMETERSTRING_IDENTIFIER = "ic_permissionobj_identifier"; public static final String _PARAMETERSTRING_PERMISSION_CATEGORY = "ic_permission_category"; public static final String PERMISSION_KEY_ROLE_MASTER = "role_master"; public static final String PERMISSION_KEY_VIEW = "view"; public static final String PERMISSION_KEY_EDIT = "edit"; public static final String PERMISSION_KEY_DELETE = "delete"; public static final String PERMISSION_KEY_CREATE = "create"; public static final String PERMISSION_KEY_OWNER = "owner"; public static final String PERMISSION_KEY_PERMIT = "permit"; public static final String PERMISSION_KEY_ROLE = "role_permission"; public static final int CATEGORY_OBJECT_INSTANCE = 0; public static final int CATEGORY_OBJECT = 1; public static final int CATEGORY_BUNDLE = 2; public static final int CATEGORY_PAGE_INSTANCE = 3; public static final int CATEGORY_PAGE = 4; public static final int CATEGORY_JSP_PAGE = 5; public static final int CATEGORY_FILE_ID = 6; public static final int CATEGORY_GROUP_ID = 7; public static final int CATEGORY_ROLE = 8; //public static final int CATEGORY_ENTITY_RECORD_ID = 7; public PermissionGroup getPermissionGroupEveryOne() throws Exception ; public PermissionGroup getPermissionGroupUsers() throws Exception ; public PermissionGroup getPermissionGroupAdministrator() throws Exception ; public boolean isAdmin(IWUserContext iwc)throws Exception; public boolean isOwner(Object obj , IWUserContext iwc) throws Exception ; public boolean isOwner(ICFile file, IWUserContext iwc)throws Exception; public boolean isOwner(Group group, IWUserContext iwc)throws Exception; public boolean isOwner(ICPage page, IWUserContext iwc)throws Exception; public boolean isOwner(ICObject obj, int entityRecordId, IWUserContext iwc)throws Exception; public void setAsOwner(PresentationObject obj, int groupId, IWApplicationContext iwac) throws Exception ; public void setAsOwner(ICFile file, int groupId, IWApplicationContext iwac)throws Exception; public void setAsOwner(Group group, int groupId, IWApplicationContext iwac)throws Exception; public void setAsOwner(ICPage page, int groupId, IWApplicationContext iwac)throws Exception; public void setAsOwner(ICObject obj, int entityRecordId, int groupId, IWApplicationContext iwac)throws Exception; public void setCurrentUserAsOwner(ICPage page,IWUserContext iwc)throws Exception; public boolean hasPermission(String permissionKey, Object obj,IWUserContext iwc) throws Exception; public boolean hasPermissionForGroup(String permissionKey, Group obj,IWUserContext iwc) throws Exception; /** * * @deprecated only used in idegaWeb Project removed in next major version */ public boolean hasPermission(String permissionKey, int category, String identifier, IWUserContext iwc) throws Exception; public boolean hasFilePermission(String permissionKey, int id, IWUserContext iwc)throws Exception; //temp public boolean hasDataPermission(String permissionKey, Class entity, int entityRecordId, IWUserContext iwc)throws Exception; //temp public boolean hasDataPermission(String permissionKey, Class entity, IWUserContext iwc)throws Exception; public boolean hasDataPermission(String permissionKey, ICObject obj, int entityRecordId, IWUserContext iwc) throws Exception; //public boolean hasPermission(Class someClass, int id, IWUserContext iwc) throws Exception; public boolean hasPermission(List groupIds,String permissionType, Object obj,IWUserContext iwc) throws Exception; public boolean hasCreatePermissionFor(Group group,IWUserContext iwuc); public boolean hasDeletePermissionFor(Group group,IWUserContext iwuc); // public boolean hasEditPermission(PresentationObject obj,IWUserContext iwc)throws Exception; // public boolean hasViewPermission(PresentationObject obj,IWUserContext iwc); // public boolean hasViewPermission(List groupIds, PresentationObject obj,IWUserContext iwc); public void setJSPPagePermission(IWUserContext iwc, PermissionGroup group, String PageContextValue, String permissionType, Boolean permissionValue)throws Exception; public void setObjectPermission(IWUserContext iwc, PermissionGroup group, PresentationObject obj, String permissionType, Boolean permissionValue)throws Exception; public void setBundlePermission(IWUserContext iwc, PermissionGroup group, PresentationObject obj, String permissionType, Boolean permissionValue)throws Exception; public void setObjectInstacePermission(IWUserContext iwc, PermissionGroup group, PresentationObject obj, String permissionType, Boolean permissionValue)throws Exception; public void setPermission(int permissionCategory, IWApplicationContext iwac, String permissionGroupId, String identifier, String permissionKey, Boolean permissionValue)throws Exception; public void setObjectInstacePermission(IWUserContext iwc, String permissionGroupId, String ObjectInstanceId, String permissionType, Boolean permissionValue)throws Exception; public int createPermissionGroup(String GroupName, String Description, String ExtraInfo, int[] userIDs, int[] groupIDs)throws Exception; public List getAllPermissionGroups()throws Exception ; public List getStandardGroups() throws Exception ; public User getAdministratorUser()throws Exception; public List getAllowedGroups(int permissionCategory, String identifier, String permissionKey) throws Exception; public String[] getICObjectPermissionKeys(Class ICObject); public String[] getBundlePermissionKeys(Class ICObject); public String[] getBundlePermissionKeys(String BundleIdentifier); public String[] getPagePermissionKeys(); public boolean hasEditPermissionFor(Group group,IWUserContext iwuc); public boolean hasViewPermissionFor(Group group,IWUserContext iwuc); public boolean hasPermitPermissionFor(Group group, IWUserContext iwuc); public boolean hasRole(String roleKey, IWUserContext iwuc); public boolean hasRole(String roleKey, Group group, IWUserContext iwuc); public boolean isRoleMaster(IWUserContext iwuc); public void addGroupAsRoleMaster(Group group, IWApplicationContext iwac); public void addRoleToGroup(String roleKey, Group group, IWApplicationContext iwac); public boolean addRoleToGroup(String roleKey, Integer groupId, IWApplicationContext iwac); public boolean addRoleToGroup(String roleKey, String permissionKey, Integer groupId, IWApplicationContext iwac); public Collection getAllRolesForGroup(Group group); public Collection getAllRolesWithRolePermissionsForGroup(Group group); public Collection getAllRolesWithRolePermissionsForGroupCollection(Collection groups); public Collection getAllRoles(); public Collection getAllGroupsThatAreRoleMasters(IWApplicationContext iwac); public Collection getAllGroupsForRoleKey(String roleKey, IWApplicationContext iwac); public void removeGroupFromRoleMastersList(Group group, IWApplicationContext iwac); public boolean removeRoleFromGroup(String roleKey, Integer groupId, IWApplicationContext iwac); public boolean removeRoleFromGroup(String roleKey,String permissionKey, Integer groupId, IWApplicationContext iwac); public boolean removeRoleFromGroup(String roleKey, Group group, IWApplicationContext iwac); public ICRole createRoleWithRoleKey(String roleKey); public ICRole getRoleByRoleKey(String roleKey) throws FinderException; public String getRoleIdentifier(); public Set getAllRolesForCurrentUser(IWUserContext iwc); /* public static List getPermissionGroups(User user) throws Exception; public static List getPermissionGroups(GenericGroup group) throws Exception; public static List getAllowedGroups(int permissionCategory, String identifier, String permissionKey) throws Exception; public static void addUserToPermissionGroup(PermissionGroup group, int userIDtoAdd) throws Exception; public static void addGroupToPermissionGroup(PermissionGroup group, int groupIDtoAdd)throws Exception; public static boolean hasAdminPermission(PresentationObject obj,IWUserContext iwc)throws Exception; public static boolean hasIdegaAdminPermission(PresentationObject obj,IWUserContext iwc)throws Exception; public static boolean hasOwnerPermission(PresentationObject obj,IWUserContext iwc)throws Exception; public static boolean removePermissionRecords(int permissionCategory, IWUserContext iwc, String ObjectInstanceId, String permissionKey, String[] groupsToRemove); */ // private String[] getPermissionGroupFilter(); //? /** * Check for "view" or read access for a page by URI */ public boolean hasViewPermissionForPageURI(String pageUri,HttpServletRequest request); public boolean hasViewPermissionForPageKey(String pageKey,IWUserContext iwuc); }