annotate artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java @ 137:f92ad0e40df2

Added a resource that handles user specific actions. artifacts/trunk@1362 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 02 Mar 2011 11:07:21 +0000
parents 19267b9960c3
children bf596b83d984
rev   line source
123
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 /*
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2 * Copyright (c) 2010 by Intevation GmbH
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 *
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4 * This program is free software under the LGPL (>=v2.1)
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5 * Read the file LGPL.txt coming with the software for details
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6 * or visit http://www.gnu.org/licenses/ if it does not exist.
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7 */
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9 package de.intevation.artifactdatabase;
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import org.apache.log4j.Logger;
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import org.w3c.dom.Document;
130
147610c43863 The UserFactory got a setup() method that is called while bootstrap.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 123
diff changeset
14 import org.w3c.dom.Node;
123
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 import de.intevation.artifacts.User;
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17 import de.intevation.artifacts.UserFactory;
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 /**
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 * Default implementation of a UserFactory.
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 *
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 */
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 public class DefaultUserFactory
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 implements UserFactory
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 {
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28 /** The logger that is used in this factory.*/
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 private static Logger logger = Logger.getLogger(DefaultUserFactory.class);
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 /**
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 * Default constructor.
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 */
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 public DefaultUserFactory() {
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 }
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38
130
147610c43863 The UserFactory got a setup() method that is called while bootstrap.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 123
diff changeset
39 public void setup(Document config, Node factoryNode) {
147610c43863 The UserFactory got a setup() method that is called while bootstrap.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 123
diff changeset
40 logger.debug("DefaultUserFactory.setup");
147610c43863 The UserFactory got a setup() method that is called while bootstrap.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 123
diff changeset
41 }
147610c43863 The UserFactory got a setup() method that is called while bootstrap.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 123
diff changeset
42
147610c43863 The UserFactory got a setup() method that is called while bootstrap.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 123
diff changeset
43
123
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 /**
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 * This method creates a new DefaultUser with the given identifier, name and
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 * role.
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 *
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 * @param identifier The identifier for the new user.
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 * @param name The name for the new user.
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 * @param role The role for the new user.
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 * @param context The CallContext.
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 */
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53 public User createUser(
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54 String name,
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55 Document role,
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56 Object context)
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 {
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 logger.debug("DefaultUserFactory.createUser: " + name);
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59
134
19267b9960c3 Wired Backend with DefaultUserFactory via the singleton.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
60 return Backend.getInstance().createUser(name, role);
123
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 }
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 /**
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 * Deletes the given user.
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 *
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 * @param user The user to be deleted.
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 * @param context The CallContext.
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 */
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70 public void deleteUser(User user, Object context) {
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 logger.debug("DefaultUserFactory.deleteUser: " + user.identifier());
134
19267b9960c3 Wired Backend with DefaultUserFactory via the singleton.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
72
19267b9960c3 Wired Backend with DefaultUserFactory via the singleton.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
73 Backend.getInstance().deleteUser(user);
123
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74 }
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 /**
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 * Returns the user with the given identifier.
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 *
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 * @param identifier The identifier of a user.
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 * @param context The CallContext.
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 *
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 * @return the user with the given identifier.
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 */
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 public User getUser(String identifier, Object context) {
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86 logger.debug("DefaultUserFactory.getUser: " + identifier);
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87
134
19267b9960c3 Wired Backend with DefaultUserFactory via the singleton.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
88 return Backend.getInstance().getUser(identifier);
123
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89 }
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 /**
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93 * Returns a list of users available for this application.
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94 *
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95 * @param context The CallContext.
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96 *
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97 * @return a list of users.
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98 */
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99 public User [] getUsers(Object context) {
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100 logger.debug("DefaultUserFactory.getUsers");
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101
134
19267b9960c3 Wired Backend with DefaultUserFactory via the singleton.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
102 return Backend.getInstance().getUsers();
123
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 }
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 }
9187abefba8b Added a default implementation of a UserFactory and a new constructor to create new DefaultUsers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org