01: /**********************************************************************************
02: * $URL:https://source.sakaiproject.org/svn/osp/trunk/common/api/src/java/org/theospi/portfolio/security/app/ApplicationAuthorizer.java $
03: * $Id:ApplicationAuthorizer.java 9134 2006-05-08 20:28:42Z chmaurer@iupui.edu $
04: ***********************************************************************************
05: *
06: * Copyright (c) 2005, 2006 The Sakai Foundation.
07: *
08: * Licensed under the Educational Community License, Version 1.0 (the "License");
09: * you may not use this file except in compliance with the License.
10: * You may obtain a copy of the License at
11: *
12: * http://www.opensource.org/licenses/ecl1.php
13: *
14: * Unless required by applicable law or agreed to in writing, software
15: * distributed under the License is distributed on an "AS IS" BASIS,
16: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17: * See the License for the specific language governing permissions and
18: * limitations under the License.
19: *
20: **********************************************************************************/package org.theospi.portfolio.security.app;
21:
22: import java.util.List;
23:
24: import org.sakaiproject.metaobj.shared.model.Agent;
25: import org.sakaiproject.metaobj.shared.model.Id;
26: import org.theospi.portfolio.security.AuthorizationFacade;
27:
28: /**
29: * Created by IntelliJ IDEA.
30: * User: John Ellis
31: * Date: May 19, 2004
32: * Time: 4:26:17 PM
33: * To change this template use File | Settings | File Templates.
34: */
35: public interface ApplicationAuthorizer {
36:
37: /**
38: * This method will ask the application specific functional authorizer to determine authorization.
39: *
40: * @param facade this can be used to do explicit auths if necessary
41: * @param agent
42: * @param function
43: * @param id
44: * @return null if the authorizer has no opinion, true if authorized, false if explicitly not authorized.
45: */
46: public Boolean isAuthorized(AuthorizationFacade facade,
47: Agent agent, String function, Id id);
48:
49: /**
50: * This method is how the authorizer registers interest in a particular function. An ApplicationAuthorizer will only
51: * be consulted if the function appears in this list.
52: *
53: * @return a List of functions that this authorizer cares about
54: */
55: public List getFunctions();
56:
57: }
|