01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: package org.apache.jetspeed.portlets.security.roles;
18:
19: import java.sql.Types;
20: import java.util.ArrayList;
21: import java.util.Iterator;
22: import java.util.List;
23:
24: import javax.portlet.PortletConfig;
25: import javax.portlet.PortletException;
26: import javax.portlet.RenderRequest;
27:
28: import org.apache.jetspeed.CommonPortletServices;
29: import org.apache.jetspeed.security.Role;
30: import org.apache.jetspeed.security.RoleManager;
31: import org.apache.portals.gems.browser.BrowserIterator;
32: import org.apache.portals.gems.browser.BrowserPortlet;
33: import org.apache.portals.gems.browser.DatabaseBrowserIterator;
34:
35: /**
36: * RoleChooserPortlet
37: *
38: * @author <a href="mailto:ate@douma.nu">Ate Douma</a>
39: * @version $Id$
40: */
41: public class RoleChooserPortlet extends BrowserPortlet {
42: private RoleManager roleManager;
43:
44: public void init(PortletConfig config) throws PortletException {
45: super .init(config);
46: roleManager = (RoleManager) getPortletContext().getAttribute(
47: CommonPortletServices.CPS_ROLE_MANAGER_COMPONENT);
48: if (null == roleManager) {
49: throw new PortletException(
50: "Failed to find the Role Manager on portlet initialization");
51: }
52: }
53:
54: public void getRows(RenderRequest request, String sql,
55: int windowSize) throws Exception {
56: List resultSetTitleList = new ArrayList();
57: List resultSetTypeList = new ArrayList();
58: try {
59: Iterator roles = roleManager.getRoles("");
60:
61: resultSetTypeList.add(String.valueOf(Types.VARCHAR));
62: resultSetTitleList.add("Role");
63:
64: // TODO: need to try to normalize List/Collection/Iterators
65: List list = new ArrayList();
66: while (roles.hasNext()) {
67: list
68: .add(((Role) roles.next()).getPrincipal()
69: .getName());
70: }
71: BrowserIterator iterator = new DatabaseBrowserIterator(
72: list, resultSetTitleList, resultSetTypeList,
73: windowSize);
74: setBrowserIterator(request, iterator);
75: iterator.sort("Role");
76: } catch (Exception e) {
77: //log.error("Exception in CMSBrowserAction.getRows: ", e);
78: e.printStackTrace();
79: throw e;
80: }
81: }
82:
83: }
|