View Javadoc

1   /*
2    * Copyright 2011 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the
5    * "License"); you may not use this file except in compliance with the
6    * License. You may obtain a copy of the License at
7    *
8    * 	http://www.osedu.org/licenses/ECL-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
13   * implied.  See the License for the specific language governing
14   * permissions and limitations under the License.
15   */
16  
17  package org.kuali.student.r2.common.infc;
18  
19  import java.util.Date;
20  
21  /*
22   * This is a generic context container to be used by services to pass
23   * user identity and preferences
24   *
25   * Note:
26   *      1. ISO3 standard can now be interpreted by looking at the
27   *         language and country codes
28   *      2. Time zone is defined in GMT +/- hours and minutes format
29   *      3. Should Locale contain currency?
30   *
31   * References:
32   * ftp://ftp.rfc-editor.org/in-notes/bcp/bcp47.txt
33   * http://download.oracle.com/javase/1.4.2/docs/api/java/util/TimeZone.html
34   *
35   * @author Kamal
36   *
37   * @Version 2.0
38   * @Author Sri komandur@uw.edu
39   */
40  
41  public interface Context 
42      extends HasAttributes {
43  
44      /**
45       * The Principal Id of the currently authenticated user.
46       *
47       * @name Authenticated Principal Id
48       */
49      public String getAuthenticatedPrincipalId();
50  
51      /**
52       * The Principal Id of the principal on whose behalf the
53       * authenticated principal is acting. If the authenticated
54       * principal is not acting on behalf of a different user, then
55       * this Id should be the same as the Authenticated Principal Id.
56       *
57       * (1) User is authorized to only act on behalf of
58       * itself. Principal Id must equal the Authenticated Principal Id
59       * and the authorization is performed on that Id. If the Principal
60       * Id differs from the Authenticated Principal Id, then the user
61       * is not authorized to perform the requested operation.
62       *
63       * (2) User is authorized to act on behalf of another user. The
64       * Principal Id differs from the Authentication Principal
65       * Id. Authorization is checked to see if Authenticated Principal
66       * Id can perform the operation on behalf of Principal Id. Then,
67       * authorization is checked to see if Principal Id can perform the
68       * operation.
69       *
70       * @name Principal Id
71       */
72      public String getPrincipalId();
73  
74      /**
75       * The current date in this context. This date is used to instruct
76       * the provider to peform operations as if this date were the
77       * current date.
78       *
79       * @name Current Date
80       */
81      public Date getCurrentDate();
82  
83      /**
84       * The locale information requested by the user.
85       *
86       * @name Locale
87       */
88      public Locale getLocale();
89     
90      /**
91       * The time zone requested by the user.
92       *
93       * @name Time Zone
94       */
95      public String getTimeZone();
96  }
97