[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