portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From woon...@apache.org
Subject svn commit: r629431 [2/3] - in /portals/jetspeed-2/trunk: ./ applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/ applications/j2-admin/src/java/org/apache/jetspeed/portlets/wicket/ applications/j2-admin/src/java/org/apache/jetsp...
Date Wed, 20 Feb 2008 11:59:22 GMT
Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails.java?rev=629431&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails.java (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails.java Wed Feb 20 03:59:16 2008
@@ -0,0 +1,1278 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.portlets.security.users;
+
+import java.io.Serializable;
+import java.io.NotSerializableException;
+import java.util.Collection;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.Iterator;
+import java.util.Date;
+import java.util.Set;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.ResourceBundle;
+import java.security.Principal;
+import java.util.prefs.Preferences;
+import java.util.prefs.BackingStoreException;
+
+import javax.portlet.PortletContext;
+import javax.portlet.PortletSession;
+import javax.portlet.PortletRequest;
+import javax.security.auth.Subject;
+
+import org.apache.wicket.RequestContext;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.ResourceModel;
+import org.apache.wicket.model.PropertyModel;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.markup.html.form.PasswordTextField;
+import org.apache.wicket.markup.html.form.CheckBox;
+import org.apache.wicket.markup.html.form.DropDownChoice;
+import org.apache.wicket.markup.html.form.RadioChoice;
+import org.apache.wicket.markup.html.form.Button;
+import org.apache.wicket.markup.repeater.Item;
+import org.apache.wicket.markup.repeater.OddEvenItem;
+import org.apache.wicket.protocol.http.portlet.PortletRequestContext;
+import org.apache.wicket.extensions.markup.html.tabs.ITab;
+import org.apache.wicket.extensions.markup.html.tabs.AbstractTab;
+import org.apache.wicket.extensions.markup.html.tabs.TabbedPanel;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.HeadersToolbar;
+import org.apache.wicket.extensions.markup.html.repeater.data.table.NavigationToolbar;
+import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
+
+import org.apache.portals.messaging.PortletMessaging;
+
+import org.apache.jetspeed.CommonPortletServices;
+import org.apache.jetspeed.PortalReservedParameters;
+import org.apache.jetspeed.administration.PortalConfiguration;
+import org.apache.jetspeed.administration.PortalConfigurationConstants;
+import org.apache.jetspeed.audit.AuditActivity;
+import org.apache.jetspeed.components.portletregistry.PortletRegistry;
+import org.apache.jetspeed.container.JetspeedPortletContext;
+import org.apache.jetspeed.om.common.UserAttribute;
+import org.apache.jetspeed.om.common.portlet.MutablePortletApplication;
+import org.apache.jetspeed.om.folder.Folder;
+import org.apache.jetspeed.om.folder.FolderNotFoundException;
+import org.apache.jetspeed.page.PageManager;
+import org.apache.jetspeed.page.document.NodeSet;
+import org.apache.jetspeed.portlets.security.SecurityResources;
+import org.apache.jetspeed.portlets.security.SecurityUtil;
+import org.apache.jetspeed.profiler.Profiler;
+import org.apache.jetspeed.profiler.rules.PrincipalRule;
+import org.apache.jetspeed.profiler.rules.ProfilingRule;
+import org.apache.jetspeed.security.Group;
+import org.apache.jetspeed.security.GroupManager;
+import org.apache.jetspeed.security.InvalidNewPasswordException;
+import org.apache.jetspeed.security.InvalidPasswordException;
+import org.apache.jetspeed.security.PasswordAlreadyUsedException;
+import org.apache.jetspeed.security.PasswordCredential;
+import org.apache.jetspeed.security.Role;
+import org.apache.jetspeed.security.RoleManager;
+import org.apache.jetspeed.security.SecurityException;
+import org.apache.jetspeed.security.User;
+import org.apache.jetspeed.security.UserManager;
+import org.apache.jetspeed.security.UserPrincipal;
+import org.apache.jetspeed.security.om.InternalCredential;
+
+import org.apache.jetspeed.portlets.wicket.component.LinkPropertyColumn;
+import org.apache.jetspeed.portlets.wicket.component.PortletOddEvenItem;
+import org.apache.jetspeed.portlets.wicket.component.SelectionImagePropertyColumn;
+import org.apache.jetspeed.portlets.wicket.component.CheckBoxPropertyColumn;
+import org.apache.jetspeed.portlets.wicket.component.TextFieldPropertyColumn;
+
+import org.apache.jetspeed.portlets.wicket.AdminWicketPortlet;
+
+/**
+ * User Details Wicket WebPage
+ * 
+ * @author <a href="mailto:woonsan@apache.org">Woonsan Ko</a>
+ * @version $Id: $
+ */
+public class WicketUserDetails extends WicketUserAdmin
+{
+
+    protected transient String userName;
+    protected transient Principal userPrincipal;
+    protected transient User user;
+    protected transient PasswordCredential credential;
+    protected List tabs;
+    protected List anonTabs;
+    
+	public WicketUserDetails()
+	{
+        refreshData();
+        
+        Label userNameLabel = new Label("userName", new PropertyModel(this, "userName"));
+        add(userNameLabel);
+        
+        this.tabs = new ArrayList();
+        this.anonTabs = new ArrayList();
+        
+        ITab tab = 
+            new AbstractTab(new ResourceModel("pam.details.tabs.user_attributes")) 
+            {
+                public Panel getPanel(String panelId)
+                {
+                    return new UserAttributesPanel(panelId);
+                }
+            };
+        tabs.add(tab);
+
+        tab =
+            new AbstractTab(new ResourceModel("pam.details.tabs.user_credential")) 
+            {
+                public Panel getPanel(String panelId)
+                {
+                    return new UserCredentialPanel(panelId);
+                }
+            };
+        tabs.add(tab);
+
+        tab =
+            new AbstractTab(new ResourceModel("pam.details.tabs.user_role")) 
+            {
+                public Panel getPanel(String panelId)
+                {
+                    return new UserRolesPanel(panelId);
+                }
+            };
+        tabs.add(tab);
+        anonTabs.add(tab);
+
+        tab =
+            new AbstractTab(new ResourceModel("pam.details.tabs.user_group")) 
+            {
+                public Panel getPanel(String panelId)
+                {
+                    return new UserGroupsPanel(panelId);
+                }
+            };
+        tabs.add(tab);
+        anonTabs.add(tab);
+
+        tab =
+            new AbstractTab(new ResourceModel("pam.details.tabs.user_profile")) 
+            {
+                public Panel getPanel(String panelId)
+                {
+                    return new UserProfilesPanel(panelId);
+                }
+            };
+        tabs.add(tab);
+        anonTabs.add(tab);
+
+        add(new TabbedPanel("tabs", tabs));
+        
+        Form userActionForm = new Form("userActionForm");
+        
+        Button addNewUserButton = new Button("addNewUser")
+        {
+            public void onSubmit()
+            {
+                PortletMessaging.cancel(getPortletRequest(), SecurityResources.TOPIC_USERS, SecurityResources.MESSAGE_SELECTED);
+                setResponsePage(WicketUserAdd.class);
+            }
+        };
+        
+        Button removeUserButton = new Button("removeUser")
+        {
+            public void onSubmit()
+            {
+                try
+                {
+                    Preferences attributes = user.getUserAttributes();
+                    
+                    String firstName = attributes.get("user.name.given", "n/a");
+                    String lastName =  attributes.get("user.name.family", "n/a");
+                    String subsite = attributes.get(User.USER_INFO_SUBSITE, null);
+                    
+                    getUserManager().removeUser(getUserName());
+                    
+                    PortletMessaging.publish(getPortletRequest(), SecurityResources.TOPIC_USERS, SecurityResources.MESSAGE_REFRESH, "true");
+                    
+                    if (subsite == null)
+                    {
+                        subsite = Folder.USER_FOLDER + getUserName();
+                    }
+                    
+                    if (getPageManager().folderExists(subsite))
+                    {
+                        Folder folder = getPageManager().getFolder(subsite);                    
+                        getPageManager().removeFolder(folder);
+                    }
+                    
+                    getAuditActivity().logAdminAttributeActivity(getPortletRequest().getUserPrincipal().getName(), 
+                            getIPAddress(), getUserName(), AuditActivity.USER_DELETE, "", firstName, lastName, USER_ADMINISTRATION);                                                                                                        
+                    // remove selected user from USERS_TOPIC
+                    PortletMessaging.cancel(getPortletRequest(), SecurityResources.TOPIC_USERS, SecurityResources.MESSAGE_SELECTED);
+                    setResponsePage(WicketUserAdd.class);
+                    
+                    // TODO: send message to site manager portlet                
+                }
+                catch (Exception ex)
+                {
+                    SecurityUtil.publishErrorMessage(getPortletRequest(), SecurityResources.TOPIC_USER, ex.getMessage());
+                }
+            }
+        };
+        
+        userActionForm.add(addNewUserButton);
+        userActionForm.add(removeUserButton);
+        
+        add(userActionForm);
+	}
+    
+    protected String getUserName()
+    {
+        return this.userName;
+    }
+    
+    protected void refreshData()
+    {
+        this.userName = (String) PortletMessaging.receive(getPortletRequest(), SecurityResources.TOPIC_USERS, SecurityResources.MESSAGE_SELECTED);
+        this.user = null;
+        this.userPrincipal = null;
+        this.credential = null;
+        
+        if (this.userName != null)
+        {
+            try
+            {
+                this.user = getUserManager().getUser(this.userName);
+                
+                if (this.user != null)
+                {
+                    this.userPrincipal = createPrincipal(this.user.getSubject(), UserPrincipal.class);
+                    this.credential = getCredential(this.user);
+                }
+            }
+            catch (SecurityException e)
+            {
+                SecurityUtil.publishErrorMessage(getPortletRequest(), SecurityResources.TOPIC_USERS, e.getMessage());
+            }
+        }
+    }
+    
+    protected void onBeforeRender()
+    {
+        super.onBeforeRender();
+        
+        refreshData();
+        
+        boolean isAnonymousUser = getUserManager().getAnonymousUser().equals(getUserName());
+        
+        TabbedPanel current = (TabbedPanel) get("tabs");
+        remove(current);
+        
+        TabbedPanel expected = new TabbedPanel("tabs", isAnonymousUser ? this.anonTabs : this.tabs);
+        
+        if (current.getTabs() == expected.getTabs())
+        {
+            expected.setSelectedTab(current.getSelectedTab());
+        }
+        
+        add(expected);
+    }
+    
+    protected Principal createPrincipal(Subject subject, Class classe)
+    {
+        Principal principal = null;
+        Iterator principals = subject.getPrincipals().iterator();
+        while (principals.hasNext())
+        {
+            Principal p = (Principal) principals.next();
+            if (classe.isInstance(p))
+            {
+                principal = p;
+                break;
+            }
+        }
+        return principal;
+    }
+    
+    protected class UserAttributesPanel extends Panel
+    {
+        protected String userName;
+        protected String userAttrName;
+        protected String userAttrValue;
+        protected List userAttributes;
+        
+        protected UserAttributesPanel(String id)
+        {
+            super(id);
+            
+            if (getUserName() != this.userName)
+            {
+                refreshData();
+                this.userName = getUserName();
+            }
+            
+            Form userAttrsForm = new Form("userAttrsForm");
+
+            SortableDataProvider dataProvider = new SortableDataProvider()
+            {
+                public int size()
+                {
+                    return getUserAttributes().size();
+                }
+                
+                public IModel model(Object object)
+                {
+                    return new Model((Serializable) object);
+                }
+                
+                public Iterator iterator(int first, int count)
+                {
+                    return getUserAttributes().subList(first, first + count).iterator();
+                }
+            };
+            
+            IColumn [] columns = 
+            {
+                new CheckBoxPropertyColumn(new Model(" "), "checked"),
+                new PropertyColumn(new ResourceModel("security.name"), "name"),
+                new TextFieldPropertyColumn(new ResourceModel("security.value"), "value")
+            };
+            
+            DataTable userAttrsDataTable = new DataTable("entries", columns, dataProvider, 10)
+            {
+                protected Item newRowItem(String id, int index, IModel model)
+                {
+                    return new PortletOddEvenItem(id, index, model);
+                }
+            };
+            
+            userAttrsDataTable.addTopToolbar(new HeadersToolbar(userAttrsDataTable, dataProvider));
+            userAttrsDataTable.addBottomToolbar(new NavigationToolbar(userAttrsDataTable));
+            
+            userAttrsForm.add(userAttrsDataTable);
+
+            Button updateAttrButton = new Button("updateAttr")
+            {
+                public void onSubmit()
+                {
+                    Preferences prefs = user.getUserAttributes();
+                    
+                    for (Iterator it = userAttributes.iterator(); it.hasNext(); )
+                    {
+                        Map userAttrMap = (Map) it.next();
+                        String userAttrName = (String) userAttrMap.get("name");
+                        String userAttrValue = (String) userAttrMap.get("value");
+                        String oldUserAttrValue = user.getUserAttributes().get(userAttrName, "");
+                        prefs.put(userAttrName, userAttrValue);
+                        
+                        getAuditActivity().logAdminAttributeActivity(getPortletRequest().getUserPrincipal().getName(), getIPAddress(), getUserName(), AuditActivity.USER_UPDATE_ATTRIBUTE, userAttrName, oldUserAttrValue, userAttrValue, USER_ADMINISTRATION);
+                    }
+                    
+                    refreshData();
+                }
+            };
+            
+            Button removeAttrButton = new Button("removeAttr")
+            {
+                public void onSubmit()
+                {
+                    Preferences prefs = user.getUserAttributes();
+                    
+                    for (Iterator it = userAttributes.iterator(); it.hasNext(); )
+                    {
+                        Map userAttrMap = (Map) it.next();
+                        
+                        if (Boolean.TRUE.equals(userAttrMap.get("checked")))
+                        {
+                            String userAttrName = (String) userAttrMap.get("name");
+                            String userAttrValue = (String) userAttrMap.get("value");
+                            prefs.remove(userAttrName);
+                            
+                            getAuditActivity().logAdminAttributeActivity(getPortletRequest().getUserPrincipal().getName(), getIPAddress(), getUserName(), AuditActivity.USER_DELETE_ATTRIBUTE, userAttrName, userAttrValue, "", USER_ADMINISTRATION);
+                        }
+                    }
+                    
+                    refreshData();
+                }
+            };
+            
+            userAttrsForm.add(updateAttrButton);
+            userAttrsForm.add(removeAttrButton);
+            
+            add(userAttrsForm);
+            
+            Form addAttrForm = new Form("addAttrForm")
+            {
+                protected void onSubmit()
+                {
+                    String userAttrName = getUserAttrName();
+                    String userAttrValue = getUserAttrValue();
+                    
+                    if (userAttrName != null && userAttrName.trim().length() > 0)
+                    {
+                        Preferences prefs = user.getUserAttributes();
+                        prefs.put(userAttrName, userAttrValue);
+                        getAuditActivity().logAdminAttributeActivity(getPortletRequest().getUserPrincipal().getName(), getIPAddress(), getUserName(), AuditActivity.USER_ADD_ATTRIBUTE, userAttrName, "", userAttrValue, USER_ADMINISTRATION);                                                
+                    }
+                    
+                    refreshData();
+                }
+            };
+
+            TextField userAttrNameField = new TextField("userAttrName", new PropertyModel(this, "userAttrName"));
+            addAttrForm.add(userAttrNameField);
+            
+            TextField userAttrValueField = new TextField("userAttrValue", new PropertyModel(this, "userAttrValue"));
+            addAttrForm.add(userAttrValueField);
+            
+            add(addAttrForm);
+        }
+        
+        public List getUserAttributes()
+        {
+            return this.userAttributes;
+        }
+        
+        public void setUserAttrName(String userAttrName)
+        {
+            this.userAttrName = userAttrName;
+        }
+        
+        public String getUserAttrName()
+        {
+            return this.userAttrName;
+        }
+        
+        public void setUserAttrValue(String userAttrValue)
+        {
+            this.userAttrValue = userAttrValue;
+        }
+        
+        public String getUserAttrValue()
+        {
+            return this.userAttrValue;
+        }
+        
+        protected void onBeforeRender()
+        {
+            super.onBeforeRender();
+            
+            if (getUserName() != this.userName)
+            {
+                refreshData();
+                this.userName = getUserName();
+            }
+        }
+        
+        protected void refreshData()
+        {
+            this.userAttributes = new LinkedList();
+            
+            if (user != null)
+            {
+                try
+                {
+                    Preferences prefs = user.getUserAttributes();
+                    String [] keys = prefs.keys();
+                    
+                    for (int i = 0; i < keys.length; i++)
+                    {
+                        Map item = new HashMap();
+                        item.put("checked", Boolean.FALSE);
+                        item.put("name", keys[i]);
+                        item.put("value", prefs.get(keys[i], ""));
+                        
+                        this.userAttributes.add(item);
+                    }
+                }
+                catch (BackingStoreException e)
+                {
+                }
+            }
+        }
+    }
+
+    protected class UserCredentialPanel extends Panel
+    {
+        protected String userName;
+        protected String credentialValue;
+        protected boolean credentialUpdateRequired;
+        protected Date lastAuthenticationDate;
+        protected boolean credentialEnabled;
+        protected Date credentialExpirationDate;
+        protected String userExpiredFlag;
+        
+        protected UserCredentialPanel(String id)
+        {
+            super(id);
+            
+            if (getUserName() != this.userName)
+            {
+                refreshData();
+                this.userName = getUserName();
+            }
+            
+            Form form = new Form("userCredentialForm")
+            {
+                protected void onSubmit()
+                {
+                    ResourceBundle bundle = ResourceBundle.getBundle("org.apache.jetspeed.portlets.security.resources.UsersResources",getPortletRequest().getLocale());
+                    
+                    try
+                    {
+                        boolean passwordSet = false;
+                        
+                        if ( getCredentialValue() != null && getCredentialValue().trim().length() > 0 )
+                        {
+                            getUserManager().setPassword(getUserName(), null, getCredentialValue());
+                            getAuditActivity().logAdminCredentialActivity(getPortletRequest().getUserPrincipal().getName(), getIPAddress(), getUserName(), AuditActivity.PASSWORD_RESET, USER_ADMINISTRATION);
+                            passwordSet = true;
+                        }
+                        
+                        if (getCredentialUpdateRequired() != credential.isUpdateRequired())
+                        {
+                            getUserManager().setPasswordUpdateRequired(getUserName(), getCredentialUpdateRequired());
+                            getAuditActivity().logAdminCredentialActivity(getPortletRequest().getUserPrincipal().getName(), getIPAddress(), getUserName(), AuditActivity.PASSWORD_UPDATE_REQUIRED, USER_ADMINISTRATION);
+                        }
+                        
+                        if (getCredentialEnabled() != credential.isEnabled())
+                        {
+                            getUserManager().setPasswordEnabled(getUserName(), getCredentialEnabled());
+                            String activity = (getCredentialEnabled() ? AuditActivity.PASSWORD_ENABLED : AuditActivity.PASSWORD_DISABLED);
+                            getAuditActivity().logAdminCredentialActivity(getPortletRequest().getUserPrincipal().getName(), getIPAddress(), getUserName(), activity, USER_ADMINISTRATION);                                                                                                                                              
+                        }
+                        
+                        String expiredFlagStr = getUserExpiredFlag();
+                        
+                        if (expiredFlagStr != null)
+                        {
+                            if (!passwordSet && expiredFlagStr.equals("expired"))
+                            {
+                                java.sql.Date today = new java.sql.Date(new Date().getTime());
+                                getUserManager().setPasswordExpiration(getUserName(), today);                            
+                                getAuditActivity().logAdminCredentialActivity(getPortletRequest().getUserPrincipal().getName(), getIPAddress(), getUserName(), AuditActivity.PASSWORD_EXPIRE, USER_ADMINISTRATION);
+                            }
+                            else if (expiredFlagStr.equals("extend"))
+                            {
+                                getUserManager().setPasswordExpiration(getUserName(), null);
+                                getAuditActivity().logAdminCredentialActivity(getPortletRequest().getUserPrincipal().getName(), getIPAddress(), getUserName(), AuditActivity.PASSWORD_EXTEND, USER_ADMINISTRATION);
+                            }
+                            else if (expiredFlagStr.equals("unlimited"))
+                            {
+                                getUserManager().setPasswordExpiration(getUserName(), InternalCredential.MAX_DATE);
+                                getAuditActivity().logAdminCredentialActivity(getPortletRequest().getUserPrincipal().getName(), getIPAddress(), getUserName(), AuditActivity.PASSWORD_UNLIMITED, USER_ADMINISTRATION);
+                            }
+                        }
+                    }
+                    catch ( InvalidPasswordException ipe )
+                    {
+                        SecurityUtil.publishErrorMessage(getPortletRequest(), SecurityResources.TOPIC_USER, bundle.getString("chgpwd.error.invalidPassword"));
+                    }
+                    catch ( InvalidNewPasswordException inpe )
+                    {
+                        SecurityUtil.publishErrorMessage(getPortletRequest(), SecurityResources.TOPIC_USER, bundle.getString("chgpwd.error.invalidNewPassword"));
+                    }
+                    catch ( PasswordAlreadyUsedException paue )
+                    {
+                        SecurityUtil.publishErrorMessage(getPortletRequest(), SecurityResources.TOPIC_USER, bundle.getString("chgpwd.error.passwordAlreadyUsed"));
+                    }
+                    catch (SecurityException e)
+                    {
+                        SecurityUtil.publishErrorMessage(getPortletRequest(), SecurityResources.TOPIC_USER, e.getMessage());
+                    }
+                    
+                    refreshData();
+                }
+            };
+            
+            PasswordTextField credentialValueField = new PasswordTextField("credentialValue", new PropertyModel(this, "credentialValue"));
+            form.add(credentialValueField);
+            
+            CheckBox credentialUpdateRequiredField = new CheckBox("credentialUpdateRequired", new PropertyModel(this, "credentialUpdateRequired"));
+            form.add(credentialUpdateRequiredField);
+            
+            Label lastAuthenticationDateLabel = new Label("lastAuthenticationDate", new PropertyModel(this, "lastAuthenticationDate"));
+            form.add(lastAuthenticationDateLabel);
+            
+            CheckBox credentialEnabledField = new CheckBox("credentialEnabled", new PropertyModel(this, "credentialEnabled"));
+            form.add(credentialEnabledField);
+            
+            Label credentialExpirationDateLabel = new Label("credentialExpirationDate", new PropertyModel(this, "credentialExpirationDate"));
+            form.add(credentialExpirationDateLabel);
+            
+            List expiredFlagChoices = new ArrayList();
+            expiredFlagChoices.add("active");
+            expiredFlagChoices.add("expired");
+            expiredFlagChoices.add("extend");
+            expiredFlagChoices.add("unlimited");
+            RadioChoice userExpiredFlagField = new RadioChoice("userExpiredFlag", new PropertyModel(this, "userExpiredFlag"), expiredFlagChoices);
+            form.add(userExpiredFlagField);
+            
+            add(form);
+        }
+        
+        public void setCredentialValue(String credentialValue)
+        {
+            this.credentialValue = credentialValue;
+        }
+        
+        public String getCredentialValue()
+        {
+            return this.credentialValue;
+        }
+        
+        public void setCredentialUpdateRequired(boolean credentialUpdateRequired)
+        {
+            this.credentialUpdateRequired = credentialUpdateRequired;
+        }
+        
+        public boolean getCredentialUpdateRequired()
+        {
+            return this.credentialUpdateRequired;
+        }
+        
+        public void setLastAuthenticationDate(Date lastAuthenticationDate)
+        {
+            this.lastAuthenticationDate = lastAuthenticationDate;
+        }
+        
+        public Date getLastAuthenticationDate()
+        {
+            return this.lastAuthenticationDate;
+        }
+        
+        public void setCredentialEnabled(boolean credentialEnabled)
+        {
+            this.credentialEnabled = credentialEnabled;
+        }
+        
+        public boolean getCredentialEnabled()
+        {
+            return this.credentialEnabled;
+        }
+        
+        public void setCredentialExpirationDate(Date credentialExpirationDate)
+        {
+            this.credentialExpirationDate = credentialExpirationDate;
+        }
+        
+        public Date getCredentialExpirationDate()
+        {
+            return this.credentialExpirationDate;
+        }
+        
+        public void setUserExpiredFlag(String userExpiredFlag)
+        {
+            this.userExpiredFlag= userExpiredFlag;
+        }
+        
+        public String getUserExpiredFlag()
+        {
+            return this.userExpiredFlag;
+        }
+        
+        protected void onBeforeRender()
+        {
+            super.onBeforeRender();
+            
+            if (getUserName() != this.userName)
+            {
+                refreshData();
+                this.userName = getUserName();
+            }
+        }
+        
+        protected void refreshData()
+        {
+            if (credential != null)
+            {
+                setCredentialUpdateRequired(credential.isUpdateRequired());
+                setCredentialEnabled(credential.isEnabled());
+                setLastAuthenticationDate(credential.getLastAuthenticationDate());
+                setCredentialExpirationDate(credential.getExpirationDate());
+                setUserExpiredFlag(credential.isExpired() ? "expired" : "active");            
+            }
+        }
+    }
+
+    protected class UserRolesPanel extends Panel
+    {
+        protected String userName;
+        protected String roleName;
+        protected List roleNames;
+        protected List fullRoleNames;
+        
+        protected UserRolesPanel(String id)
+        {
+            super(id);
+            
+            if (getUserName() != this.userName)
+            {
+                refreshData();
+                this.userName = getUserName();
+            }
+
+            Form userRolesForm = new Form("userRolesForm")
+            {
+                protected void onSubmit()
+                {
+                    for (Iterator it = getRoleNames().iterator(); it.hasNext(); )
+                    {
+                        Map roleMap = (Map) it.next();
+                        String roleName = (String) roleMap.get("name");
+                        
+                        if (Boolean.TRUE.equals(roleMap.get("checked")))
+                        {
+                            try
+                            {
+                                if (getRoleManager().roleExists(roleName))
+                                {
+                                    getRoleManager().removeRoleFromUser(getUserName(), roleName);
+                                    getAuditActivity().logAdminAuthorizationActivity(getPortletRequest().getUserPrincipal().getName(), getIPAddress(), getUserName(), AuditActivity.USER_DELETE_ROLE, roleName, USER_ADMINISTRATION);                                                                                                    
+                                }
+                            }
+                            catch (SecurityException e)
+                            {
+                                SecurityUtil.publishErrorMessage(getPortletRequest(), SecurityResources.TOPIC_USER, e.getMessage());
+                            }                
+                        }
+                    }
+                    
+                    refreshData();
+                }
+            };
+
+            SortableDataProvider dataProvider = new SortableDataProvider()
+            {
+                public int size()
+                {
+                    return getRoleNames().size();
+                }
+                
+                public IModel model(Object object)
+                {
+                    Map roleMap = (Map) object;
+                    return new Model((Serializable) roleMap);
+                }
+                
+                public Iterator iterator(int first, int count)
+                {
+                    return getRoleNames().subList(first, first + count).iterator();
+                }
+            };
+            
+            IColumn [] columns = 
+            {
+                new CheckBoxPropertyColumn(new Model(" "), "checked"),
+                new PropertyColumn(new ResourceModel("security.rolename"), "name")
+            };
+            
+            DataTable userRolesDataTable = new DataTable("entries", columns, dataProvider, 10)
+            {
+                protected Item newRowItem(String id, int index, IModel model)
+                {
+                    return new PortletOddEvenItem(id, index, model);
+                }
+            };
+            
+            userRolesDataTable.addTopToolbar(new HeadersToolbar(userRolesDataTable, dataProvider));
+            userRolesDataTable.addBottomToolbar(new NavigationToolbar(userRolesDataTable));
+            
+            userRolesForm.add(userRolesDataTable);
+            
+            add(userRolesForm);
+            
+            Form addRoleForm = new Form("addRoleForm")
+            {
+                protected void onSubmit()
+                {
+                    String roleName = getRoleName();
+                    
+                    if (roleName != null && roleName.trim().length() > 0)
+                    {
+                        try
+                        {
+                            getRoleManager().addRoleToUser(getUserName(), roleName);
+                            getAuditActivity().logAdminAuthorizationActivity(getPortletRequest().getUserPrincipal().getName(), getIPAddress(), getUserName(), AuditActivity.USER_ADD_ROLE, roleName, USER_ADMINISTRATION);
+                        }
+                        catch (SecurityException e)
+                        {
+                            SecurityUtil.publishErrorMessage(getPortletRequest(), SecurityResources.TOPIC_USER, e.getMessage());
+                        }
+                        
+                        refreshData();
+                    }
+                }
+            };
+            
+            DropDownChoice roleNameField = new DropDownChoice("roleName", new PropertyModel(this, "roleName"), getFullRoleNames());
+            addRoleForm.add(roleNameField);
+            
+            add(addRoleForm);
+        }
+        
+        public void setRoleName(String roleName)
+        {
+            this.roleName = roleName;
+        }
+        
+        public String getRoleName()
+        {
+            return this.roleName;
+        }
+
+        public List getRoleNames()
+        {
+            return this.roleNames;
+        }
+        
+        public List getFullRoleNames()
+        {
+            return this.fullRoleNames;
+        }
+        
+        protected void onBeforeRender()
+        {
+            super.onBeforeRender();
+            
+            if (getUserName() != this.userName)
+            {
+                refreshData();
+                this.userName = getUserName();
+            }
+        }
+        
+        protected void refreshData()
+        {
+            this.fullRoleNames = new LinkedList();
+            this.roleNames = new LinkedList();
+            
+            try
+            {
+                for (Iterator it = getRoleManager().getRoles(""); it.hasNext(); )
+                {
+                    Role role = (Role) it.next();
+                    this.fullRoleNames.add(role.getPrincipal().getName());
+                }
+            
+                if (getUserName() != null)
+                {
+                    Collection rolesForUser = getRoleManager().getRolesForUser(getUserName());
+                    
+                    for (Iterator it = rolesForUser.iterator(); it.hasNext(); )
+                    {
+                        Role role = (Role) it.next();
+                        Map roleMap = new HashMap();
+                        roleMap.put("name", role.getPrincipal().getName());
+                        roleMap.put("checked", Boolean.FALSE);
+                        this.roleNames.add(roleMap);
+                    }
+                }
+            }
+            catch (SecurityException e)
+            {
+                SecurityUtil.publishErrorMessage(getPortletRequest(), SecurityResources.TOPIC_USERS, e.getMessage());
+            }                                    
+        }
+    }
+
+    protected class UserGroupsPanel extends Panel
+    {
+        protected String userName;
+        protected String groupName;
+        protected List groupNames;
+        protected List fullGroupNames;
+        
+        protected UserGroupsPanel(String id)
+        {
+            super(id);
+            
+            if (getUserName() != this.userName)
+            {
+                refreshData();
+                this.userName = getUserName();
+            }
+
+            Form userGroupsForm = new Form("userGroupsForm")
+            {
+                protected void onSubmit()
+                {
+                    for (Iterator it = getGroupNames().iterator(); it.hasNext(); )
+                    {
+                        Map groupMap = (Map) it.next();
+                        String groupName = (String) groupMap.get("name");
+                        
+                        if (Boolean.TRUE.equals(groupMap.get("checked")))
+                        {
+                            try
+                            {
+                                if (getGroupManager().groupExists(groupName))
+                                {
+                                    getGroupManager().removeUserFromGroup(getUserName(), groupName);
+                                    getAuditActivity().logAdminAuthorizationActivity(getPortletRequest().getUserPrincipal().getName(), getIPAddress(), getUserName(), AuditActivity.USER_DELETE_GROUP, groupName, USER_ADMINISTRATION);
+                                }
+                            }
+                            catch (SecurityException e)
+                            {
+                                SecurityUtil.publishErrorMessage(getPortletRequest(), SecurityResources.TOPIC_USER, e.getMessage());
+                            }                
+                        }
+                    }
+                    
+                    refreshData();
+                }
+            };
+
+            SortableDataProvider dataProvider = new SortableDataProvider()
+            {
+                public int size()
+                {
+                    return getGroupNames().size();
+                }
+                
+                public IModel model(Object object)
+                {
+                    Map groupMap = (Map) object;
+                    return new Model((Serializable) groupMap);
+                }
+                
+                public Iterator iterator(int first, int count)
+                {
+                    return getGroupNames().subList(first, first + count).iterator();
+                }
+            };
+            
+            IColumn [] columns = 
+            {
+                new CheckBoxPropertyColumn(new Model(" "), "checked"),
+                new PropertyColumn(new ResourceModel("security.groupname"), "name")
+            };
+            
+            DataTable userGroupsDataTable = new DataTable("entries", columns, dataProvider, 10)
+            {
+                protected Item newRowItem(String id, int index, IModel model)
+                {
+                    return new PortletOddEvenItem(id, index, model);
+                }
+            };
+            
+            userGroupsDataTable.addTopToolbar(new HeadersToolbar(userGroupsDataTable, dataProvider));
+            userGroupsDataTable.addBottomToolbar(new NavigationToolbar(userGroupsDataTable));
+            
+            userGroupsForm.add(userGroupsDataTable);
+            
+            add(userGroupsForm);
+            
+            Form addGroupForm = new Form("addGroupForm")
+            {
+                protected void onSubmit()
+                {
+                    String groupName = getGroupName();
+                    
+                    if (groupName != null && groupName.trim().length() > 0)
+                    {
+                        try
+                        {
+                            getGroupManager().addUserToGroup(getUserName(), groupName);
+                            getAuditActivity().logAdminAuthorizationActivity(getPortletRequest().getUserPrincipal().getName(), getIPAddress(), getUserName(), AuditActivity.USER_ADD_GROUP, groupName, USER_ADMINISTRATION);
+                        }
+                        catch (SecurityException e)
+                        {
+                            SecurityUtil.publishErrorMessage(getPortletRequest(), SecurityResources.TOPIC_USER, e.getMessage());
+                        }
+                        
+                        refreshData();
+                    }
+                }
+            };
+            
+            DropDownChoice groupNameField = new DropDownChoice("groupName", new PropertyModel(this, "groupName"), getFullGroupNames());
+            addGroupForm.add(groupNameField);
+            
+            add(addGroupForm);
+        }
+        
+        public void setGroupName(String groupName)
+        {
+            this.groupName = groupName;
+        }
+        
+        public String getGroupName()
+        {
+            return this.groupName;
+        }
+        
+        public List getGroupNames()
+        {
+            return this.groupNames;
+        }
+        
+        public List getFullGroupNames()
+        {
+            return this.fullGroupNames;
+        }
+        
+        protected void onBeforeRender()
+        {
+            super.onBeforeRender();
+            
+            if (getUserName() != this.userName)
+            {
+                refreshData();
+                this.userName = getUserName();
+            }
+        }
+        
+        protected void refreshData()
+        {
+            this.fullGroupNames = new LinkedList();
+            this.groupNames = new LinkedList();
+            
+            try
+            {
+                for (Iterator it = getGroupManager().getGroups(""); it.hasNext(); )
+                {
+                    Group group = (Group) it.next();
+                    this.fullGroupNames.add(group.getPrincipal().getName());
+                }
+            
+                if (getUserName() != null)
+                {
+                    Collection groupsForUser = getGroupManager().getGroupsForUser(getUserName());
+                    
+                    for (Iterator it = groupsForUser.iterator(); it.hasNext(); )
+                    {
+                        Group group = (Group) it.next();
+                        Map groupMap = new HashMap();
+                        groupMap.put("name", group.getPrincipal().getName());
+                        groupMap.put("checked", Boolean.FALSE);
+                        this.groupNames.add(groupMap);
+                    }
+                }
+            }
+            catch (SecurityException e)
+            {
+                SecurityUtil.publishErrorMessage(getPortletRequest(), SecurityResources.TOPIC_USERS, e.getMessage());
+            }                                    
+        }
+    }
+
+    protected class UserProfilesPanel extends Panel
+    {
+        protected String userName;
+        protected String locatorName;
+        protected String ruleName;
+        protected List fullRules;
+        protected List userRules;
+        
+        protected UserProfilesPanel(String id)
+        {
+            super(id);
+            
+            if (getUserName() != this.userName)
+            {
+                refreshData();
+                this.userName = getUserName();
+            }
+            
+            Form userRulesForm = new Form("userRulesForm")
+            {
+                protected void onSubmit()
+                {
+                    try
+                    {
+                        Collection rules = getProfiler().getRulesForPrincipal(userPrincipal);
+                        
+                        for (Iterator it = getUserRules().iterator(); it.hasNext(); )
+                        {
+                            Map ruleMap = (Map) it.next();
+                            
+                            if (Boolean.TRUE.equals(ruleMap.get("checked")))
+                            {
+                                String locatorName = ((PrincipalRule) ruleMap.get("rule")).getLocatorName();
+                                
+                                for (Iterator ruleIter = rules.iterator(); ruleIter.hasNext(); )
+                                {
+                                    PrincipalRule rule = (PrincipalRule) ruleIter.next();
+                                    
+                                    if (rule.getLocatorName().equals(locatorName))
+                                    {
+                                        getProfiler().deletePrincipalRule(rule);
+                                        getAuditActivity().logAdminAuthorizationActivity(getPortletRequest().getUserPrincipal().getName(), getIPAddress(), getUserName(), AuditActivity.USER_DELETE_PROFILE, rule.getProfilingRule().getId() + "-" + rule.getLocatorName(), USER_ADMINISTRATION);
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    catch (Exception e)
+                    {
+                        SecurityUtil.publishErrorMessage(getPortletRequest(), SecurityResources.TOPIC_USER, e.getMessage());
+                    }
+                    
+                    refreshData();
+                }
+            };
+
+            SortableDataProvider dataProvider = new SortableDataProvider()
+            {
+                public int size()
+                {
+                    return getUserRules().size();
+                }
+                
+                public IModel model(Object object)
+                {
+                    Map ruleMap = (Map) object;
+                    return new Model((Serializable) ruleMap);
+                }
+                
+                public Iterator iterator(int first, int count)
+                {
+                    return getUserRules().subList(first, first + count).iterator();
+                }
+            };
+            
+            IColumn [] columns = 
+            {
+                new CheckBoxPropertyColumn(new Model(" "), "checked"),
+                new PropertyColumn(new ResourceModel("security.name"), "rule.locatorName"),
+                new PropertyColumn(new ResourceModel("security.value"), "rule.profilingRule")
+            };
+            
+            DataTable userRulesDataTable = new DataTable("entries", columns, dataProvider, 10)
+            {
+                protected Item newRowItem(String id, int index, IModel model)
+                {
+                    return new PortletOddEvenItem(id, index, model);
+                }
+            };
+            
+            userRulesDataTable.addTopToolbar(new HeadersToolbar(userRulesDataTable, dataProvider));
+            userRulesDataTable.addBottomToolbar(new NavigationToolbar(userRulesDataTable));
+            
+            userRulesForm.add(userRulesDataTable);
+            
+            add(userRulesForm);
+            
+            Form addRuleForm = new Form("addRuleForm")
+            {
+                protected void onSubmit()
+                {
+                    String locatorName = getLocatorName();
+                    
+                    if (locatorName != null && locatorName.trim().length() > 0)
+                    {
+                        try
+                        {
+                            String ruleName = getRuleName();
+                            getProfiler().setRuleForPrincipal(userPrincipal, getProfiler().getRule(ruleName), locatorName);
+                            getAuditActivity().logAdminAuthorizationActivity(getPortletRequest().getUserPrincipal().getName(), getIPAddress(), getUserName(), AuditActivity.USER_ADD_PROFILE, ruleName + "-" + locatorName, USER_ADMINISTRATION);  
+                        }
+                        catch (Exception e)
+                        {
+                            SecurityUtil.publishErrorMessage(getPortletRequest(), SecurityResources.TOPIC_USER, e.getMessage());
+                        }
+                        
+                        refreshData();
+                    }
+                }
+            };
+            
+            TextField locatorNameField = new TextField("locatorName", new PropertyModel(this, "locatorName"));
+            addRuleForm.add(locatorNameField);
+
+            DropDownChoice ruleNameField = new DropDownChoice("ruleName", new PropertyModel(this, "ruleName"), getFullRules());
+            addRuleForm.add(ruleNameField);
+            
+            add(addRuleForm);
+        }
+        
+        public void setLocatorName(String locatorName)
+        {
+            this.locatorName = locatorName;
+        }
+        
+        public String getLocatorName()
+        {
+            return this.locatorName;
+        }
+        
+        public void setRuleName(String ruleName)
+        {
+            this.ruleName = ruleName;
+        }
+        
+        public String getRuleName()
+        {
+            return this.ruleName;
+        }
+        
+        public List getFullRules()
+        {
+            return this.fullRules;
+        }
+        
+        public List getUserRules()
+        {
+            return this.userRules;
+        }
+        
+        protected void onBeforeRender()
+        {
+            super.onBeforeRender();
+            
+            if (getUserName() != this.userName)
+            {
+                refreshData();
+                this.userName = getUserName();
+            }
+        }
+
+        protected void refreshData()
+        {
+            this.fullRules = new ArrayList();
+            this.userRules = new ArrayList();
+            
+            for (Iterator it = getProfiler().getRules().iterator(); it.hasNext(); )
+            {
+                ProfilingRule rule = (ProfilingRule) it.next();
+                this.fullRules.add(rule);
+            }
+            
+            if (userPrincipal != null)
+            {
+                for (Iterator it = getProfiler().getRulesForPrincipal(userPrincipal).iterator(); it.hasNext(); )
+                {
+                    PrincipalRule rule = (PrincipalRule) it.next();
+                    Map ruleMap = new HashMap();
+                    ruleMap.put("rule", rule);
+                    ruleMap.put("checked", Boolean.FALSE);
+                    this.userRules.add(ruleMap);
+                }
+            }
+        }
+    }
+
+}
\ No newline at end of file

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails.properties
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails.properties?rev=629431&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails.properties (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails.properties Wed Feb 20 03:59:16 2008
@@ -0,0 +1,96 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# $Id: SecurityResources.properties 348264 2005-11-22 22:06:45Z taylor $
+#
+
+## general security strings
+security.refresh = Refresh
+security.new = New
+security.save = Save
+security.delete = Delete
+security.deleteQuestion = OK to delete?
+
+security.name=Name
+security.value=Value
+security.rule=Rule
+security.update=Update
+security.remove=Remove
+security.add=Add
+security.rolename=Role Name
+security.groupname=Group Name
+security.profile.rules=Profile Rules
+security.enabled=enabled
+security.expired=expired
+security.active=active
+security.Extend=Extend
+security.Extend.Unlimited=Extend Unlimited
+security.credential.value=Value
+security.credential.update.required=change required at next logon
+security.credential.last.logon=Last Logon
+security.credential.expires=Expires
+
+## User Information Tabs
+pam.details.tabs.user_attributes=Attributes
+pam.details.tabs.user_role=Role
+pam.details.tabs.user_group=Group
+pam.details.tabs.user_profile=Profile
+pam.details.tabs.user_credential=Password
+pam.details.tabs.user=User
+
+#User Information User Tab
+user.attributes.header=Attributes
+user.password.header=Password
+
+# User Information Preferences
+user.details.preference.showUserTab=Show User Tab
+user.details.preference.showAttributesTab=Show Attributes Tab
+user.details.preference.showPasswordTab=Show Password Tab
+user.details.preference.showRoleTab=Show Role Tab
+user.details.preference.showGroupTab=Show Group Tab
+user.details.preference.showProfileTab=Show Profile Tab
+user.details.preference.showPasswordOnUserTab=Show Password on User Tab
+user.details.preference.showPasswordExpiration=Show Password Expiration
+user.details.preference.showChangePasswordRequiredForAddUser=Define default \"Change Password Required on First Login\" for new User
+user.details.preference.showRoleForAddUser=Define default Role for new User
+user.details.preference.showProfileForAddUser=Define default Profile for new User
+user.details.preference.showSubsiteForAddUser=Allow assignment of Subsite for new User
+user.details.preference.defaultChangePasswordRequired=Default \"Change Password Required on First Login\"
+user.details.preference.defaultRole=Default Role for new User
+user.details.preference.requiredRole=Required Role for new User
+user.details.preference.defaultProfile=Default Profile for new User
+user.details.preference.defaultSubsite=Default Subsite for new User
+user.details.preference.newUserTemplateDirectory=New User Template Directory
+user.details.preference.subsiteRootFolder=Subsite Root Folder
+user.details.save.preferences=Save
+
+## tree
+tree.security.root=Jetspeed Security
+tree.user.root=Users
+
+## user
+user.principal.name=Principal
+
+security.common.locator.names=Common Locator Names: [page,docset]
+security.add.user=Add User
+security.new.user.name=New User Name:
+security.change.password.on.first.login=Change Password on first Login:
+security.password=Password:
+security.default.role=Default Role:
+security.profiling.rule=Profiling Rule:
+security.add.user.submit=Add User
+security.add.new.user=Add New User
+security.remove.user=Remove User
+security.subsites=Subsites:

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetailsApplication.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetailsApplication.java?rev=629431&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetailsApplication.java (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetailsApplication.java Wed Feb 20 03:59:16 2008
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.portlets.security.users;
+
+import javax.portlet.PortletRequest;
+
+import org.apache.wicket.Request;
+import org.apache.wicket.RequestContext;
+import org.apache.wicket.RequestCycle;
+import org.apache.wicket.Response;
+import org.apache.wicket.protocol.http.WebApplication;
+import org.apache.wicket.protocol.http.WebRequest;
+import org.apache.wicket.protocol.http.WebRequestCycle;
+import org.apache.wicket.protocol.http.portlet.PortletRequestContext;
+
+import org.apache.portals.messaging.PortletMessaging;
+
+import org.apache.jetspeed.CommonPortletServices;
+import org.apache.jetspeed.security.User;
+import org.apache.jetspeed.security.UserManager;
+import org.apache.jetspeed.security.SecurityException;
+import org.apache.jetspeed.portlets.security.SecurityResources;
+import org.apache.jetspeed.portlets.security.SecurityUtil;
+
+import org.apache.jetspeed.portlets.wicket.AbstractAdminWebApplication;
+
+/**
+ * User Details Wicket Application
+ * 
+ * @author <a href="mailto:woonsan@apache.org">Woonsan Ko</a>
+ * @version $Id: $
+ */
+public class WicketUserDetailsApplication extends AbstractAdminWebApplication
+{
+
+	/**
+	 * @see org.apache.wicket.Application#getHomePage()
+	 */
+	public Class getHomePage()
+	{
+        PortletRequest request = ((PortletRequestContext) RequestContext.get()).getPortletRequest();
+        String userName = (String) PortletMessaging.receive(request, SecurityResources.TOPIC_USERS, SecurityResources.MESSAGE_SELECTED);
+
+        if (userName != null)
+        {
+            try
+            {
+                UserManager userManager = (UserManager) request.getAttribute(CommonPortletServices.CPS_USER_MANAGER_COMPONENT);
+                User user = userManager.getUser(userName);
+                
+                if (user != null)
+                {
+                    return WicketUserDetails.class;
+                }
+            }
+            catch (Exception e)
+            {
+            }
+        }
+        
+		return WicketUserAdd.class;
+	}
+    
+}

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_ca.properties
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_ca.properties?rev=629431&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_ca.properties (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_ca.properties Wed Feb 20 03:59:16 2008
@@ -0,0 +1,81 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# $Id: SecurityResources_en.properties,v 1.3 2005/04/26 14:07:04 ate Exp $
+#
+# LOCALIZATION MAINTAINER:
+#  Jetspeed Development Team
+
+## general security strings
+security.name=Nom
+security.value=Valor
+security.rule=Regla
+security.update=Actualitzar
+security.remove=Esborrar
+security.add=Afegir
+security.rolename=Nom del rol
+security.groupname=Nom del grup
+security.profile.rules=Regles del perfil
+security.enabled=activat
+security.expired=caducat
+security.credential.value=Valor
+security.credential.update.required=canvi obligatori en la seg\u00fcent entrada
+security.credential.last.logon=Ultima entrada
+security.credential.expiris=Caduca
+
+security.refresh = Refrescar
+security.new = Nou
+security.save = Gravar
+security.delete = Esborrar
+security.deleteQuestion = Segur que vols esborrar?
+
+## User Information Tabs
+pam.details.tabs.user_attributes=Atributs
+pam.details.tabs.user_role=Rol
+pam.details.tabs.user_group=Grup
+pam.details.tabs.user_profile=Perfil
+pam.details.tabs.user_credential=Contrasenya
+pam.details.tabs.user=Usuari
+
+# User Information User Tab
+user.attributes.header=Atributs
+user.password.header=Contrasenya
+
+# User Information Preferences
+user.details.preference.showUserTab=Mostrar pestanya d'usuari
+user.details.preference.showAttributesTab=Mostrar pestanya d'atributs
+user.details.preference.showPasswordTab=Mostrar pestanya de contrasenya
+user.details.preference.showRoleTab=Mostrar pestanya de rol
+user.details.preference.showGroupTab=Mostrar pestanya de grup
+user.details.preference.showProfileTab=Mostrar pestanya de perfil
+user.details.preference.showPasswordOnUserTab=Mostrar contrasenya en pestanya d'usuari
+user.details.preference.showRoleForAddUser=Definir rol per defecte per a un usuari nou
+user.details.preference.showProfileForAddUser=Definir perfil per defecte per a un usuari nou
+user.details.preference.defaultRole=Rol per defecte per a un usuari nou
+user.details.preference.defaultProfile=Perfil per defecte per a un usuari nou
+user.details.save.preferences=Gravar
+
+## tree
+tree.security.root=Seguretat Jetspeed
+tree.user.root=Usuaris
+
+## user
+user.principal.name=Principal
+
+c
+email.subject.forgotten.password = Password Notification
+
+# registration
+email.subject.registration = Registration Confirmation

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_de.properties
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_de.properties?rev=629431&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_de.properties (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_de.properties Wed Feb 20 03:59:16 2008
@@ -0,0 +1,87 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# $Id: j2-german_translations.txt,v 1.3 2005/09/25 19:02:56 thorsten Exp $
+#
+# LOCALIZATION MAINTAINER:
+#  Thorsten Berger <jetspeed@thorsten-berger.net>
+
+## general security strings
+security.name=Name
+security.value=Wert
+security.rule=Regel
+security.update=Aktualisieren
+security.remove=L\u00f6schen
+security.add=Hinzuf\u00fcgen
+security.rolename=Rollenname
+security.groupname=Gruppenname
+security.profile.rules=Profil-Regeln
+security.enabled=aktiviert
+security.expired=abgelaufen
+security.active=aktiv
+security.Extend=Erweitern
+security.Extend.Unlimited=Unbegrenzt Erweitern
+security.credential.value=Wert
+security.credential.update.required=\u00c4nderung bei n\u00e4chstem Login n\u00f6tig.
+security.credential.last.logon=Letzter Login
+security.credential.expires=L\u00e4uft ab
+
+security.refresh = Aktualisieren
+security.new = Neu
+security.save = Speichern
+security.delete = L\u00f6schen
+security.deleteQuestion = Wirklich l\u00f6schen?
+
+## User Information Tabs
+pam.details.tabs.user_attributes=Attribute
+pam.details.tabs.user_role=Rolle
+pam.details.tabs.user_group=Gruppe
+pam.details.tabs.user_profile=Profil
+pam.details.tabs.user_credential=Passwort
+pam.details.tabs.user=Benutzer
+
+#User Information User Tab
+user.attributes.header=Attribute
+user.password.header=Passwort
+
+# User Information Preferences
+user.details.preference.showUserTab=Benutzer-Reiter anzeigen
+user.details.preference.showAttributesTab=Attribute-Reiter anzeigen
+user.details.preference.showPasswordTab=Passwort-Reiter anzeigen
+user.details.preference.showRoleTab=Rollen-Reiter anzeigen
+user.details.preference.showGroupTab=Gruppen-Reiter anzeigen
+user.details.preference.showProfileTab=Profil-Reiter anzeigen
+user.details.preference.showPasswordOnUserTab=Passwort auf Benutzer-Reiter anzeigen
+user.details.preference.showPasswordExpiration=Ablaufzeit des Passwortes anzeigen
+user.details.preference.showChangePasswordRequiredForAddUser=Verwende Standardwert f\u00fcr \"Passwort muss bei erstem Login ge\u00e4ndert werden\" beim Anlegen neuer Benutzer
+user.details.preference.showRoleForAddUser=Verwende Standard-Rolle beim Anlegen neuer Benutzer
+user.details.preference.showProfileForAddUser=Verwende Standard-Profil beim Anlegen neuer Benutzer
+user.details.preference.defaultChangePasswordRequired=Standardwert f\u00fcr \"Passwort muss bei erstem Login ge\u00e4ndert werden\"
+user.details.preference.defaultRole=Standard-Rolle f\u00fcr neue Benutzer
+user.details.preference.defaultProfile=Standard-Profil f\u00fcr neue Benutzer
+user.details.save.preferences=Speichern
+
+## tree
+tree.security.root=Jetspeed-Sicherheit
+tree.user.root=Benutzer
+
+## user
+user.principal.name=Prinzipal
+
+# forgotten password feature
+email.subject.forgotten.password = Password Notification
+
+# registration
+email.subject.registration = Registration Confirmation

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_el.properties
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_el.properties?rev=629431&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_el.properties (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_el.properties Wed Feb 20 03:59:16 2008
@@ -0,0 +1,98 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# $Id: SecurityResources_en.properties 348264 2005-11-22 22:06:45Z taylor $
+#
+# LOCALIZATION MAINTAINER:
+#  Jetspeed Development Team
+
+## general security strings
+security.name=\u038c\u03bd\u03bf\u03bc\u03b1
+security.value=\u03a4\u03b9\u03bc\u03ae
+security.rule=\u039a\u03b1\u03bd\u03cc\u03bd\u03b1\u03c2
+security.update=\u0395\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7
+security.remove=\u0391\u03c6\u03b1\u03af\u03c1\u03b5\u03c3\u03b7
+security.add=\u03a0\u03c1\u03cc\u03c3\u03b8\u03b5\u03c3\u03b7
+security.rolename=\u038c\u03bd\u03bf\u03bc\u03b1 \u03c1\u03cc\u03bb\u03bf\u03c5
+security.groupname=\u038c\u03bd\u03bf\u03bc\u03b1 \u03bf\u03bc\u03ac\u03b4\u03b1\u03c2
+security.profile.rules=\u039a\u03b1\u03bd\u03cc\u03bd\u03b5\u03c2 \u03c0\u03c1\u03bf\u03c6\u03af\u03bb
+security.enabled=\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03bf
+security.expired=\u03bb\u03b7\u03b3\u03bc\u03ad\u03bd\u03bf
+security.active=\u03b5\u03bd\u03b5\u03c1\u03b3\u03cc
+security.Extend=\u0395\u03c0\u03ad\u03ba\u03c4\u03b1\u03c3\u03b7
+security.Extend.Unlimited=\u0391\u03c0\u03b5\u03c1\u03b9\u03cc\u03c1\u03b9\u03c3\u03c4\u03b7 \u03b5\u03c0\u03ad\u03ba\u03c4\u03b1\u03c3\u03b7
+security.credential.value=\u03a4\u03b9\u03bc\u03ae
+security.credential.update.required=\u03b1\u03c0\u03b1\u03b9\u03c4\u03b5\u03af\u03c4\u03b1\u03b9 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ae \u03c3\u03c4\u03b7\u03bd \u03b5\u03c0\u03cc\u03bc\u03b5\u03bd\u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7
+security.credential.last.logon=\u03a4\u03b5\u03bb\u03b5\u03c5\u03c4\u03b1\u03af\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7
+security.credential.expires=\u039b\u03ae\u03b3\u03b5\u03b9
+
+security.refresh = \u0391\u03bd\u03b1\u03bd\u03ad\u03c9\u03c3\u03b7
+security.new = \u039d\u03ad\u03bf
+security.save = \u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7
+security.delete = \u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae
+security.deleteQuestion = OK \u03b3\u03b9\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae;
+
+## User Information Tabs
+pam.details.tabs.user_attributes=\u03a7\u03b1\u03c1\u03b1\u03ba\u03c4\u03b7\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac
+pam.details.tabs.user_role=\u03a1\u03cc\u03bb\u03bf\u03c2
+pam.details.tabs.user_group=\u039f\u03bc\u03ac\u03b4\u03b1
+pam.details.tabs.user_profile=\u03a0\u03c1\u03bf\u03c6\u03af\u03bb
+pam.details.tabs.user_credential=\u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2
+pam.details.tabs.user=\u03a7\u03c1\u03ae\u03c3\u03c4\u03b7\u03c2
+
+#User Information User Tab
+user.attributes.header=\u03a7\u03b1\u03c1\u03b1\u03ba\u03c4\u03b7\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac
+user.password.header=\u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2
+
+# User Information Preferences
+user.details.preference.showUserTab=\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03ba\u03b1\u03c1\u03c4\u03ad\u03bb\u03b1\u03c2 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7
+user.details.preference.showAttributesTab=\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03ba\u03b1\u03c1\u03c4\u03ad\u03bb\u03b1\u03c2 \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03b7\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03ce\u03bd
+user.details.preference.showPasswordTab=\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03ba\u03b1\u03c1\u03c4\u03ad\u03bb\u03b1\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd
+user.details.preference.showRoleTab=\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03ba\u03b1\u03c1\u03c4\u03ad\u03bb\u03b1\u03c2 \u03c1\u03cc\u03bb\u03c9\u03bd
+user.details.preference.showGroupTab=\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03ba\u03b1\u03c1\u03c4\u03ad\u03bb\u03b1\u03c2 \u03bf\u03bc\u03ac\u03b4\u03c9\u03bd
+user.details.preference.showProfileTab=\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03ba\u03b1\u03c1\u03c4\u03ad\u03bb\u03b1\u03c2 \u03c0\u03c1\u03bf\u03c6\u03af\u03bb
+user.details.preference.showPasswordOnUserTab=\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd \u03c3\u03c4\u03b7\u03bd \u03ba\u03b1\u03c1\u03c4\u03ad\u03bb\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7
+user.details.preference.showPasswordExpiration=\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03bb\u03ae\u03be\u03b7\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd
+user.details.preference.showChangePasswordRequiredForAddUser=\u039f\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2 \u03c0\u03c1\u03bf\u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c5 \u03bc\u03b7\u03bd\u03cd\u03bc\u03b1\u03c4\u03bf\u03c2 \"\u0391\u03c0\u03b1\u03b9\u03c4\u03b5\u03af\u03c4\u03b1\u03b9 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ae \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd \u03c3\u03c4\u03b7\u03bd \u03c0\u03c1\u03ce\u03c4\u03b7 \u03b5\u03af\u03c3\u03bf\u03b4\u03bf\" \u03b3\u03b9\u03b1 \u03c4\u03bf\u03c5\u03c2 \u03bd\u03ad\u03bf\u03c5\u03c2 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b5\u03c2
+user.details.preference.showRoleForAddUser=\u039f\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2 \u03c0\u03c1\u03bf\u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c5 \u03c1\u03cc\u03bb\u03bf\u03c5 \u03b3\u03b9\u03b1 \u03c4\u03bf\u03c5\u03c2 \u03bd\u03ad\u03bf\u03c5\u03c2 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b5\u03c2
+user.details.preference.showProfileForAddUser=\u039f\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2 \u03c0\u03c1\u03bf\u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c5 \u03c0\u03c1\u03bf\u03c6\u03af\u03bb \u03b3\u03b9\u03b1 \u03c4\u03bf\u03c5\u03c2 \u03bd\u03ad\u03bf\u03c5\u03c2 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b5\u03c2
+user.details.preference.defaultChangePasswordRequired=\u03a0\u03c1\u03bf\u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf \"\u0391\u03c0\u03b1\u03b9\u03c4\u03b5\u03af\u03c4\u03b1\u03b9 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ae \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd \u03c3\u03c4\u03b7\u03bd \u03c0\u03c1\u03ce\u03c4\u03b7 \u03b5\u03af\u03c3\u03bf\u03b4\u03bf\"
+user.details.preference.defaultRole=\u03a0\u03c1\u03bf\u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2 \u03c1\u03cc\u03bb\u03bf\u03c2 \u03b3\u03b9\u03b1 \u03c4\u03bf\u03c5\u03c2 \u03bd\u03ad\u03bf\u03c5\u03c2 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b5\u03c2
+user.details.preference.defaultProfile=\u03a0\u03c1\u03bf\u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf \u03c0\u03c1\u03bf\u03c6\u03af\u03bb \u03b3\u03b9\u03b1 \u03c4\u03bf\u03c5\u03c2 \u03bd\u03ad\u03bf\u03c5\u03c2 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b5\u03c2
+user.details.save.preferences=\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7
+
+## tree
+tree.security.root=Jetspeed Security
+tree.user.root=\u03a7\u03c1\u03ae\u03c3\u03c4\u03b5\u03c2
+
+## user
+user.principal.name=Principal
+
+security.common.locator.names=Common Locator Names: [page,docset]
+security.add.user=\u03a0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7
+security.new.user.name=\u038c\u03bd\u03bf\u03bc\u03b1 \u03bd\u03ad\u03bf\u03c5 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7:
+security.change.password.on.first.login=\u0391\u03bb\u03bb\u03b1\u03b3\u03ae \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd \u03c3\u03c4\u03b7\u03bd \u03c0\u03c1\u03ce\u03c4\u03b7 \u03b5\u03af\u03c3\u03bf\u03b4\u03bf:
+security.password=\u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2:
+security.default.role=\u03a0\u03c1\u03bf\u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2 \u03c1\u03cc\u03bb\u03bf\u03c2:
+security.profiling.rule=\u039a\u03b1\u03bd\u03cc\u03bd\u03b1\u03c2 \u03c0\u03c1\u03bf\u03c6\u03af\u03bb:
+security.add.user.submit=\u03a0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7
+security.add.new.user=\u03a0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7 \u03bd\u03ad\u03bf\u03c5 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7
+security.remove.user=\u0391\u03c6\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7
+
+# forgotten password feature
+email.subject.forgotten.password = \u0395\u03b9\u03b4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03b3\u03b9\u03b1 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc
+
+# registration
+email.subject.registration = \u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7 \u03b5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_en.properties
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_en.properties?rev=629431&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_en.properties (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_en.properties Wed Feb 20 03:59:16 2008
@@ -0,0 +1,104 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# $Id: SecurityResources_en.properties 348264 2005-11-22 22:06:45Z taylor $
+#
+# LOCALIZATION MAINTAINER:
+#  Jetspeed Development Team
+
+## general security strings
+security.name=Name
+security.value=Value
+security.rule=Rule
+security.update=Update
+security.remove=Remove
+security.add=Add
+security.rolename=Role Name
+security.groupname=Group Name
+security.profile.rules=Profile Rules
+security.enabled=enabled
+security.expired=expired
+security.active=active
+security.Extend=Extend
+security.Extend.Unlimited=Extend Unlimited
+security.credential.value=Value
+security.credential.update.required=change required at next logon
+security.credential.last.logon=Last Logon
+security.credential.expires=Expires
+
+security.refresh = Refresh
+security.new = New
+security.save = Save
+security.delete = Delete
+security.deleteQuestion = OK to delete?
+
+## User Information Tabs
+pam.details.tabs.user_attributes=Attributes
+pam.details.tabs.user_role=Role
+pam.details.tabs.user_group=Group
+pam.details.tabs.user_profile=Profile
+pam.details.tabs.user_credential=Password
+pam.details.tabs.user=User
+
+#User Information User Tab
+user.attributes.header=Attributes
+user.password.header=Password
+
+# User Information Preferences
+user.details.preference.showUserTab=Show User Tab
+user.details.preference.showAttributesTab=Show Attributes Tab
+user.details.preference.showPasswordTab=Show Password Tab
+user.details.preference.showRoleTab=Show Role Tab
+user.details.preference.showGroupTab=Show Group Tab
+user.details.preference.showProfileTab=Show Profile Tab
+user.details.preference.showPasswordOnUserTab=Show Password on User Tab
+user.details.preference.showPasswordExpiration=Show Password Expiration
+user.details.preference.showChangePasswordRequiredForAddUser=Define default \"Change Password Required on First Login\" for new User
+user.details.preference.showRoleForAddUser=Define default Role for new User
+user.details.preference.showProfileForAddUser=Define default Profile for new User
+user.details.preference.showSubsiteForAddUser=Allow assignment of Subsite for new User
+user.details.preference.defaultChangePasswordRequired=Default \"Change Password Required on First Login\"
+user.details.preference.defaultRole=Default Role for new User
+user.details.preference.requiredRole=Required Role for new User
+user.details.preference.defaultProfile=Default Profile for new User
+user.details.preference.defaultSubsite=Default Subsite for new User
+user.details.preference.newUserTemplateDirectory=New User Template Directory
+user.details.preference.subsiteRootFolder=Subsite Root Folder
+user.details.save.preferences=Save
+
+## tree
+tree.security.root=Jetspeed Security
+tree.user.root=Users
+
+## user
+user.principal.name=Principal
+
+security.common.locator.names=Common Locator Names: [page,docset]
+security.add.user=Add User
+security.new.user.name=New User Name:
+security.change.password.on.first.login=Change Password on first Login:
+security.password=Password:
+security.default.role=Default Role:
+security.profiling.rule=Profiling Rule:
+security.add.user.submit=Add User
+security.add.new.user=Add New User
+security.remove.user=Remove User
+security.subsites=Subsites:
+
+# forgotten password feature
+email.subject.forgotten.password = Password Notification
+
+# registration
+email.subject.registration = Registration Confirmation

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_es.properties
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_es.properties?rev=629431&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_es.properties (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/security/users/WicketUserDetails_es.properties Wed Feb 20 03:59:16 2008
@@ -0,0 +1,81 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# $Id: SecurityResources_en.properties,v 1.3 2005/04/26 14:07:04 ate Exp $
+#
+# LOCALIZATION MAINTAINER:
+#  Jetspeed Development Team
+
+## general security strings
+security.name=Nombre
+security.value=Valor
+security.rule=Regla
+security.update=Actualizar
+security.remove=Borrar
+security.add=A\u00f1adir
+security.rolename=Nombre del rol
+security.groupname=Nombre del grupo
+security.profile.rules=Reglas del perfil
+security.enabled=activado
+security.expired=caducado
+security.credential.value=Valor
+security.credential.update.required=cambio obligatorio en la siguiente entrada
+security.credential.last.logon=Ultima entrada
+security.credential.expires=Caduca
+
+security.refresh = Refrescar
+security.new = Nuevo
+security.save = Grabar
+security.delete = Borrar
+security.deleteQuestion = \u00bfSeguro que quieres borrar?
+
+## User Information Tabs
+pam.details.tabs.user_attributes=Atributos
+pam.details.tabs.user_role=Rol
+pam.details.tabs.user_group=Grupo
+pam.details.tabs.user_profile=Perfil
+pam.details.tabs.user_credential=Contrase\u00f1a
+pam.details.tabs.user=Usuario
+
+#User Information User Tab
+user.attributes.header=Atributos
+user.password.header=Contrase\u00f1a
+
+# User Information Preferences
+user.details.preference.showUserTab=Mostrar pesta\u00f1a de usuario
+user.details.preference.showAttributesTab=Mostrar pesta\u00f1a de atributos
+user.details.preference.showPasswordTab=Mostrar pesta\u00f1a de contrase\u00f1a
+user.details.preference.showRoleTab=Mostrar pesta\u00f1a de rol
+user.details.preference.showGroupTab=Mostrar pesta\u00f1a de grupo
+user.details.preference.showProfileTab=Mostrar pesta\u00f1a de perfil
+user.details.preference.showPasswordOnUserTab=Mostrar contrase\u00f1a en pesta\u00f1a de usuario
+user.details.preference.showRoleForAddUser=Definir rol por defecto para un usuario nuevo
+user.details.preference.showProfileForAddUser=Definir perfil por defecto para un usuario nuevo
+user.details.preference.defaultRole=Rol por defecto para un usuario nuevo
+user.details.preference.defaultProfile=Perfil por defecto para un usuario nuevo
+user.details.save.preferences=Grabar
+
+## tree
+tree.security.root=Seguridad Jetspeed
+tree.user.root=Usuarios
+
+## user
+user.principal.name=Principal
+
+# forgotten password feature
+email.subject.forgotten.password = Password Notification
+
+# registration
+email.subject.registration = Registration Confirmation



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org


Mime
View raw message