clerezza-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From r...@apache.org
Subject [11/51] [partial] clerezza git commit: CLEREZZA-966: removed platform. prefix of folder names
Date Mon, 23 Mar 2015 17:03:09 GMT
http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/pom.xml
----------------------------------------------------------------------
diff --git a/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/pom.xml b/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/pom.xml
deleted file mode 100644
index 7a7b7f9..0000000
--- a/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/pom.xml
+++ /dev/null
@@ -1,198 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><!--
-
- 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.
-
---><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.clerezza</groupId>
-        <artifactId>platform.accountcontrolpanel</artifactId>
-        <version>0.10</version>
-    </parent>
-    <groupId>org.apache.clerezza</groupId>
-    <artifactId>platform.accountcontrolpanel.core</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
-    <packaging>bundle</packaging>
-    <name>Clerezza - Platform Account Control Panel Core</name>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.scala-tools</groupId>
-                <artifactId>maven-scala-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>compile</goal>
-                            <goal>testCompile</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                                        <!-- <scalaVersion>${scala.version}</scalaVersion> -->
-                                        <!-- <args>
-                                                <arg>-target:jvm-1.5</arg>
-                                        </args> -->
-                </configuration>
-            </plugin>
-            <plugin>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>1.6</source>
-                    <target>1.6</target>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Service-Component>OSGI-INF/serviceComponents.xml</Service-Component>
-                        <Export-Package>org.apache.clerezza.platform.accountcontrolpanel.*</Export-Package>
-                        <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
-                    </instructions>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.xsite</groupId>
-                <artifactId>xsite-maven-plugin</artifactId>
-                <configuration>
-                    <sourceDirectoryPath>${basedir}/src/site/xsite</sourceDirectoryPath>
-                    <sitemapPath>content/sitemap.xml</sitemapPath>
-                    <skinPath>templates/skin.html</skinPath>
-                    <outputDirectoryPath>${basedir}/target/site/documentation</outputDirectoryPath>
-                </configuration>
-                <executions>
-                    <execution>
-                        <phase>pre-site</phase>
-                        <goals>
-                            <goal>run</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>                 
-        </plugins>
-    </build>
-    <dependencies>
-        <dependency>
-            <groupId>javax.ws.rs</groupId>
-            <artifactId>jsr311-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.clerezza</groupId>
-            <artifactId>rdf.core</artifactId>
-            <version>0.14</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.clerezza</groupId>
-            <artifactId>rdf.scala.utils</artifactId>
-            <version>0.4</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.clerezza</groupId>
-            <artifactId>rdf.ontologies</artifactId>
-            <version>0.12</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.clerezza</groupId>
-            <artifactId>jaxrs.utils</artifactId>
-            <version>0.9</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.clerezza</groupId>
-            <artifactId>platform.typerendering.seedsnipe</artifactId>
-            <version>0.7</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.clerezza</groupId>
-            <artifactId>platform.typerendering.scalaserverpages</artifactId>
-            <version>0.4</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.clerezza</groupId>
-            <artifactId>platform.users.core</artifactId>
-            <version>0.2</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.clerezza</groupId>
-            <artifactId>platform.config</artifactId>
-            <version>0.4</version>
-        </dependency>
-        <dependency>
-          <groupId>org.scala-lang</groupId>
-          <artifactId>scala-library</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.clerezza</groupId>
-            <artifactId>platform.typerendering.scala</artifactId>
-            <version>0.2</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.clerezza</groupId>
-            <artifactId>platform.globalmenu.api</artifactId>
-            <version>0.3</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.clerezza</groupId>
-            <artifactId>platform.accountcontrolpanel.ontologies</artifactId>
-            <version>0.3</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.clerezza</groupId>
-            <artifactId>platform.usermanager</artifactId>
-            <version>0.14</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.clerezza</groupId>
-            <artifactId>web.fileserver</artifactId>
-            <version>0.10</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.clerezza</groupId>
-            <artifactId>permissiondescriptions</artifactId>
-            <version>0.2</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.clerezza</groupId>
-            <artifactId>ssl.keygen.base</artifactId>
-            <version>0.6</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.clerezza</groupId>
-            <artifactId>platform.security.foafssl.ontologies</artifactId>
-            <version>0.2</version>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.clerezza.ext</groupId>
-          <artifactId>slf4j-scala-api</artifactId>
-            <version>1.6.3</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.stanbol</groupId>
-            <artifactId>org.apache.stanbol.commons.security.core</artifactId>
-            <version>0.11.0</version>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/resources/CLEREZZA-INF/web-resources/account-control-panel/scripts/IEKeygen.js
----------------------------------------------------------------------
diff --git a/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/resources/CLEREZZA-INF/web-resources/account-control-panel/scripts/IEKeygen.js b/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/resources/CLEREZZA-INF/web-resources/account-control-panel/scripts/IEKeygen.js
deleted file mode 100644
index 6d0803d..0000000
--- a/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/resources/CLEREZZA-INF/web-resources/account-control-panel/scripts/IEKeygen.js
+++ /dev/null
@@ -1,287 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-/**
- *
- * Copyright (c) 2008-2010, The University of Manchester, United Kingdom. All
- * rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer. Redistributions in binary
- * form must reproduce the above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or other materials provided
- * with the distribution. Neither the name of the The University of Manchester
- * nor the names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * Author........: Bruno Harbulot
- *
- */
-
-
-
-function createCsrCertEnroll(enrollFactObj, keylength) {
-	/*
-	 * Creates a CX509EnrollmentWebClassFactory (used to create all the other
-	 * objects).
-	 */
-	if (enrollFactObj == null) {
-		enrollFactObj = new ActiveXObject(
-			"X509Enrollment.CX509EnrollmentWebClassFactory");
-	}
-
-	/*
-	 * Load the information about the providers.
-	 */
-	var providerInfosObj = enrollFactObj
-	.CreateObject("X509Enrollment.CCspInformations");
-	providerInfosObj.AddAvailableCsps();
-
-	/*
-	 * Find the provider of RSA type (sufficient for this example). The type
-	 * numbers for this are 1, 2 and 24.
-	 * http://msdn.microsoft.com/en-us/library/aa379427%28VS.85%29.aspx
-	 */
-	var providerType = -1;
-	var providerName = null;
-	for ( var i = 0; i < providerInfosObj.Count; i++) {
-		var providerInfoObj = providerInfosObj.ItemByIndex(i);
-		switch (providerInfoObj.Type) {
-			case 1:
-			case 2:
-			case 24:
-				providerType = providerInfoObj.Type;
-				providerName = providerInfoObj.Name;
-				break;
-			default:
-		}
-	}
-
-	/*
-	 * Creates a 2048-bit key with this provider.
-	 */
-	var privKeyObj = enrollFactObj
-	.CreateObject("X509Enrollment.CX509PrivateKey");
-	privKeyObj.ProviderType = providerInfoObj.Type;
-	privKeyObj.KeySpec = 1;
-	privKeyObj.Length = keylength;
-	// http://msdn.microsoft.com/en-us/library/aa379024%28VS.85%29.aspx
-	privKeyObj.MachineContext = false;
-	// http://msdn.microsoft.com/en-us/library/aa379414%28VS.85%29.aspx
-	privKeyObj.KeyProtection = 2;
-	// http://msdn.microsoft.com/en-us/library/aa379002%28VS.85%29.aspx
-	privKeyObj.ExportPolicy = 1;
-
-	/*
-	 * Creates the PKCS#10 object and initialise as a user context.
-	 */
-	var pkcs10CsrObj = enrollFactObj
-	.CreateObject("X509Enrollment.CX509CertificateRequestPkcs10");
-	pkcs10CsrObj.InitializeFromPrivateKey(1, privKeyObj, "");
-
-	/*
-	 * Creates the enrolment object and exports the CSR.
-	 */
-	var enrollObj = enrollFactObj
-	.CreateObject("X509Enrollment.CX509Enrollment");
-	enrollObj.InitializeFromRequest(pkcs10CsrObj);
-	var csr = enrollObj.CreateRequest(1);
-	csr = "-----BEGIN CERTIFICATE REQUEST-----\r\n" + csr
-	+ "-----END CERTIFICATE REQUEST-----";
-
-	/*
-	 * Makes the request to the server.
-	 */
-    xmlHttpRequest = createRequest(csr);
-
-    /**
-	 * What to do on response
-	 */
-    xmlHttpRequest.onreadystatechange = function() {
-		if (xmlHttpRequest.readyState == 4) {
-			if (xmlHttpRequest.status == 200) {
-				/*
-				 * Installs the certificate.
-				 */
-				try {
-					enrollObj.InstallResponse(4, xmlHttpRequest.responseText,
-						0, "");
-					window.alert("A certificate has been installed.");
-				} catch (e1) {
-					try {
-						enrollObj.InstallResponse(0,
-							xmlHttpRequest.responseText, 0, "");
-						window.alert("A certificate has been installed.");
-					} catch (e2) {
-						window
-						.alert("You're probably using Vista without SP1 or above, in which case you need to add the certificate of this authority as a trusted root certificate (not recommended in general).");
-					}
-				}
-			} else {
-				window.alert("The server returned an error status: "
-					+ xmlHttpRequest.status);
-			}
-		}
-	}
-}
-
-
-function createRequest(csrString) {
-	var xmlHttpRequest = new XMLHttpRequest();
-
-	xmlHttpRequest.open("POST", kgnFloctn, true);
-
-	var params = "webId=" + encodeURIComponent(document.getElementById("webId").value);
-	params += "&cn=" + encodeURIComponent(document.getElementById("cn").value);
-	params += "&csr=" + encodeURIComponent(csrString);
-	params += "&days="+encodeURIComponent(document.getElementById("days").value);
-	params += "&hours="+encodeURIComponent(document.getElementById("hours").value);
-
-	xmlHttpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
-	xmlHttpRequest.setRequestHeader("Content-length", params.length);
-	xmlHttpRequest.setRequestHeader("Connection", "close");
-
-	xmlHttpRequest.send(params);
-
-	return xmlHttpRequest;
-
-}
-
-
-function createCsrXenroll(enrollObj, keylength) {
-	if (enrollObj == null) {
-		enrollObj = new ActiveXObject("CEnroll.CEnroll");
-	}
-
-	// http://msdn.microsoft.com/en-us/library/aa379941%28VS.85%29.aspx
-	// CRYPT_EXPORTABLE: 1?
-	enrollObj.GenKeyFlags = (keylength * 256 * 256) + 1;
-	enrollObj.KeySpec = 2;
-
-	var csr = enrollObj.createPKCS10("", "");
-	csr = "-----BEGIN CERTIFICATE REQUEST-----\r\n" + csr
-	+ "-----END CERTIFICATE REQUEST-----";
-
-	xmlHttpRequest = createRequest(csr);
-
-	xmlHttpRequest.onreadystatechange = function() {
-		if (xmlHttpRequest.readyState == 4) {
-			if (xmlHttpRequest.status == 200) {
-				enrollObj.acceptPKCS7(xmlHttpRequest.responseText);
-				window.alert("A certificate has been installed.");
-			} else {
-				window.alert("The server returned an error status: "
-					+ xmlHttpRequest.status);
-			}
-		}
-	}
-}
-
-function createCsr() {
-	var keystrengthSelectElem = document.getElementById("keylength");
-	var keylength = keystrengthSelectElem.value;
-
-	var enrollFactObj = null;
-	try {
-		enrollFactObj = new ActiveXObject(
-			"X509Enrollment.CX509EnrollmentWebClassFactory");
-	} catch (e) {
-	}
-
-	if (enrollFactObj != null) {
-		createCsrCertEnroll(enrollFactObj, keylength);
-	} else {
-		var enrollObj = null;
-		try {
-			enrollObj = new ActiveXObject("CEnroll.CEnroll");
-		} catch (e) {
-		}
-		if (enrollObj != null) {
-			createCsrXenroll(enrollObj, keylength);
-		} else {
-			window.alert("ActiveX certificate creation not supported or not enabled.");
-		}
-	}
-}
-// kgnFloctn needs to be calculated first
-var kgnFloctn = "errorKeyGenLoctn";
-function configurePage() {
-	kgnFloctn = document.getElementById("keygenform").getAttribute("action");
-
-	var keygenElem = document.getElementById("spkac");
-
-	if (navigator.appName == "Microsoft Internet Explorer") {
-		var keygenFormElem = document.getElementById("keygenform");
-		keygenFormElem.removeAttribute("action");
-		keygenFormElem.removeAttribute("method");
-
-		/*
-		 * Try the ActiveX approach, assume Internet Explorer.
-		 */
-
-		var iehelptextElem = document.getElementById("iehelptext");
-		iehelptextElem.style.display = "block";
-
-		var submitButtonElem = document.getElementById("keygensubmit");
-		var newSumbitButtonElem = document.createElement("input");
-		newSumbitButtonElem.setAttribute("type", "button");
-		newSumbitButtonElem.setAttribute("value", "Submit");
-		submitButtonElem.parentNode.replaceChild(newSumbitButtonElem,
-			submitButtonElem);
-		submitButtonElem = newSumbitButtonElem;
-
-		if (submitButtonElem.attachEvent) {
-			submitButtonElem.attachEvent("onclick", createCsr);
-		} else {
-			submitButtonElem.setAttribute("onclick", "createCsr()");
-		}
-
-		var keystrengthSelectElem = document.createElement("select");
-		keystrengthSelectElem.setAttribute("id", "keylength");
-		keystrengthSelectElem.setAttribute("name", "keylength");
-		var optionElem;
-		optionElem = document.createElement("option");
-		optionElem.setAttribute("value", "1024");
-		optionElem.appendChild(document.createTextNode("1024"));
-		keystrengthSelectElem.appendChild(optionElem);
-		optionElem = document.createElement("option");
-		optionElem.setAttribute("value", "2048");
-		optionElem.appendChild(document.createTextNode("2048"));
-		keystrengthSelectElem.appendChild(optionElem);
-		var keystrengthTdElem = document.getElementById("keystrenghtd");
-		keystrengthTdElem.appendChild(keystrengthSelectElem);
-	}
-}

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/resources/CLEREZZA-INF/web-resources/account-control-panel/scripts/profile.js
----------------------------------------------------------------------
diff --git a/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/resources/CLEREZZA-INF/web-resources/account-control-panel/scripts/profile.js b/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/resources/CLEREZZA-INF/web-resources/account-control-panel/scripts/profile.js
deleted file mode 100644
index 6ad1db2..0000000
--- a/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/resources/CLEREZZA-INF/web-resources/account-control-panel/scripts/profile.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-$(document).ready(function() {
-	$('#newWebIdButton').click(function() {
-		$("#newOrExistingSelection").css({display: "none"})
-		$("#createNewWebId").css({display: "block"})
-	});
-	$("#existingWebIdButton").click(function() {
-		$("#newOrExistingSelection").css({display: "none"})
-		$("#setExistingWebId").css({display: "block"})
-	});
-	$("#keygenform").submit(function() {
-		return spkacFix();
-	});
-});
-
-var crmfObject;
-function setCRMFRequest() {
-	var hiddenField = $("<input type=\"hidden\" name=\"crmf\" id=\"crmf\" \/>");
-	$("#keygenform").append(hiddenField)
-	//var formContents = $("#keygenform").serialize();
-	//var newContents = jQuery.extend({}, formContents);
-	hiddenField.val(crmfObject.request)
-	$("#keygenform").submit()
-}
-
-function spkacFix() {
-
-	if ($("#spkac").val()) {
-		return true;
-	} else {
-		if ($("#crmf").val()) {
-			return true;
-		}
-		//alert("fix needed by firefox in xhtml mode")
-		crmfObject = crypto.generateCRMFRequest(
-		'CN=Ignored',
-		"regToken", "authenticator", // not sure
-		null, // base-64 cert for key
-		// escrow. set this to null
-		"setCRMFRequest();", // callback
-		2048, null, "rsa-dual-use"); // key parameters
-		return false;
-	}
-}

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/resources/CLEREZZA-INF/web-resources/account-control-panel/style/profile.css
----------------------------------------------------------------------
diff --git a/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/resources/CLEREZZA-INF/web-resources/account-control-panel/style/profile.css b/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/resources/CLEREZZA-INF/web-resources/account-control-panel/style/profile.css
deleted file mode 100644
index 64e52c4..0000000
--- a/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/resources/CLEREZZA-INF/web-resources/account-control-panel/style/profile.css
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- *
- * 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.
- *
-*/
-
-#associateSelection {
-	width: 80%
-}
-#createNewWebId {
-	display: none
-}
-#setExistingWebId {
-	display: none
-}
-/* we need to override a table td:first-child in /style/table.css */
-td.propvalue:first-child { 
-	text-align: right;
-}
-
-td.formlabel:first-child { 
-	width: 10em;
-	text-align: right;
-}
-
-td.multiline:first-child {
-    vertical-align: text-top;
-}
-
-img.mugshot {
-    width: 80px;
-}
-
-td.personInABox {
-    width: 100px;
-}

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/resources/OSGI-INF/serviceComponents.xml
----------------------------------------------------------------------
diff --git a/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/resources/OSGI-INF/serviceComponents.xml b/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/resources/OSGI-INF/serviceComponents.xml
deleted file mode 100644
index 8e50481..0000000
--- a/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/resources/OSGI-INF/serviceComponents.xml
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- 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.
-
--->
-
-<components xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0">
-    <scr:component enabled="true" name="org.apache.clerezza.platform.accountcontrolpanel.AcpPermissionDescriptionsProvider">
-        <implementation class="org.apache.clerezza.platform.accountcontrolpanel.AcpPermissionDescriptionsProvider"/>
-        <service servicefactory="false">
-            <provide interface="org.apache.clerezza.permissiondescriptions.PermissionDescriptionsProvider"/>
-        </service>
-        <property name="service.pid" value="org.apache.clerezza.platform.accountcontrolpanel.AcpPermissionDescriptionsProvider"/>
-    </scr:component>
-
-    <scr:component enabled="true" name="org.apache.clerezza.platform.accountcontrolpanel.MenuItemProvider">
-        <implementation class="org.apache.clerezza.platform.accountcontrolpanel.MenuItemProvider"/>
-        <service servicefactory="false">
-            <provide interface="org.apache.clerezza.platform.dashboard.GlobalMenuItemsProvider"/>
-        </service>
-        <property name="service.pid" value="org.apache.clerezza.platform.accountcontrolpanel.MenuItemProvider"/>
-    </scr:component>
-
-    <scr:component enabled="true" name="org.apache.clerezza.platform.accountcontrolpanel.SettingsPanel">
-        <implementation class="org.apache.clerezza.platform.accountcontrolpanel.SettingsPanel"/>
-        <service servicefactory="false">
-            <provide interface="java.lang.Object"/>
-        </service>
-        <property name="javax.ws.rs" type="Boolean" value="true"/>
-        <property name="service.pid" value="org.apache.clerezza.platform.accountcontrolpanel.SettingsPanel"/>
-        <reference name="configurationAdmin" interface="org.osgi.service.cm.ConfigurationAdmin" cardinality="0..1" policy="dynamic" bind="bindConfigurationAdmin" unbind="unbindConfigurationAdmin"/>
-        <reference name="systemGraph" interface="org.apache.clerezza.rdf.core.MGraph" cardinality="1..1" policy="static" target="(name=urn:x-localinstance:/system.graph)" bind="bindSystemGraph" unbind="unbindSystemGraph"/>
-        <reference name="cgProvider" interface="org.apache.clerezza.platform.graphprovider.content.ContentGraphProvider" cardinality="1..1" policy="static" bind="bindCgProvider" unbind="unbindCgProvider"/>
-    </scr:component>
-    <scr:component enabled="true" name="org.apache.clerezza.platform.accountcontrolpanel.html.SettingsPanel">
-        <implementation class="org.apache.clerezza.platform.accountcontrolpanel.html.SettingsPanel"/>
-        <service servicefactory="false">
-            <provide interface="org.apache.clerezza.platform.typerendering.TypeRenderlet"/>
-        </service>
-        <property name="service.pid" value="org.apache.clerezza.platform.accountcontrolpanel.html.SettingsPanel"/>
-    </scr:component>
-
-
-    <scr:component enabled="true" name="org.apache.clerezza.platform.accountcontrolpanel.ProfilePanel">
-        <implementation class="org.apache.clerezza.platform.accountcontrolpanel.ProfilePanel"/>
-        <service servicefactory="false">
-            <provide interface="java.lang.Object"/>
-        </service>
-        <property name="javax.ws.rs" type="Boolean" value="true"/>
-        <property name="service.pid" value="org.apache.clerezza.platform.accountcontrolpanel.ProfilePanel"/>
-        <reference name="userManager" interface="org.apache.clerezza.platform.usermanager.UserManager"
-                   cardinality="1..1" policy="static" bind="bindUserManager" unbind="unbindUserManager"/>
-        <reference name="graphNodeProvider" interface="org.apache.clerezza.rdf.utils.graphnodeprovider.GraphNodeProvider"
-                   cardinality="1..1" policy="static" bind="bindGraphNodeProvider" unbind="unbindGraphNodeProvider"/>
-        <reference name="keygenSrvc" interface="org.apache.clerezza.ssl.keygen.KeygenService"
-                   cardinality="1..1" policy="static" bind="bindKeygenSrvc" unbind="unbindKeygenSrvc"/>
-        <reference name="webIdGraphsService" interface="org.apache.clerezza.platform.users.WebIdGraphsService"
-                   cardinality="1..1" policy="static" bind="bindWebIdGraphsService" unbind="unbindWebIdGraphsService"/>
-        <reference name="platformConfig" interface="org.apache.clerezza.platform.config.PlatformConfig"
-                   cardinality="1..1" policy="static" bind="bindPlatformConfig" unbind="unbindPlatformConfig"/>
-        <reference name="tcManager" interface="org.apache.clerezza.rdf.core.access.TcManager"
-                   cardinality="1..1" policy="static" bind="bindTcManager" unbind="unbindTcManager"/>
-    </scr:component>
-    <scr:component enabled="true" name="org.apache.clerezza.platform.accountcontrolpanel.html.ProfilePanel">
-        <implementation class="org.apache.clerezza.platform.accountcontrolpanel.html.ProfilePanel"/>
-        <service servicefactory="false">
-            <provide interface="org.apache.clerezza.platform.typerendering.TypeRenderlet"/>
-        </service>
-        <property name="service.pid" value="org.apache.clerezza.platform.accountcontrolpanel.html.ProfilePanel"/>
-    </scr:component>
-    <scr:component enabled="true" name="org.apache.clerezza.platform.accountcontrolpanel.html.ContactConfirmRenderlet">
-        <implementation class="org.apache.clerezza.platform.accountcontrolpanel.html.ContactConfirmRenderlet"/>
-        <service servicefactory="false">
-            <provide interface="org.apache.clerezza.platform.typerendering.TypeRenderlet"/>
-        </service>
-        <property name="service.pid" value="org.apache.clerezza.platform.accountcontrolpanel.html.ContactConfirmRenderlet"/>
-    </scr:component>
-    <scr:component enabled="true" name="org.apache.clerezza.platform.accountcontrolpanel.html.PersonBox">
-        <implementation class="org.apache.clerezza.platform.accountcontrolpanel.html.PersonBox"/>
-        <service servicefactory="false">
-            <provide interface="org.apache.clerezza.platform.typerendering.TypeRenderlet"/>
-        </service>
-        <property name="service.pid" value="org.apache.clerezza.platform.accountcontrolpanel.html.PersonBox"/>
-    </scr:component>
-</components>

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/scala/org/apache/clerezza/platform/accountcontrolpanel/AcpPermissionDescriptionsProvider.scala
----------------------------------------------------------------------
diff --git a/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/scala/org/apache/clerezza/platform/accountcontrolpanel/AcpPermissionDescriptionsProvider.scala b/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/scala/org/apache/clerezza/platform/accountcontrolpanel/AcpPermissionDescriptionsProvider.scala
deleted file mode 100644
index 5d41410..0000000
--- a/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/scala/org/apache/clerezza/platform/accountcontrolpanel/AcpPermissionDescriptionsProvider.scala
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * 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.clerezza.platform.accountcontrolpanel
-
-import java.util.HashSet
-import java.util.Set
-import org.apache.clerezza.permissiondescriptions.PermissionDescriptionsProvider
-import org.apache.clerezza.permissiondescriptions.PermissionDescripton
-import org.apache.felix.scr.annotations.Component
-import org.apache.felix.scr.annotations.Service
-
-/**
- * <code>PermissionDescriptionsProvider</code> implementation that provides
- * <code>PermissionDescripton</code>s of Account Control Panel permissions.
- * The following permissions are described:
- * <ul>
- *   <li>org.apache.clerezza.platform.accountcontrolpanel.AccountControlPanelAppPermission</li>
- *   <li>org.apache.clerezza.platform.accountcontrolpanel.ChangePasswordPermission</li>
- *   <li>org.apache.clerezza.platform.accountcontrolpanel.UserBundlePermission</li>
- * </ul>
- *
- * @author mir
- */
-object AcpPermissionDescriptionsProvider {
-  private  val ACP_PERMISSION_DESCRIPTIONS: Set[PermissionDescripton] = new HashSet[PermissionDescripton]
-  ACP_PERMISSION_DESCRIPTIONS.add(
-    new PermissionDescripton("Change Own Password Permission",
-      "Grants permission to the user to change its own password",
-      null, classOf[ChangePasswordPermission],
-      "(org.apache.clerezza.platform.accountcontrolpanel.ChangePasswordPermission \"{username}\" \"\")"
-    )
-  )
-
-  ACP_PERMISSION_DESCRIPTIONS.add(
-    new PermissionDescripton("Access Own Account Control Panel Permission",
-      "Grants permission to the user to access its own Account Control Panel",
-      null, classOf[AccountControlPanelAppPermission],
-      "(org.apache.clerezza.platform.accountcontrolpanel.AccountControlPanelAppPermission \"{username}\" \"\")"
-    )
-  )
-
-  ACP_PERMISSION_DESCRIPTIONS.add(
-    new PermissionDescripton("Bundle Upload Permission",
-      "Grants permission to the user to upload a bundle",
-      null, classOf[AccountControlPanelAppPermission],
-      "(org.apache.clerezza.platform.accountcontrolpanel.UserBundlePermission \"{username}\" \"\")"
-    )
-  )
-
-}
-
-class AcpPermissionDescriptionsProvider extends PermissionDescriptionsProvider {
-
-  import AcpPermissionDescriptionsProvider._
-
-  def getPermissionDescriptors: Set[PermissionDescripton] = {
-    return ACP_PERMISSION_DESCRIPTIONS
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/scala/org/apache/clerezza/platform/accountcontrolpanel/MenuItemProvider.scala
----------------------------------------------------------------------
diff --git a/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/scala/org/apache/clerezza/platform/accountcontrolpanel/MenuItemProvider.scala b/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/scala/org/apache/clerezza/platform/accountcontrolpanel/MenuItemProvider.scala
deleted file mode 100644
index ce09780..0000000
--- a/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/scala/org/apache/clerezza/platform/accountcontrolpanel/MenuItemProvider.scala
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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.clerezza.platform.accountcontrolpanel
-
-import java.io.UnsupportedEncodingException
-import java.net.URLEncoder
-import java.security.AccessControlContext
-import java.security.AccessControlException
-import java.security.AccessController
-import java.security.Principal
-import java.security.PrivilegedActionException
-import java.security.PrivilegedExceptionAction
-import java.util.HashSet
-import java.util.Iterator
-import java.util.Set
-import javax.security.auth.Subject
-import org.apache.felix.scr.annotations.Component
-import org.apache.felix.scr.annotations.Service
-import org.apache.clerezza.platform.globalmenu.GlobalMenuItem
-import org.apache.clerezza.platform.globalmenu.GlobalMenuItemsProvider
-import org.apache.stanbol.commons.security.UserUtil
-
-/**
- *
- * Provides menu-item to profile or settings-panel or none depending on user
- * permissions.
- *
- * @author reto
- */
-class MenuItemProvider extends GlobalMenuItemsProvider {
-  def getMenuItems: Set[GlobalMenuItem] = {
-    var items: Set[GlobalMenuItem] = new HashSet[GlobalMenuItem]
-    var userName: String = UserUtil.getCurrentUserName
-    if (userName != null) {
-      try {
-        AccessController.checkPermission(new AccountControlPanelAppPermission(userName, ""))
-      }
-      catch {
-        case e: AccessControlException => {
-          return items
-        }
-      }
-      try {
-        var path: String = "/user/" + URLEncoder.encode(userName, "utf-8") + "/control-panel"
-        items.add(new GlobalMenuItem(path, "ACP", "Account Control Panel", 5, "Administration"))
-      }
-      catch {
-        case e: UnsupportedEncodingException => {
-          throw new RuntimeException(e)
-        }
-      }
-    }
-    return items
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/scala/org/apache/clerezza/platform/accountcontrolpanel/ProfilePanel.scala
----------------------------------------------------------------------
diff --git a/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/scala/org/apache/clerezza/platform/accountcontrolpanel/ProfilePanel.scala b/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/scala/org/apache/clerezza/platform/accountcontrolpanel/ProfilePanel.scala
deleted file mode 100644
index d46f9f1..0000000
--- a/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/scala/org/apache/clerezza/platform/accountcontrolpanel/ProfilePanel.scala
+++ /dev/null
@@ -1,466 +0,0 @@
-/*
- * 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.clerezza.platform.accountcontrolpanel
-
-import java.util.List
-import java.util.Arrays
-import java.util.Collections
-import java.util.Iterator
-import ontologies.CONTROLPANEL
-import org.apache.clerezza.rdf.utils.graphnodeprovider.GraphNodeProvider
-import org.apache.clerezza.ssl.keygen.CertSerialisation
-import org.apache.clerezza.ssl.keygen.Certificate
-import org.apache.clerezza.foafssl.ontologies.CERT
-import org.apache.clerezza.foafssl.ontologies.RSA
-import org.apache.clerezza.jaxrs.utils.RedirectUtil
-import org.apache.clerezza.jaxrs.utils.TrailingSlash
-import org.apache.clerezza.platform.config.PlatformConfig
-import org.apache.clerezza.platform.usermanager.UserManager
-import org.apache.clerezza.rdf.core._
-import org.apache.clerezza.platform.Constants
-import access.TcManager
-import impl.{SimpleMGraph, TripleImpl}
-import org.apache.clerezza.rdf.utils.GraphNode
-import org.apache.clerezza.rdf.utils.UnionMGraph
-import org.osgi.service.component.ComponentContext
-import javax.ws.rs._
-import javax.ws.rs.core.Context
-import javax.ws.rs.core.MediaType
-import javax.ws.rs.core.Response
-import javax.ws.rs.core.UriInfo
-import java.math.BigInteger
-import java.security.AccessController
-import java.security.PrivilegedAction
-import java.security.interfaces.RSAPublicKey
-import org.apache.clerezza.ssl.keygen.KeygenService
-import java.net.URI
-import org.apache.clerezza.rdf.core.access.security.TcPermission
-import org.apache.clerezza.rdf.ontologies._
-import org.slf4j.scala.Logging
-import org.apache.clerezza.platform.users.{WebIdInfo, WebIdGraphsService}
-import org.apache.clerezza.rdf.scala.utils._
-
-/**
- * Presents a panel where the user can create a webid and edit her profile.
- *
- * @author reto
- */
-
-@Path("/user/{id}/profile")
-class ProfilePanel extends Logging {
-
-  import collection.JavaConversions._
-  import Preamble._
-
-  /**
-   * Returns a GraphNode describing a ProfilePage for the user identified by
-   * the specified UserName. A ProfilePage resourcve is retuned for any user
-   * disregarding if they have a WebId and if this is local. The renderlet
-   * may provide instrcutions on how a WebId is created for users that do
-   * not have a WebId and redirect them to their WebId provider if they have
-   * a remote WebId.
-   */
-  @GET
-  def getPersonalProfilePage(@Context uriInfo: UriInfo,
-                             @PathParam(value = "id") userName: String): GraphNode = {
-    TrailingSlash.enforceNotPresent(uriInfo)
-    //not checking as public profile must be public, more selective access control TBD
-    //AccessController.checkPermission(new AccountControlPanelAppPermission(userName, ""))
-    val resultNode= getPersonalProfile(userName, uriInfo)
-    return resultNode
-  }
-
-  private def getPersonalProfile(userName: String, info: UriInfo): GraphNode = {
-    lazy val suggestedPPDUri = getSuggestedPPDUri(userName)
-
-    val profile = AccessController.doPrivileged(new PrivilegedAction[GraphNode] {
-      def run: GraphNode = {
-        val userInSysGraph = userManager.getUserInSystemGraph(userName)
-        val userResource = userInSysGraph.getNode
-        val profile: GraphNode = userResource match {
-          case blank: BNode => {
-            //user does not have a webId yet
-            val g = new EzMGraph()
-            import g._
-            val profile = bnode
-            (profile -- CONTROLPANEL.isLocalProfile --> bool2lit(true)
-            -- CONTROLPANEL.suggestedPPDUri --> suggestedPPDUri
-            -- FOAF.primaryTopic --> (bnode -- PLATFORM.userName --> userName))
-            profile
-          }
-          case webid: UriRef => {
-            var webIDInfo = webIdGraphsService.getWebIdInfo(webid)
-            var res = new GraphNode(suggestedPPDUri, new UnionMGraph(new SimpleMGraph, webIDInfo.localPublicUserData))
-            (res -- CONTROLPANEL.isLocalProfile --> bool2lit(webIDInfo.isLocal)
-              -- FOAF.primaryTopic --> webid)
-            res
-          }
-        }
-        /*val friendInfo:Iterator[TripleCollection] = for (kn: Triple <- profile.getGraph.filter(userResource.asInstanceOf[NonLiteral], FOAF.knows, null)
-                              if kn.getObject.isInstanceOf[UriRef];
-                              friend = kn.getObject.asInstanceOf[UriRef]
-                              if (friend != suggestedPPDUri)
-        ) yield {
-          try {
-            val friendGraph = tcManager.getGraph(FoafBrowser.removeHash(friend))
-            new RichGraphNode(friend, friendGraph).getNodeContext
-          } catch {
-            case e => {
-              logger.warn("cought exception trying to fetch graph - these graphs should already be in store " + friend, e)
-              new EzMGraph() {
-                friend -- SKOS.note --> ("problem with fetching this node: " + e)
-              }
-            }
-          }
-        }
-        //vera bad: mixing data from different sources
-        for (g <- friendInfo) profile.getGraph.addAll(g) */
-        profile
-      }
-    })
-
-
-    (profile a   PLATFORM.HeadedPage
-             a  CONTROLPANEL.ProfilePage)
-  }
-
-  /**
-   * @param userName
-   * @return the suggested Personal Profile Document URI
-   */
-  def getSuggestedPPDUri(userName: String): UriRef = {
-    return new UriRef(platformConfig.getDefaultBaseUri.getUnicodeString + "user/" + userName + "/profile")
-  }
-
-  @POST
-  @Path("set-existing-webid")
-  def setExistingWebId(@Context uriInfo: UriInfo,
-                       @FormParam("webid") webId: UriRef,
-                       @PathParam(value = "id") userName: String): Response = {
-    AccessController.checkPermission(new AccountControlPanelAppPermission(userName, ""))
-    return AccessController.doPrivileged(new PrivilegedAction[Response] {
-      def run: Response = {
-        var userInSystemGraph: GraphNode = userManager.getUserInSystemGraph(userName)
-        userInSystemGraph.replaceWith(webId)
-        return RedirectUtil.createSeeOtherResponse("../profile", uriInfo)
-      }
-    })
-  }
-
-  @POST
-  @Path("create-new-web-id")
-  def createNewWebId(@Context uriInfo: UriInfo,
-                     @PathParam(value = "id") userName: String): Response = {
-    val ppd: UriRef = getSuggestedPPDUri(userName)
-    val webId: UriRef = new UriRef(ppd.getUnicodeString + "#me")
-    AccessController.checkPermission(new AccountControlPanelAppPermission(userName, ""))
-    return AccessController.doPrivileged(new PrivilegedAction[Response] {
-      def run: Response = {
-        userManager.assignPermissionsToUser(userName, java.util.Collections.singletonList(new TcPermission(
-            webId.getUnicodeString, TcPermission.READWRITE).toString))
-        tcManager.getTcAccessController.setRequiredReadPermissionStrings(
-          ppd, Collections.singleton(new TcPermission(
-              Constants.CONTENT_GRAPH_URI_STRING, TcPermission.READ).toString))
-        tcManager.createMGraph(ppd)
-        val webIDInfo = webIdGraphsService.getWebIdInfo(webId)
-        webIDInfo.localPublicUserData.addAll(
-          Arrays.asList(
-            new TripleImpl(ppd, RDF.`type`, FOAF.PersonalProfileDocument),
-            new TripleImpl(ppd, FOAF.primaryTopic, webId))
-        )
-        var userInSystemGraph: GraphNode = userManager.getUserInSystemGraph(userName)
-        userInSystemGraph.replaceWith(webId)
-        return RedirectUtil.createSeeOtherResponse("../profile", uriInfo)
-      }
-    })
-  }
-
-  /**
-   * Presents a confirmation form for adding a contact
-   */
-  @GET
-  @Path("addContact")
-  def addContactConfirm(@PathParam(value = "id") userName: String,
-    @QueryParam("contactWebId") contactWebId: UriRef): GraphNode = {
-    AccessController.checkPermission(new AccountControlPanelAppPermission(userName, ""))
-    val contactNode = AccessController.doPrivileged(new PrivilegedAction[GraphNode] {
-      def run = {
-        graphNodeProvider.get(contactWebId);
-      }
-    })
-    val resultGraph = new EzMGraph(new UnionMGraph(new SimpleMGraph, contactNode.getGraph))
-    import resultGraph._
-    val result: GraphNode = bnode
-    result a CONTROLPANEL.ContactConfirmPage
-    result -- FOAF.primaryTopic --> contactNode
-  }
-
-  @POST
-  @Path("addContact")
-  def addContact(@PathParam(value = "id") userName: String, @Context uriInfo: UriInfo,
-                 @FormParam("webId") newContacts: java.util.List[UriRef]): Response = {
-    import collection.JavaConversions._
-    if (newContacts.size > 0) {
-      var me: GraphNode = AccessController.doPrivileged(new PrivilegedAction[GraphNode] {
-        def run: GraphNode = {
-          return userManager.getUserGraphNode(userName)
-        }
-      })
-      for (contactWebID <- newContacts) {
-        val webIdGraphs = webIdGraphsService.getWebIdInfo(me.getNode.asInstanceOf[UriRef])
-        var meGrph: GraphNode = new GraphNode(me.getNode, webIdGraphs.localPublicUserData)
-        meGrph.addProperty(FOAF.knows, contactWebID)
-      } //todo: one should catch errors here (bad uris sent for ex
-    }
-    return RedirectUtil.createSeeOtherResponse("../profile", uriInfo)
-  }
-
-  /**
-   * Removes a contact
-   */
-  @POST
-  @Path("deleteContact")
-  def deleteContact(@PathParam(value = "id") userName: String, @Context uriInfo: UriInfo,
-                 @FormParam("contactWebId") contactWebId: UriRef): Response = {
-    import collection.JavaConversions._
-    var me: GraphNode = AccessController.doPrivileged(new PrivilegedAction[GraphNode] {
-      def run: GraphNode = {
-        return userManager.getUserGraphNode(userName)
-      }
-    })
-    val webIdGraphs = webIdGraphsService.getWebIdInfo(me.getNode.asInstanceOf[UriRef])
-    var meGrph: GraphNode = new GraphNode(me.getNode, webIdGraphs.localPublicUserData)
-    meGrph.deleteProperty(FOAF.knows, contactWebId)
-    return RedirectUtil.createSeeOtherResponse("../profile", uriInfo)
-  }
-
-  /**
-   * @parm webId: A list of WebIDs to be added as Subject Alternative Names
-   * @param cn Common Name, the name that usually appears in the certificate selection box
-   * @param spkac key request in format generated by  Netscape, Safari, Opera
-   * @param crmf hey request in format generated by M$ Explorer
-   * @param csr key request as generated by Javascript of Netscape
-   * @param hours the certificate should last  (hours and days add up)
-   * @param days the certificate should last
-   * @param comment a comment to be attached to the public key in the database
-   */
-  @POST
-  @Path("keygen")
-  def createCert(@FormParam("webId") webIds: java.util.List[URI],
-                 @FormParam("cn") commonName: String,
-                 @FormParam("spkac") spkac: String,
-                 @FormParam("crmf") crmf: String,
-                 @FormParam("csr") csr: String,
-                 @FormParam("hours") hours: String,
-                 @FormParam("days") days: String,
-                 @FormParam("comment") comment: String): Response = {
-    import scala.collection.JavaConversions._
-    var cert: Certificate = null
-    if (spkac != null && spkac.length > 0) {
-      cert = keygenSrvc.createFromSpkac(spkac)
-      if (cert == null) {
-        logger.warn("unable to create certificate from spkac request")
-      }
-    }
-    if (cert == null && crmf != null && crmf.length > 0) {
-      cert = keygenSrvc.createFromCRMF(crmf)
-      if (cert == null) {
-        logger.warn("unable to create certificate from crmf requrest :" + crmf)
-      }
-    }
-    if (cert == null && csr != null && csr.length > 0) {
-      cert = keygenSrvc.createFromPEM(csr)
-      if (cert == null) {
-        logger.warn("unable to create certificate from csr request :" + csr)
-      }
-    }
-    if (cert == null) {
-      throw new RuntimeException("The server was unable to create a certificate")
-    }
-    cert.setSubjectCommonName(commonName)
-    cert.addDurationInHours(hours)
-    cert.addDurationInDays(days)
-    cert.startEarlier("2")
-    for(san: URI<-webIds) {
-      cert.addSubjectAlternativeName(san.toString)
-    }
-    var ser: CertSerialisation = null
-    try {
-      ser = cert.getSerialisation
-    }
-    catch {
-      case ex: Exception => {
-        throw new RuntimeException(ex)
-      }
-    }
-    var pubKey: RSAPublicKey = cert.getSubjectPublicKey.getPublicKey.asInstanceOf[RSAPublicKey]
-    var publicExponent: BigInteger = pubKey.getPublicExponent
-    var modulus: BigInteger = pubKey.getModulus
-
-    for (webid: URI<-webIds
-         if (webid.getScheme=="https"||webid.getScheme=="http");
-          val webidRef = new UriRef(webid.toString);
-         val webIdInfo = webIdGraphsService.getWebIdInfo(webidRef);
-         if (webIdInfo.isLocal)
-    ) {
-      val certGraph = new EzMGraph(webIdInfo.localPublicUserData)
-      import certGraph._
-      val certNode = certGraph.bnode
-      ( (certNode a  RSA.RSAPublicKey)
-         -- CERT.identity -->  webidRef
-         -- RSA.modulus -->  modulus
-         -- RSA.public_exponent -->  publicExponent
-         -- DC.date -->  cert.getStartDate )
-      if (comment != null && comment.length > 0) {
-        certNode --  RDFS.comment -->  comment
-      }
-    }
-    var resBuild: Response.ResponseBuilder = Response.ok(ser.getContent, MediaType.valueOf(ser.getMimeType))
-    return resBuild.build
-  }
-
-  @POST
-  @Path("deletekey")
-  def deleteKey(@Context uriInfo: UriInfo,
-                @FormParam("webId") webId: UriRef,
-                @FormParam("keyhash") keys: List[String]): Response = {
-    val webIDInfo = webIdGraphsService.getWebIdInfo(webId)
-    val agent: GraphNode = new GraphNode(webId, webIDInfo.localPublicUserData)
-    var subjects: Iterator[GraphNode] = agent.getSubjectNodes(CERT.identity)
-    import scala.util.control.Breaks._
-    breakable {
-      import scala.collection.JavaConversions._
-      //to for loop through iterators
-      for (nl <- subjects) {
-        var modulusIt: Iterator[Resource] = nl.getObjects(RSA.modulus)
-        if (!modulusIt.hasNext) break
-        var modLit: Resource = modulusIt.next
-        if (modulusIt.hasNext) logger.warn("data error, a modulus too many in cert for " + webId)
-        if (!(modLit.isInstanceOf[TypedLiteral])) {
-          logger.warn("a public key has a modulus that is not a literal for " + webId)
-          break
-        }
-        var modulus: BigInteger = LiteralFactory.getInstance.createObject(classOf[BigInteger], modLit.asInstanceOf[TypedLiteral])
-        for (key <- keys) {
-          if (modulus.hashCode == Integer.decode(key)) {
-            nl.deleteNodeContext
-            break
-          }
-        }
-      }
-    }
-    return RedirectUtil.createSeeOtherResponse("../profile", uriInfo)
-  }
-
-  @POST
-  @Path("modify")
-  def modifyProfile(@Context uriInfo: UriInfo,
-                    @PathParam("id") userName: String,
-                    @FormParam("webId") webId: UriRef,
-                    @FormParam("name") name: String,
-                    @FormParam("description") description: String): Response = {
-    val webIDInfo = AccessController.doPrivileged(new PrivilegedAction[WebIdInfo] {
-      def run = {
-        webIdGraphsService.getWebIdInfo(webId)
-      }
-    })
-    val agent: GraphNode = new GraphNode(webId, webIDInfo.localPublicUserData)
-    agent.deleteProperties(FOAF.name)
-    agent.addPropertyValue(FOAF.name, name)
-    agent.deleteProperties(DC.description)
-    agent.addPropertyValue(DC.description, description)
-    logger.debug("local graph (uri: {}) is now of size {}".format(webIDInfo.webId, webIDInfo.localPublicUserData.size))
-    RedirectUtil.createSeeOtherResponse("../profile", uriInfo)
-  }
-
-  protected def bindUserManager(usermanager: UserManager): Unit = {
-    userManager = usermanager
-  }
-
-  protected def unbindUserManager(usermanager: UserManager): Unit = {
-    if (userManager == usermanager) {
-      userManager = null
-    }
-  }
-
-  protected def bindGraphNodeProvider(graphNodeProvider: GraphNodeProvider): Unit = {
-    this.graphNodeProvider = graphNodeProvider
-  }
-
-  protected def unbindGraphNodeProvider(graphNodeProvider: GraphNodeProvider): Unit = {
-    this.graphNodeProvider = null
-  }
-
-  protected def bindKeygenSrvc(keygenservice: KeygenService): Unit = {
-    keygenSrvc = keygenservice
-  }
-
-  protected def unbindKeygenSrvc(keygenservice: KeygenService): Unit = {
-    if (keygenSrvc == keygenservice) {
-      keygenSrvc = null
-    }
-  }
-
-
-  protected def bindWebIdGraphsService(webidgraphsservice: WebIdGraphsService): Unit = {
-    webIdGraphsService = webidgraphsservice
-  }
-
-  protected def unbindWebIdGraphsService(webidgraphsservice: WebIdGraphsService): Unit = {
-    webIdGraphsService = null
-  }
-
-  protected def bindPlatformConfig(platformconfig: PlatformConfig): Unit = {
-    platformConfig = platformconfig
-  }
-
-  protected def unbindPlatformConfig(platformconfig: PlatformConfig): Unit = {
-    if (platformConfig == platformconfig) {
-      platformConfig = null
-    }
-  }
-
-  protected def bindTcManager(tcManager: TcManager) = {
-    this.tcManager = tcManager
-  }
-
-  protected def unbindTcManager(tcManager: TcManager) = {
-    this.tcManager = null
-  }
-
-  protected def activate(componentContext: ComponentContext): Unit = {
-    this.componentContext = componentContext
-  }
-
-
-  private var userManager: UserManager = null
-
-  private var graphNodeProvider: GraphNodeProvider = null
-
-  private var webIdGraphsService: WebIdGraphsService = null
-
-  private var keygenSrvc: KeygenService = null
-  private var platformConfig: PlatformConfig = null
-
-
-  private var componentContext: ComponentContext = null
-
-  private var tcManager: TcManager = null;
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/clerezza/blob/70220239/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/scala/org/apache/clerezza/platform/accountcontrolpanel/SettingsPanel.scala
----------------------------------------------------------------------
diff --git a/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/scala/org/apache/clerezza/platform/accountcontrolpanel/SettingsPanel.scala b/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/scala/org/apache/clerezza/platform/accountcontrolpanel/SettingsPanel.scala
deleted file mode 100644
index 3d8d929..0000000
--- a/platform/platform.accountcontrolpanel/platform.accountcontrolpanel.core/src/main/scala/org/apache/clerezza/platform/accountcontrolpanel/SettingsPanel.scala
+++ /dev/null
@@ -1,646 +0,0 @@
-/*
- * 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.clerezza.platform.accountcontrolpanel
-
-import java.io.ByteArrayInputStream
-import java.io.IOException
-import java.io.InputStream
-import java.io.UnsupportedEncodingException
-import java.net.URL
-import java.security.AccessControlException
-import java.security.AccessController
-import java.security.MessageDigest
-import java.security.NoSuchAlgorithmException
-import java.security.PrivilegedAction
-import java.util.Dictionary
-import java.util.HashMap
-import java.util.HashSet
-import java.util.Hashtable
-import java.util.Iterator
-import java.util.Map
-import java.util.Set
-import javax.ws.rs.Consumes
-import javax.ws.rs.FormParam
-import javax.ws.rs.GET
-import javax.ws.rs.POST
-import javax.ws.rs.Path
-import javax.ws.rs.PathParam
-import javax.ws.rs.QueryParam
-import javax.ws.rs.WebApplicationException
-import javax.ws.rs.core.Context
-import javax.ws.rs.core.MediaType
-import javax.ws.rs.core.Response
-import javax.ws.rs.core.Response.ResponseBuilder
-import javax.ws.rs.core.UriInfo
-import org.apache.felix.scr.annotations.Component
-import org.apache.felix.scr.annotations.Property
-import org.apache.felix.scr.annotations.Reference
-import org.apache.felix.scr.annotations.ReferenceCardinality
-import org.apache.felix.scr.annotations.ReferencePolicy
-import org.apache.felix.scr.annotations.Service
-import org.osgi.framework.Bundle
-import org.osgi.framework.BundleException
-import org.osgi.service.cm.Configuration
-import org.osgi.service.cm.ConfigurationAdmin
-import org.osgi.service.component.ComponentContext
-import org.slf4j.Logger
-import org.slf4j.LoggerFactory
-import org.apache.clerezza.jaxrs.utils.TrailingSlash
-import org.apache.clerezza.jaxrs.utils.RedirectUtil
-import org.apache.clerezza.jaxrs.utils.form.FormFile
-import org.apache.clerezza.jaxrs.utils.form.MultiPartBody
-import org.apache.clerezza.platform.accountcontrolpanel.ontologies.CONTROLPANEL
-import org.apache.clerezza.platform.config.SystemConfig
-import org.apache.clerezza.platform.graphprovider.content.ContentGraphProvider
-import org.apache.clerezza.platform.typerendering.RenderletManager
-import org.apache.clerezza.platform.typerendering.scala.PageRenderlet
-import org.apache.clerezza.platform.typerendering.scalaserverpages.ScalaServerPagesRenderlet
-import org.apache.clerezza.rdf.core.BNode
-import org.apache.clerezza.rdf.core.Graph
-import org.apache.clerezza.rdf.core.Literal
-import org.apache.clerezza.rdf.core.LiteralFactory
-import org.apache.clerezza.rdf.core.MGraph
-import org.apache.clerezza.rdf.core.NonLiteral
-import org.apache.clerezza.rdf.core.Triple
-import org.apache.clerezza.rdf.core.TypedLiteral
-import org.apache.clerezza.rdf.core.UriRef
-import org.apache.clerezza.rdf.core.impl.PlainLiteralImpl
-import org.apache.clerezza.rdf.core.impl.SimpleLiteralFactory
-import org.apache.clerezza.rdf.core.impl.SimpleMGraph
-import org.apache.clerezza.rdf.core.impl.TripleImpl
-import org.apache.clerezza.rdf.ontologies.OSGI
-import org.apache.clerezza.rdf.ontologies.PERMISSION
-import org.apache.clerezza.rdf.ontologies.PLATFORM
-import org.apache.clerezza.rdf.ontologies.RDF
-import org.apache.clerezza.rdf.utils.GraphNode
-import org.apache.clerezza.rdf.utils.UnionMGraph
-
-object SettingPanel {
-  val logger: Logger = LoggerFactory.getLogger(classOf[SettingsPanel])
-}
-
-/**
- *
- * Account control panel
- *
- * @author mir, hasan
- */
-@Path("/user/{id}/control-panel")
-class SettingsPanel {
-
-  import SettingPanel.logger
-
-  /**
-   * Mainpage
-   *
-   * @param id is the username as given in the URL
-   * @return an array of installed {@link Bundle}s to be managed
-   *
-   */
-  @GET
-  def settingsPage(@PathParam(value = "id") idP: String,
-              @QueryParam("changedPassword") changedPassword: String,
-              @Context uriInfo: UriInfo): GraphNode = {
-    TrailingSlash.enforceNotPresent(uriInfo)
-    val id: String = idP
-    var graphNode: GraphNode = null
-    AccessController.checkPermission(new AccountControlPanelAppPermission(id, ""))
-    try {
-      AccessController.checkPermission(new UserBundlePermission(id, ""))
-      graphNode = AccessController.doPrivileged(new PrivilegedAction[GraphNode] {
-        def run: GraphNode = {
-          var bundles: Array[Bundle] = userBundles(getAgent(id))
-          return asGraphNode(id, bundles)
-        }
-      })
-    }
-    catch {
-      case e: AccessControlException => {
-        graphNode = new GraphNode(new BNode, new SimpleMGraph)
-        graphNode.addProperty(CONTROLPANEL.userBundlePermission, LiteralFactory.getInstance.createTypedLiteral(false))
-      }
-    }
-    try {
-      AccessController.checkPermission(new ChangePasswordPermission(id, ""))
-      graphNode.addProperty(CONTROLPANEL.changePasswordPermission, LiteralFactory.getInstance.createTypedLiteral(true))
-    }
-    catch {
-      case e: AccessControlException => {
-        graphNode.addProperty(CONTROLPANEL.changePasswordPermission, LiteralFactory.getInstance.createTypedLiteral(false))
-      }
-    }
-    if (changedPassword != null && changedPassword.equals("false")) {
-      graphNode.addProperty(CONTROLPANEL.changedPassword, new PlainLiteralImpl("false"))
-    }
-    graphNode.addProperty(RDF.`type`, CONTROLPANEL.SettingsPage)
-    graphNode.addProperty(RDF.`type`, PLATFORM.HeadedPage)
-    return graphNode
-  }
-
-  private def addBundleDescriptionToGraph(responseGraph: MGraph, bundle: Bundle): Unit = {
-    var status: TypedLiteral = LiteralFactory.getInstance.createTypedLiteral(bundle.getState)
-    var bundleUri: UriRef = new UriRef(bundle.getLocation)
-    var triple: Triple = new TripleImpl(bundleUri, OSGI.status, status)
-    responseGraph.add(triple)
-    var bundleId: TypedLiteral = LiteralFactory.getInstance.createTypedLiteral(bundle.getBundleId)
-    triple = new TripleImpl(bundleUri, OSGI.bundle_id, bundleId)
-    responseGraph.add(triple)
-  }
-
-  private def asGraphNode(userId: String, bundles: Array[Bundle]): GraphNode = {
-    val responseGraph: MGraph = new SimpleMGraph
-    for (bundle <- bundles) {
-      addBundleDescriptionToGraph(responseGraph, bundle)
-    }
-    return AccessController.doPrivileged(new PrivilegedAction[GraphNode] {
-      def run: GraphNode = {
-        var userDescriptionGraph: Graph = new GraphNode(getAgent(userId), systemGraph).getNodeContext
-        var unionGraph: UnionMGraph = new UnionMGraph(responseGraph, userDescriptionGraph)
-        var graphNode: GraphNode = new GraphNode(getAgent(userId), unionGraph)
-        graphNode.addProperty(CONTROLPANEL.userBundlePermission, LiteralFactory.getInstance.createTypedLiteral(true))
-        return graphNode
-      }
-    })
-  }
-
-  /**
-   * Retrieves all bundles owned by a user represented by agent
-   *
-   * @param agent represents the user who owns bundles to be returned
-   * @return an array of {@link Bundle}s owned by the user
-   *
-   */
-  private def userBundles(agent: NonLiteral): Array[Bundle] = {
-    logger.debug("Retrieve all bundles from user: {}", agent)
-    var installedBundles: Array[Bundle] = componentContext.getBundleContext.getBundles
-    val locationMapper: Map[String, Long] = new HashMap[String, Long]
-    for (b <- installedBundles) {
-      locationMapper.put(b.getLocation, b.getBundleId)
-    }
-    return AccessController.doPrivileged(new PrivilegedAction[Array[Bundle]] {
-      def run: Array[Bundle] = {
-        var bundles: Set[Bundle] = new HashSet[Bundle]
-        var agentBundles: Iterator[Triple] = systemGraph.filter(null, OSGI.owner, agent)
-        while (agentBundles.hasNext) {
-          val location: String = (agentBundles.next.getSubject.asInstanceOf[UriRef]).getUnicodeString
-          try {
-            val id: Long = locationMapper.get(location)
-            bundles.add(componentContext.getBundleContext.getBundle(id))
-          } catch {
-            case _:NumberFormatException => None
-          }
-        }
-        return bundles.toArray(new Array[Bundle](bundles.size))
-      }
-    })
-  }
-
-  private def getAgent(id: String): NonLiteral = {
-    logger.debug("Get agent with id {}", id)
-    var agents: Iterator[Triple] = systemGraph.filter(null, PLATFORM.userName, new PlainLiteralImpl(id))
-    if (agents.hasNext) {
-      return agents.next.getSubject
-    }
-    else {
-      logger.debug("System graph does not contain user: {}", id)
-      var responseBuilder: Response.ResponseBuilder = Response.ok("<html><body>User does not exist</body></html>")
-      throw new WebApplicationException(responseBuilder.build)
-    }
-  }
-
-  private def getAgentPathPrefix(agent: NonLiteral): PlainLiteralImpl = {
-    return AccessController.doPrivileged(new PrivilegedAction[PlainLiteralImpl] {
-      def run: PlainLiteralImpl = {
-        var pathPrefixes: Iterator[Triple] = systemGraph.filter(agent, OSGI.agent_path_prefix, null)
-        if (pathPrefixes.hasNext) {
-          return pathPrefixes.next.getObject.asInstanceOf[PlainLiteralImpl]
-        }
-        return null
-      }
-    })
-  }
-
-  /**
-   * Installs a bundle from the specified location.
-   *
-   * @param id is the username as given in the URL
-   * @param location specifies the URL of the bundle to be installed
-   * @return an array of installed {@link Bundle}s to be managed
-   *
-   */
-  @POST
-  @Path("install-bundle")
-  @Consumes def installBundle(@PathParam(value = "id") id: String, multiForm: MultiPartBody, @Context uriInfo: UriInfo): Response = {
-    AccessController.checkPermission(new AccountControlPanelAppPermission(id, ""))
-    AccessController.checkPermission(new UserBundlePermission(id, ""))
-    var formFiles: Array[FormFile] = multiForm.getFormFileParameterValues("bundle")
-    var filename: String = formFiles(0).getFileName
-    var bundleBytes: Array[Byte] = formFiles(0).getContent
-    if (bundleBytes.length == 0) {
-      var message: String = null
-      if (filename.equals("")) {
-        message = "No bundle specified"
-      }
-      else {
-        message = "Bundle has length 0"
-      }
-      var responseBuilder: Response.ResponseBuilder = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(message)
-      throw new WebApplicationException(responseBuilder.build)
-    }
-    val bundleInputStream: InputStream = new ByteArrayInputStream(bundleBytes)
-    val location: String = "userbundle:" + id + "/" + filename
-    logger.info("Install bundle {} to location {}", id, location)
-    AccessController.doPrivileged(new PrivilegedAction[AnyRef] {
-      def run: Array[Bundle] = {
-        val agent: NonLiteral = getAgent(id)
-        val triple: Triple = new TripleImpl(new UriRef(location), OSGI.owner, agent)
-        try {
-          systemGraph.add(triple)
-          var bundle: Bundle = componentContext.getBundleContext.installBundle(location, bundleInputStream)
-          var prefix: PlainLiteralImpl = getAgentPathPrefix(agent)
-          if (prefix != null) {
-            addBundlePrefix(bundle, prefix.getLexicalForm)
-          }
-          return null
-        }
-        catch {
-          case ex: BundleException => {
-            systemGraph.remove(triple)
-            logger.debug("Failed to install a bundle from: {}", location)
-            logger.error("Exception during install bundle: {}", ex)
-            var responseBuilder: Response.ResponseBuilder = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(ex.getMessage)
-            throw new WebApplicationException(responseBuilder.build)
-          }
-        }
-      }
-    })
-    return RedirectUtil.createSeeOtherResponse("../control-panel", uriInfo)
-  }
-
-  private def addBundlePrefix(bundle: Bundle, prefix: String): Unit = {
-    var symbolicName: String = bundle.getSymbolicName
-    /*if (configAdmin != null) {
-      try {
-        var configuration: Configuration = configAdmin.getConfiguration(classOf[TriaxrsPrefixManager].getName)
-        val properties = configuration.getProperties match {
-          case null => new Hashtable[String, AnyRef]()
-          case dict: Dictionary[String, AnyRef] => dict
-        }
-        var mappings = TriaxrsPrefixManager.parseMappings(properties.get(TriaxrsPrefixManager.TRIAXRS_MAPPINGS).asInstanceOf[Array[String]])
-        logger.debug("Prefix {} added to bundle {}", prefix, symbolicName)
-        mappings.put(symbolicName, prefix)
-        var newMappings: Array[String] = TriaxrsPrefixManager.unparseMappings(mappings)
-        properties.put(TriaxrsPrefixManager.TRIAXRS_MAPPINGS, newMappings)
-        configuration.update(properties)
-      }
-      catch {
-        case e: IOException => {
-          logger.warn("Unable to update configuration: {}", e.toString)
-        }
-      }
-    }
-    else {
-      logger.warn("Cannot add prefix mapping. Configuration Admin is missing")
-    }*/
-  }
-
-  private[accountcontrolpanel] def removeBundlePrefix(bundle: Bundle): Unit = {
-    var symbolicName: String = bundle.getSymbolicName
-    /*if ((this.configAdmin != null) && (symbolicName != null)) {
-      try {
-        val configuration: Configuration = configAdmin.getConfiguration(classOf[TriaxrsPrefixManager].getName)
-        val properties = configuration.getProperties match {
-          case null => new Hashtable[String, AnyRef]()
-          case dict: Dictionary[String, AnyRef] => dict
-        }
-        val mappings = TriaxrsPrefixManager.parseMappings(properties.get(TriaxrsPrefixManager.TRIAXRS_MAPPINGS).asInstanceOf[Array[String]])
-        mappings.remove(symbolicName)
-        val newMappings: Array[String] = TriaxrsPrefixManager.unparseMappings(mappings)
-        properties.put(TriaxrsPrefixManager.TRIAXRS_MAPPINGS, newMappings)
-        configuration.update(properties)
-      }
-      catch {
-        case e: IOException => {
-          logger.warn("Unable to update configuration: {}", e.toString)
-        }
-      }
-    }
-    else {
-      logger.warn("Cannot add prefix mapping. Configuration Admin is missing")
-    }*/
-  }
-
-  /**
-   * Starts the bundle with the specified bundle id.
-   *
-   * @param id is the username as given in the URL
-   * @param bundleIdString specifies the id of the bundle to be started
-   * @return an array of installed {@link Bundle}s to be managed
-   *
-   */
-  @POST
-  @Path("start-bundle")
-  def startBundle(@PathParam(value = "id") idP: String,
-             @FormParam("bundleId") bundleIdStringP: String,
-             @Context uriInfo: UriInfo): Response = {
-    val id: String = idP
-    val bundleIdString: String = bundleIdStringP
-    AccessController.checkPermission(new AccountControlPanelAppPermission(id, ""))
-    AccessController.checkPermission(new UserBundlePermission(id, ""))
-    logger.info("Start bundle {} ", id)
-    val bundleId: Long = bundleIdString.toLong
-    AccessController.doPrivileged(new PrivilegedAction[AnyRef] {
-      def run: Array[Bundle] = {
-        try {
-          val bundle: Bundle = componentContext.getBundleContext.getBundle(bundleId)
-          bundle.start
-        }
-        catch {
-          case e: BundleException => {
-            logger.debug("Failed to start bundle {}", bundleIdString)
-            logger.error("Exception during start bundle: {}", e)
-            var responseBuilder: Response.ResponseBuilder = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage)
-            throw new WebApplicationException(responseBuilder.build)
-          }
-        }
-        return null
-      }
-    })
-    return RedirectUtil.createSeeOtherResponse("../control-panel", uriInfo)
-  }
-
-  /**
-   * Stops the bundle with the specified bundle id.
-   *
-   * @param id is the username as given in the URL
-   * @param bundleIdString specifies the id of the bundle to be stopped
-   * @return an array of installed {@link Bundle}s to be managed
-   *
-   */
-  @POST
-  @Path("stop-bundle") def stopBundle(@PathParam(value = "id") idP: String,
-                          @FormParam("bundleId") bundleIdStringP: String,
-                          @Context uriInfo: UriInfo): Response = {
-    val id: String = idP
-    val bundleIdString: String = bundleIdStringP
-    AccessController.checkPermission(new AccountControlPanelAppPermission(id, ""))
-    AccessController.checkPermission(new UserBundlePermission(id, ""))
-    logger.info("Stop bundle {}", id)
-    val bundleId: Long = bundleIdString.toLong
-    AccessController.doPrivileged(new PrivilegedAction[AnyRef] {
-      def run: Array[Bundle] = {
-        try {
-          var bundle: Bundle = componentContext.getBundleContext.getBundle(bundleId)
-          bundle.stop
-        }
-        catch {
-          case e: BundleException => {
-            logger.debug("Failed to stop bundle ", bundleIdString)
-            logger.error("Exception during stop bundle: {}", e)
-            var responseBuilder: Response.ResponseBuilder = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage)
-            throw new WebApplicationException(responseBuilder.build)
-          }
-        }
-        return null
-      }
-    })
-    return RedirectUtil.createSeeOtherResponse("../control-panel", uriInfo)
-  }
-
-  /**
-   * Uninstalls the bundle with the specified bundle id.
-   *
-   * @param id is the username as given in the URL
-   * @param bundleIdString specifies the id of the bundle to be uninstalled
-   * @return an array of installed {@link Bundle}s to be managed
-   *
-   */
-  @POST
-  @Path("uninstall-bundle")
-  def uninstallBundle(@PathParam(value = "id") idP: String,
-                @FormParam("bundleId") bundleIdStringP: String,
-                @Context uriInfo: UriInfo): Response = {
-    val id: String = idP
-    val bundleIdString: String = bundleIdStringP
-    AccessController.checkPermission(new AccountControlPanelAppPermission(id, ""))
-    AccessController.checkPermission(new UserBundlePermission(id, ""))
-    logger.info("Uninstall bundle {}", id)
-    val bundleId: Long = bundleIdString.toLong
-    AccessController.doPrivileged(new PrivilegedAction[AnyRef] {
-      def run: Array[Bundle] = {
-        val agent: NonLiteral = getAgent(id)
-        try {
-          var bundle: Bundle = componentContext.getBundleContext.getBundle(bundleId)
-          bundle.uninstall
-          val triple: Triple = new TripleImpl(new UriRef(bundle.getLocation), OSGI.owner, agent)
-          systemGraph.remove(triple)
-          removeBundlePrefix(bundle)
-        }
-        catch {
-          case e: BundleException => {
-            logger.debug("Failed to uninstall bundle {}", bundleIdString)
-            logger.error("Exception during uninstall bundle: {}", e)
-            var responseBuilder: Response.ResponseBuilder = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage)
-            throw new WebApplicationException(responseBuilder.build)
-          }
-        }
-        return null
-      }
-    })
-    return RedirectUtil.createSeeOtherResponse("../control-panel", uriInfo)
-  }
-
-  /**
-   * changes the password of an user
-   *
-   * @param idP id is the username as given in the URL
-   * @param lang represents the user's new standard language.
-   * @return
-   */
-  @POST
-  @Path("change-language")
-  def changeUserLanguage(@PathParam(value = "id") idP: String,
-                  @FormParam("availablelanguages") lang: String,
-                  @Context uriInfo: UriInfo): Response = {
-    val id: String = idP
-    AccessController.checkPermission(new AccountControlPanelAppPermission(id, ""))
-    AccessController.doPrivileged(new PrivilegedAction[AnyRef] {
-      def run: AnyRef = {
-        var userNode: GraphNode = new GraphNode(getAgent(id), systemGraph)
-        userNode.deleteProperties(PLATFORM.preferredLangInISOCode)
-        userNode.addProperty(PLATFORM.preferredLangInISOCode, LiteralFactory.getInstance.createTypedLiteral(lang))
-        return null
-      }
-    })
-    return RedirectUtil.createSeeOtherResponse("../control-panel", uriInfo)
-  }
-
-  /**
-   * changes the password of an user
-   *
-   * @param idP id is the username as given in the URL
-   * @param oldPW the current user password
-   * @param newPW the new password
-   * @param confirmNewPW the new password
-   * @return
-   */
-  @POST
-  @Path("change-password")
-  def changePassword(@PathParam(value = "id") idP: String,
-               @FormParam("oldPW") oldPW: String,
-               @FormParam("newPW") newPW: String,
-               @FormParam("confirmNewPW") confirmNewPW: String,
-               @Context uriInfo: UriInfo): Response = {
-    val id: String = idP
-    AccessController.checkPermission(new AccountControlPanelAppPermission(id, ""))
-    AccessController.checkPermission(new ChangePasswordPermission(id, ""))
-    var changedPassword: Boolean = false
-    if (newPW.trim.equals(confirmNewPW.trim) && checkPWStrings(oldPW, newPW)) {
-      changedPassword = AccessController.doPrivileged(new PrivilegedAction[Boolean] {
-        private def getCurrentPassword(agent: NonLiteral): String = {
-          var currentPassword: String = null
-          var oldPWTriple: Iterator[Triple] = systemGraph.filter(agent, PERMISSION.passwordSha1, null)
-          if (oldPWTriple.hasNext) {
-            var currentPWLiteral: Literal = oldPWTriple.next.getObject.asInstanceOf[Literal]
-            currentPassword = currentPWLiteral.getLexicalForm
-          }
-          return currentPassword
-        }
-
-        def run: Boolean = {
-          val agent: NonLiteral = getAgent(id)
-          var encodedOlpPW: String = getEncodedPW(oldPW)
-          var currentPassword: String = getCurrentPassword(agent)
-          if ((currentPassword != null) && !currentPassword.equals(encodedOlpPW)) {
-            logger.info("Typed wrong current password!")
-            return false
-          }
-          else {
-            removeOldPwAndAddNewPW(agent, currentPassword, newPW)
-            return true
-          }
-        }
-
-        private def removeOldPwAndAddNewPW(agent: NonLiteral, currentPassword: String, newPW: String): Unit = {
-          var newPWTriple: Triple = new TripleImpl(agent, PERMISSION.passwordSha1, new PlainLiteralImpl(getEncodedPW(newPW)))
-          if (currentPassword != null) {
-            var oldPWTriple: Triple = new TripleImpl(agent, PERMISSION.passwordSha1, new PlainLiteralImpl(currentPassword))
-            systemGraph.remove(oldPWTriple)
-            logger.debug("removed old password from systemgraph")
-          }
-          systemGraph.add(newPWTriple)
-          logger.debug("user " + id + " changed password")
-        }
-
-        private def getEncodedPW(password: String): String = {
-          if (password == null) {
-            return null
-          }
-          try {
-            return bytes2HexString(MessageDigest.getInstance("SHA1").digest(password.getBytes("UTF-8")))
-          }
-          catch {
-            case e: NoSuchAlgorithmException => {
-              throw new RuntimeException(e)
-            }
-            case e: UnsupportedEncodingException => {
-              throw new RuntimeException(e)
-            }
-          }
-        }
-
-        private def bytes2HexString(bytes: Array[Byte]): String = {
-          val HEXDIGITS: Array[Char] = "0123456789abcdef".toCharArray
-          val result = new Array[Char](bytes.length << 1)
-          var j: Int = 0
-          for (i <- 0 to bytes.length - 1) {
-            result(j) = HEXDIGITS(bytes(i) >> 4 & 0xF)
-            result(j + 1) = HEXDIGITS(bytes(i) & 0xF)
-            j += 2
-          }
-          return new String(result)
-        }
-      })
-    }
-    else {
-      logger.info("Changing password failed!")
-      changedPassword = false
-    }
-    if (changedPassword) {
-      return RedirectUtil.createSeeOtherResponse("../control-panel", uriInfo)
-    }
-    else {
-      return RedirectUtil.createSeeOtherResponse("../control-panel?changedPassword=false", uriInfo)
-    }
-  }
-
-  /**
-   * checks if the typed strings are valid
-   */
-  private def checkPWStrings(oldPW: String, newPW: String): Boolean = {
-    if (newPW.length == 0) {
-      return false
-    }
-    return true
-  }
-
-  /**
-   * The activate method is called when SCR activates the component configuration.
-   *
-   * @param componentContext
-   */
-  protected def activate(componentContext: ComponentContext): Unit = {
-    this.componentContext = componentContext
-  }
-
-  protected def bindConfigurationAdmin(configAdmin: ConfigurationAdmin): Unit = {
-    logger.debug("Binding configuration admin")
-    this.configAdmin = configAdmin
-  }
-
-  protected def unbindConfigurationAdmin(configAdmin: ConfigurationAdmin): Unit = {
-    logger.debug("Unbinding configuration admin")
-    this.configAdmin = null
-  }
-
-  protected def bindSystemGraph(mgraph: MGraph): Unit = {
-    systemGraph = mgraph
-  }
-
-  protected def unbindSystemGraph(mgraph: MGraph): Unit = {
-    if (systemGraph == mgraph) {
-      systemGraph = null
-    }
-  }
-
-  protected def bindCgProvider(contentgraphprovider: ContentGraphProvider): Unit = {
-    cgProvider = contentgraphprovider
-  }
-
-  protected def unbindCgProvider(contentgraphprovider: ContentGraphProvider): Unit = {
-    if (cgProvider == contentgraphprovider) {
-      cgProvider = null
-    }
-  }
-
-  private var componentContext: ComponentContext = null
-  private var systemGraph: MGraph = null
-  private var cgProvider: ContentGraphProvider = null
-  private var configAdmin: ConfigurationAdmin = null
-}
\ No newline at end of file


Mime
View raw message