01: /**
02: * Copyright (c) 2000-2008 Liferay, Inc. All rights reserved.
03: *
04: * Permission is hereby granted, free of charge, to any person obtaining a copy
05: * of this software and associated documentation files (the "Software"), to deal
06: * in the Software without restriction, including without limitation the rights
07: * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
08: * copies of the Software, and to permit persons to whom the Software is
09: * furnished to do so, subject to the following conditions:
10: *
11: * The above copyright notice and this permission notice shall be included in
12: * all copies or substantial portions of the Software.
13: *
14: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17: * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19: * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20: * SOFTWARE.
21: */package com.liferay.portal.kernel.security.jaas;
22:
23: import java.io.Serializable;
24:
25: import java.security.Principal;
26: import java.security.acl.Group;
27:
28: import java.util.Collections;
29: import java.util.Enumeration;
30: import java.util.HashMap;
31: import java.util.Iterator;
32: import java.util.Map;
33:
34: /**
35: * <a href="PortalGroup.java.html"><b><i>View Source</i></b></a>
36: *
37: * @author Brian Wing Shun Chan
38: *
39: */
40: public class PortalGroup extends PortalPrincipal implements Group,
41: Serializable {
42:
43: public PortalGroup(String groupName) {
44: super (groupName);
45: }
46:
47: public boolean addMember(Principal user) {
48: if (!_members.containsKey(user)) {
49: _members.put(user, user);
50:
51: return true;
52: } else {
53: return false;
54: }
55: }
56:
57: public boolean isMember(Principal member) {
58: boolean isMember = _members.containsKey(member);
59:
60: if (!isMember) {
61: Iterator itr = _members.values().iterator();
62:
63: while (!isMember && itr.hasNext()) {
64: Object obj = itr.next();
65:
66: if (obj instanceof Group) {
67: Group group = (Group) obj;
68:
69: isMember = group.isMember(member);
70: }
71: }
72: }
73:
74: return isMember;
75: }
76:
77: public Enumeration members() {
78: return Collections.enumeration(_members.values());
79: }
80:
81: public boolean removeMember(Principal user) {
82: Object obj = _members.remove(user);
83:
84: if (obj != null) {
85: return true;
86: } else {
87: return false;
88: }
89: }
90:
91: private Map _members = new HashMap();
92:
93: }
|