[jboss-svn-commits] JBL Code SVN: r19119 - in labs/jbosslabs/labs-3.0-build: views/admin/src/main/java/org/jboss/labs/admin/action/license and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Mar 19 10:40:17 EDT 2008


Author: wrzep
Date: 2008-03-19 10:40:17 -0400 (Wed, 19 Mar 2008)
New Revision: 19119

Added:
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/license/
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/license/ProjectLicensesFactory.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/license/UpdateProjectLicenses.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/licenses.xhtml
Modified:
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/License.java
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Project.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/license/ShowLicense.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/ShowView.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/SecurityManager.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/home.xhtml
Log:
JBLAB-915 even more licences stuff


Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/License.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/License.java	2008-03-19 14:05:03 UTC (rev 19118)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/License.java	2008-03-19 14:40:17 UTC (rev 19119)
@@ -129,4 +129,8 @@
     public void setNextVersionLicense(License license1) {
         this.nextVersionLicense = license1;
     }
+
+    public String toLicenseString() {
+        return name + " ver. " + licenseVersion;
+    }
 }

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Project.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Project.java	2008-03-19 14:05:03 UTC (rev 19118)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Project.java	2008-03-19 14:40:17 UTC (rev 19119)
@@ -167,6 +167,9 @@
     }
 
     public List<License> getLicenseList() {
+        if (licenseList == null) {
+            setLicenseList(new ArrayList<License>());
+        }
         return licenseList;
     }
 

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/license/ShowLicense.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/license/ShowLicense.java	2008-03-19 14:05:03 UTC (rev 19118)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/license/ShowLicense.java	2008-03-19 14:40:17 UTC (rev 19119)
@@ -25,7 +25,6 @@
 
 import org.jboss.labs.admin.Pages;
 import org.jboss.labs.core.model.License;
-import org.jboss.labs.core.service.LicenseService;
 import org.jboss.labs.exception.admin.ProjectNotFoundException;
 import org.jboss.seam.ScopeType;
 import org.jboss.seam.annotations.Begin;
@@ -35,8 +34,8 @@
 import org.jboss.seam.core.Conversation;
 
 import javax.faces.model.SelectItem;
-import java.util.List;
 import java.util.ArrayList;
+import java.util.List;
 
 /**
  * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
@@ -60,7 +59,7 @@
 
         this.license = license;
 
-        conversation.setDescription(license.getName());
+        conversation.setDescription(license.getName() + " ver. " + license.getLicenseVersion());
 
         licenseItems = new ArrayList<SelectItem>();
 

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/ShowView.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/ShowView.java	2008-03-19 14:05:03 UTC (rev 19118)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/ShowView.java	2008-03-19 14:40:17 UTC (rev 19119)
@@ -23,37 +23,40 @@
 
 package org.jboss.labs.admin.action.project;
 
-import com.google.inject.Inject;
-import org.jboss.labs.core.model.Project;
-import org.jboss.labs.core.service.ProjectService;
-import org.jboss.labs.injection.seam.Guice;
-import org.jboss.labs.exception.admin.ProjectNotFoundException;
 import org.jboss.labs.admin.Pages;
-import org.jboss.seam.annotations.*;
-import org.jboss.seam.annotations.web.RequestParameter;
-import org.jboss.seam.log.Log;
+import org.jboss.labs.core.service.LicenseService;
+import org.jboss.labs.core.model.License;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Out;
 import org.jboss.seam.ScopeType;
-import org.jboss.seam.core.Conversation;
 
+import java.util.List;
 
+
 @Name("showView")
 public class ShowView {
 
+    @In private LicenseService licenseService;
+
+    @Out(scope = ScopeType.CONVERSATION, required = false) private List<License> licenses;    
+
     public String show(String description) {
 
         String page = ((Character) description.charAt(0)).toString().toLowerCase()
                 .concat(description.substring(1));
 
+        licenses = licenseService.getLicenses();
+
         return Pages.PROJECT_PREFIX + '/' + page + ".seam";
     }
 
     public String[] getProjectViews() {
-        return new String[] {"Overview", "Members" };
+        return new String[] {"Overview", "Members", "Licenses" };
     }
 
     public String[] getToDoViews() {
-        return new String[] {"Releases",
-                             "Licences", "ContributorAgreements",
+        return new String[] {"Releases", "ContributorAgreements",
                              "Blogs (external)", "Forums (external)"};
     }
 }
\ No newline at end of file

Added: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/license/ProjectLicensesFactory.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/license/ProjectLicensesFactory.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/license/ProjectLicensesFactory.java	2008-03-19 14:40:17 UTC (rev 19119)
@@ -0,0 +1,72 @@
+/*
+* JBoss Labs. http://labs.jboss.com/jbosslabs
+*
+* Copyright © 2008  Red Hat Middleware, LLC. All rights reserved.
+*
+* This copyrighted material is made available to anyone wishing to use,
+* modify, copy, or redistribute it subject to the terms and conditions
+* of the GNU Lesser General Public License, v. 2.1.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT A WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License, v.2.1 along with this distribution; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+* 02110-1301, USA.
+*
+* Red Hat Author(s): Bob McWhirter, Przemyslaw Dej, Ryszard Kozmik,
+*     Tomasz Szymanski, Adam Warski, Pawel Wrzeszcz
+*/
+
+package org.jboss.labs.admin.action.project.license;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Factory;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.ScopeType;
+import org.jboss.labs.core.model.Project;
+import org.jboss.labs.core.model.License;
+
+import javax.faces.model.SelectItem;
+import java.util.List;
+import java.util.ArrayList;
+
+/**
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+
+ at Name("projectLicensesFactory")
+ at Scope(ScopeType.CONVERSATION)
+public class ProjectLicensesFactory {
+
+    @In private Project project;
+    @In private List<License> licenses;
+
+    @Factory("projectLicenseItems")
+    public List<SelectItem> getProjectLicenseItems() {
+
+        List<SelectItem> list = new ArrayList<SelectItem>();
+
+        for (License license : licenses) {
+            list.add(new SelectItem(license.getId(), license.toLicenseString()));    
+        }
+
+        return list;
+    }
+
+    @Factory("projectLicenses")
+    public List<String> getProjectLicenses() {
+
+        List<String> list = new ArrayList<String>();
+
+        for (License l : project.getLicenseList()) {
+            list.add(l.getId().toString());
+        }
+
+        return list;
+    }
+}
\ No newline at end of file

Copied: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/license/UpdateProjectLicenses.java (from rev 19105, labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/license/UpdateLicense.java)
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/license/UpdateProjectLicenses.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/license/UpdateProjectLicenses.java	2008-03-19 14:40:17 UTC (rev 19119)
@@ -0,0 +1,94 @@
+/*
+* JBoss Labs. http://labs.jboss.com/jbosslabs
+*
+* Copyright © 2008  Red Hat Middleware, LLC. All rights reserved.
+*
+* This copyrighted material is made available to anyone wishing to use,
+* modify, copy, or redistribute it subject to the terms and conditions
+* of the GNU Lesser General Public License, v. 2.1.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT A WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License, v.2.1 along with this distribution; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+* 02110-1301, USA.
+*
+* Red Hat Author(s): Bob McWhirter, Przemyslaw Dej, Ryszard Kozmik,
+*     Tomasz Szymanski, Adam Warski, Pawel Wrzeszcz
+*/
+
+package org.jboss.labs.admin.action.project.license;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Out;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.faces.FacesMessages;
+import org.jboss.labs.core.model.License;
+import org.jboss.labs.core.model.Project;
+import org.jboss.labs.core.service.ProjectService;
+import org.jboss.labs.injection.seam.Guice;
+import org.jboss.labs.exception.LabsRollbackException;
+import org.jboss.labs.admin.Pages;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.ArrayList;
+
+import com.google.inject.Inject;
+
+/**
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+
+ at Name("updateProjectLicenses")
+ at Guice
+public class UpdateProjectLicenses implements Serializable {
+
+    private static final long serialVersionUID = 5677629574941499692L;
+
+    @Inject private ProjectService projectService;
+
+    @In @Out(scope = ScopeType.CONVERSATION) private Project project;
+    @In private List<License> licenses;
+    @In private List<String> projectLicenses;
+
+    @In private FacesMessages facesMessages;
+
+    public String update() throws LabsRollbackException {
+
+        System.out.println("UpdateProjectLicenses.update " + projectLicenses);
+
+        List<License> list = new ArrayList<License>();
+
+        for (String projectLicense : projectLicenses) {
+            License l = find(projectLicense);
+            list.add(l);
+        }
+
+        project.setLicenseList(list);
+
+        project = projectService.merge(project);
+
+        facesMessages.add("Project licenses have been updated.");
+
+        return Pages.PROJECT_PAGE;
+    }
+
+    private License find(String licenseIdString) {
+
+           int lincenseId = Integer.parseInt(licenseIdString);
+           for (License l : licenses) {
+               if (l.getId().equals(lincenseId)) {
+                   return l;
+               }
+           }
+
+           throw new IllegalStateException("Cannot find license. id="+licenseIdString);
+    }
+
+}
\ No newline at end of file

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/SecurityManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/SecurityManager.java	2008-03-19 14:05:03 UTC (rev 19118)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/SecurityManager.java	2008-03-19 14:40:17 UTC (rev 19119)
@@ -27,7 +27,9 @@
 import org.jboss.seam.annotations.In;
 import org.jboss.labs.injection.seam.Guice;
 import org.jboss.labs.auth.AuthenticationService;
+import org.jboss.labs.auth.UserService;
 import org.jboss.labs.exception.auth.NoSuchUserException;
+import org.jboss.labs.core.model.auth.User;
 import com.google.inject.Inject;
 
 import java.security.Principal;
@@ -38,14 +40,20 @@
 public class SecurityManager {
 
    @Inject private AuthenticationService authenticationService;
+   @Inject private UserService userService;
 
-   @In private Principal userPrincipal; 
+   @In private User user;
 
    public boolean canEdit(String projectId) throws NoSuchUserException {
        
        return authenticationService.
-                    isAllowedProject(userPrincipal,
+                    isAllowedProject(user,
                                      ProjectAdminRoles.PROJECT_ADMIN,
                                      projectId);
    }
+
+   public boolean isLabsAdmin() {
+
+      return userService.getSuperusers().contains(user);
+   }
 }
\ No newline at end of file

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/home.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/home.xhtml	2008-03-19 14:05:03 UTC (rev 19118)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/home.xhtml	2008-03-19 14:40:17 UTC (rev 19119)
@@ -18,9 +18,11 @@
             <li>
                 <s:link value="Projects" action="#{showProjects.showProjects()}" />
             </li>
-            <li>
-                <s:link value="Licences" action="#{showLicenses.showLicenses()}" />
-            </li>
+            <s:fragment rendered="#{securityManager.isLabsAdmin()}">
+                <li>
+                    <s:link value="Licences" action="#{showLicenses.showLicenses()}" />
+                </li>
+            </s:fragment>
         </ul>
     </h:form>
 </ui:define> 

Copied: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/licenses.xhtml (from rev 19102, labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/members.xhtml)
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/licenses.xhtml	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/licenses.xhtml	2008-03-19 14:40:17 UTC (rev 19119)
@@ -0,0 +1,24 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
+                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:s="http://jboss.com/products/seam/taglib"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:f="http://java.sun.com/jsf/core"
+                xmlns:h="http://java.sun.com/jsf/html"
+                xmlns:rich="http://richfaces.org/rich"
+                template="../layout/template.xhtml">
+
+<ui:define name="body">
+    <h2>Project Licenses</h2>
+    Please select the licenses that apply to this project:
+    <h:form id="mainForm">
+         <h:selectManyCheckbox value="#{projectLicenses}" layout="pageDirection">
+                 <f:selectItems value="#{projectLicenseItems}" />
+            </h:selectManyCheckbox>
+        <br/>
+        <h:commandButton value="Save" action="#{updateProjectLicenses.update()}" />
+        <s:button value="Cancel" action="/project/project.seam"/>
+    </h:form>
+
+</ui:define> 
+</ui:composition>




More information about the jboss-svn-commits mailing list