01: /**
02: * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE, version 2.1, dated February 1999.
03: *
04: * This program is free software; you can redistribute it and/or modify
05: * it under the terms of the latest version of the GNU Lesser General
06: * Public License as published by the Free Software Foundation;
07: *
08: * This program is distributed in the hope that it will be useful,
09: * but WITHOUT ANY WARRANTY; without even the implied warranty of
10: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11: * GNU Lesser General Public License for more details.
12: *
13: * You should have received a copy of the GNU Lesser General Public License
14: * along with this program (LICENSE.txt); if not, write to the Free Software
15: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
16: */package org.jamwiki;
17:
18: import org.jamwiki.model.WikiUserInfo;
19:
20: /**
21: * This interface provides methods needed when authenticating and retrieving
22: * basic user information.
23: *
24: * @see org.jamwiki.WikiBase#getUserHandler
25: */
26: public interface UserHandler {
27:
28: /**
29: * Add new user information to the user information data store. If the
30: * data store is write-only then this method should throw an
31: * OperationNotSupportedException.
32: *
33: * @param userInfo The WikiUserInfo object that is to be added to the
34: * data store.
35: * @param transactionObject If the user information is being added to the
36: * data store as part of a transaction then this parameter should contain
37: * the transaction object, such as a database connection. If no
38: * transaction is being used then this value should be <code>null</code>.
39: * @throws Exception Thrown if an error occurs while adding the user
40: * information, or if the data store is read-only.
41: */
42: void addWikiUserInfo(WikiUserInfo userInfo, Object transactionObject)
43: throws Exception;
44:
45: /**
46: * Determine if a value matching the given username and password exists in
47: * the data store.
48: *
49: * @param username The username that is being validated against.
50: * @param password The password that is being validated against.
51: * @return <code>true</code> if the username / password combination matches
52: * an existing record in the data store, <code>false</code> otherwise.
53: * @throws Exception Thrown if an error occurs while accessing the data
54: * store.
55: */
56: boolean authenticate(String username, String password)
57: throws Exception;
58:
59: /**
60: * This method returns <code>true</code> if the user information data
61: * store is writeable, and <code>false</code> if it is read-only.
62: *
63: * @return <code>true</code> if the user information data store is
64: * writeable, and <code>false</code> if it is read-only.
65: */
66: boolean isWriteable();
67:
68: /**
69: * Given a username, retrieving a WikiUserInfo containing values for
70: * the specified user.
71: *
72: * @param username The username for the user information being retrieved.
73: * @return A WikiUserInfo object containing user information matching the
74: * the username, or <code>null</code> if no record matching the username
75: * can be found.
76: * @throws Exception Thrown if an error occurs while retrieving user
77: * information.
78: */
79: WikiUserInfo lookupWikiUserInfo(String username) throws Exception;
80:
81: /**
82: *
83: * @param userInfo The WikiUserInfo object that is to be updated in the
84: * data store.
85: * @param transactionObject If the user information is being updated in
86: * the data store as part of a transaction then this parameter should
87: * contain the transaction object, such as a database connection. If no
88: * transaction is being used then this value should be <code>null</code>.
89: * @throws Exception Thrown if an error occurs while updating the user
90: * information, or if the data store is read-only.
91: */
92: void updateWikiUserInfo(WikiUserInfo userInfo,
93: Object transactionObject) throws Exception;
94: }
|