001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: *
017: */
018:
019: package org.apache.lenya.ac;
020:
021: /**
022: * A user.
023: * @version $Id: User.java 580116 2007-09-27 18:02:21Z rfrovarp $
024: */
025: public interface User extends Identifiable, Item, Groupable {
026:
027: /**
028: * Get the email address
029: *
030: * @return a <code>String</code>
031: */
032: String getEmail();
033:
034: /**
035: * Set the email address
036: *
037: * @param email the new email address
038: */
039: void setEmail(String email);
040:
041: /**
042: * Sets the password.
043: * @param plainTextPassword The plain text password.
044: */
045: void setPassword(String plainTextPassword);
046:
047: /**
048: * Checks support for changing password
049: * @return true if password change is supported
050: */
051: public abstract boolean canChangePassword();
052:
053: /**
054: * Returns the user's preferred locale for the Lenya
055: * CMS menus and CMS screens.
056: *
057: * The locale can either be a 2 letter country code
058: * (de, en) or a locale code according to RFC 1766 /
059: * ISO 639 / ISO 3166 (de_DE, de_CH, de_AT, en_US, ...)
060: * @return The locale.
061: */
062: String getDefaultMenuLocale();
063:
064: /**
065: * Sets the user's preferred locale for the Lenya
066: * menu and CMS screens.
067: *
068: * The locale can either be a 2 letter country code
069: * (de, en) or a locale code according to RFC 1766 /
070: * ISO 639 / ISO 3166 (de_DE, de_CH, de_AT, en_US, ...)
071: * @param menuLocale The locale.
072: */
073: void setDefaultMenuLocale(String menuLocale);
074:
075: /**
076: * Returns the user's default locale of documents
077: * to be created or edited.
078: *
079: * The locale can either be a 2 letter country code
080: * (de, en) or a locale code according to RFC 1766 /
081: * ISO 639 / ISO 3166 (de_DE, de_CH, de_AT, en_US, ...)
082: * @return The locale.
083: */
084: String getDefaultDocumentLocale();
085:
086: /**
087: * Sets the user's default locale of documents
088: * to be created or edited.
089: *
090: * The locale can either be a 2 letter country code
091: * (de, en) or a locale code according to RFC 1766 /
092: * ISO 639 / ISO 3166 (de_DE, de_CH, de_AT, en_US, ...)
093: * @param documentLocale The locale.
094: */
095: void setDefaultDocumentLocale(String documentLocale);
096:
097: /**
098: * Save the user
099: *
100: * @throws AccessControlException if the save failed
101: */
102: void save() throws AccessControlException;
103:
104: /**
105: * Delete a user
106: *
107: * @throws AccessControlException if the delete failed
108: */
109: void delete() throws AccessControlException;
110:
111: /**
112: * Authenticate a user. This is done by encrypting
113: * the given password and comparing this to the
114: * encryptedPassword.
115: *
116: * @param password to authenticate with
117: * @return true if the given password matches the password for this user
118: */
119: boolean authenticate(String password);
120:
121: /**
122: * @return The accreditable manager this accreditable belongs to.
123: */
124: AccreditableManager getAccreditableManager();
125: }
|