Index: branches/HiveProjectManagement/HeuristicLab.Clients.Access/3.3/app.config
===================================================================
--- branches/HiveProjectManagement/HeuristicLab.Clients.Access/3.3/app.config	(revision 15544)
+++ branches/HiveProjectManagement/HeuristicLab.Clients.Access/3.3/app.config	(revision 15546)
@@ -36,9 +36,9 @@
     </bindings>
     <client>
-      <endpoint address="http://services.heuristiclab.com/AccessService-3.3/AccessService.svc"
+      <endpoint address="http://hivelab.hagenberg.fhooe.at/AccessService-3.3/AccessService.svc"
         binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAccessService"
         contract="HeuristicLab.Clients.Access.IAccessService" name="WSHttpBinding_IAccessService">
         <identity>
-          <dns value="services.heuristiclab.com" />
+          <dns value="localhost" />
         </identity>
       </endpoint>
Index: branches/HiveProjectManagement/HeuristicLab.Clients.Common/3.3/ClientFactory.cs
===================================================================
--- branches/HiveProjectManagement/HeuristicLab.Clients.Common/3.3/ClientFactory.cs	(revision 15544)
+++ branches/HiveProjectManagement/HeuristicLab.Clients.Common/3.3/ClientFactory.cs	(revision 15546)
@@ -61,5 +61,5 @@
       client.ClientCredentials.UserName.UserName = userName;
       client.ClientCredentials.UserName.Password = password;
-      client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.ChainTrust;
+      client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None;
 
       // we (jkarder + abeham) have disabled the revocation check for now
@@ -90,5 +90,5 @@
       channelFactory.Credentials.UserName.UserName = userName;
       channelFactory.Credentials.UserName.Password = password;
-      channelFactory.Credentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.ChainTrust;
+      channelFactory.Credentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None;
 
       // we (jkarder + abeham) have disabled the revocation check for now
Index: branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Slave.WindowsService/3.3/app.config
===================================================================
--- branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Slave.WindowsService/3.3/app.config	(revision 15544)
+++ branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Slave.WindowsService/3.3/app.config	(revision 15546)
@@ -150,16 +150,16 @@
     <client>
       <endpoint name="SlaveCommunicationServiceEndpoint" address="net.pipe://localhost/HeuristicLabSlaveCom" binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts.ISlaveCommunication"/>
-      <endpoint address="http://services.heuristiclab.com/Hive-3.3/HiveService.svc"
+      <endpoint address="http://hivelab.hagenberg.fhooe.at/Hive-3.3/HiveService.svc"
         binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IHiveService"
         contract="HeuristicLab.Clients.Hive.IHiveService" name="WSHttpBinding_IHiveService">
         <identity>
-          <dns value="services.heuristiclab.com" />
+          <dns value="localhost" />
         </identity>
       </endpoint>
-      <endpoint address="net.tcp://services.heuristiclab.com/Hive-3.3/HiveService.svc"
+      <endpoint address="net.tcp://hivelab.hagenberg.fhooe.at/Hive-3.3/HiveService.svc"
         binding="netTcpBinding" bindingConfiguration="NetBinding_IHiveService"
         contract="HeuristicLab.Clients.Hive.IHiveService" name="NetBinding_IHiveService">
         <identity>
-          <dns value="services.heuristiclab.com" />
+          <dns value="localhost" />
         </identity>
       </endpoint>
Index: branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Slave/3.3/app.config
===================================================================
--- branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Slave/3.3/app.config	(revision 15544)
+++ branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Slave/3.3/app.config	(revision 15546)
@@ -150,16 +150,16 @@
     <client>
       <endpoint name="SlaveCommunicationServiceEndpoint" address="net.pipe://localhost/HeuristicLabSlaveCom" binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts.ISlaveCommunication"/>
-      <endpoint address="http://services.heuristiclab.com/Hive-3.3/HiveService.svc"
+      <endpoint address="http://hivelab.hagenberg.fhooe.at/Hive-3.3/HiveService.svc"
         binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IHiveService"
         contract="HeuristicLab.Clients.Hive.IHiveService" name="WSHttpBinding_IHiveService">
         <identity>
-          <dns value="services.heuristiclab.com" />
+          <dns value="localhost" />
         </identity>
       </endpoint>
-      <endpoint address="net.tcp://services.heuristiclab.com/Hive-3.3/HiveService.svc"
+      <endpoint address="net.tcp://hivelab.hagenberg.fhooe.at/Hive-3.3/HiveService.svc"
         binding="netTcpBinding" bindingConfiguration="NetBinding_IHiveService"
         contract="HeuristicLab.Clients.Hive.IHiveService" name="NetBinding_IHiveService">
         <identity>
-          <dns value="services.heuristiclab.com" />
+          <dns value="localhost" />
         </identity>
       </endpoint>
Index: branches/HiveProjectManagement/HeuristicLab.Clients.Hive/3.3/app.config
===================================================================
--- branches/HiveProjectManagement/HeuristicLab.Clients.Hive/3.3/app.config	(revision 15544)
+++ branches/HiveProjectManagement/HeuristicLab.Clients.Hive/3.3/app.config	(revision 15546)
@@ -71,16 +71,16 @@
     </bindings>
     <client>
-      <endpoint address="http://services.heuristiclab.com/Hive-3.3/HiveService.svc"
+      <endpoint address="http://hivelab.hagenberg.fhooe.at/Hive-3.3/HiveService.svc"
         binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IHiveService"
         contract="HeuristicLab.Clients.Hive.IHiveService" name="WSHttpBinding_IHiveService">
         <identity>
-          <dns value="services.heuristiclab.com" />
+          <dns value="localhost" />
         </identity>
       </endpoint>
-      <endpoint address="net.tcp://services.heuristiclab.com/Hive-3.3/HiveService.svc"
+      <endpoint address="net.tcp://hivelab.hagenberg.fhooe.at/Hive-3.3/HiveService.svc"
         binding="netTcpBinding" bindingConfiguration="NetBinding_IHiveService"
         contract="HeuristicLab.Clients.Hive.IHiveService" name="NetBinding_IHiveService">
         <identity>
-          <dns value="services.heuristiclab.com" />
+          <dns value="localhost" />
         </identity>
       </endpoint>
Index: branches/HiveProjectManagement/HeuristicLab.Clients.OKB/3.3/app.config
===================================================================
--- branches/HiveProjectManagement/HeuristicLab.Clients.OKB/3.3/app.config	(revision 15544)
+++ branches/HiveProjectManagement/HeuristicLab.Clients.OKB/3.3/app.config	(revision 15546)
@@ -52,32 +52,32 @@
     </bindings>
     <client>
-      <endpoint address="http://services.heuristiclab.com/OKB-3.3/AdministrationService.svc"
+      <endpoint address="http://hivelab.hagenberg.fhooe.at/OKB-3.3/AdministrationService.svc"
         binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdministrationService"
         contract="HeuristicLab.Clients.OKB.Administration.IAdministrationService"
         name="WSHttpBinding_IAdministrationService">
         <identity>
-          <dns value="services.heuristiclab.com" />
+          <dns value="localhost" />
         </identity>
       </endpoint>
-      <endpoint address="http://services.heuristiclab.com/OKB-3.3/QueryService.svc"
+      <endpoint address="http://hivelab.hagenberg.fhooe.at/OKB-3.3/QueryService.svc"
         binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IQueryService"
         contract="HeuristicLab.Clients.OKB.Query.IQueryService" name="WSHttpBinding_IQueryService">
         <identity>
-          <dns value="services.heuristiclab.com" />
+          <dns value="localhost" />
         </identity>
       </endpoint>
-      <endpoint address="net.tcp://services.heuristiclab.com/OKB-3.3/QueryService.svc"
+      <endpoint address="net.tcp://hivelab.hagenberg.fhooe.at/OKB-3.3/QueryService.svc"
         binding="netTcpBinding" bindingConfiguration="NetBinding_IQueryService"
         contract="HeuristicLab.Clients.OKB.Query.IQueryService" name="NetBinding_IQueryService">
         <identity>
-          <dns value="services.heuristiclab.com" />
+          <dns value="localhost" />
         </identity>
       </endpoint>
-      <endpoint address="http://services.heuristiclab.com/OKB-3.3/RunCreationService.svc"
+      <endpoint address="http://hivelab.hagenberg.fhooe.at/OKB-3.3/RunCreationService.svc"
         binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IRunCreationService"
         contract="HeuristicLab.Clients.OKB.RunCreation.IRunCreationService"
         name="WSHttpBinding_IRunCreationService">
         <identity>
-          <dns value="services.heuristiclab.com" />
+          <dns value="localhost" />
         </identity>
       </endpoint>
Index: branches/HiveProjectManagement/HeuristicLab.PluginInfrastructure/3.3/app.config
===================================================================
--- branches/HiveProjectManagement/HeuristicLab.PluginInfrastructure/3.3/app.config	(revision 15544)
+++ branches/HiveProjectManagement/HeuristicLab.PluginInfrastructure/3.3/app.config	(revision 15546)
@@ -19,8 +19,8 @@
       </setting>
       <setting name="UpdateLocation" serializeAs="String">
-        <value>http://services.heuristiclab.com/Deployment-3.3/UpdateService.svc</value>
+        <value>http://hivelab.hagenberg.fhooe.at/Deployment-3.3/UpdateService.svc</value>
       </setting>
       <setting name="UpdateLocationAdministrationAddress" serializeAs="String">
-        <value>http://services.heuristiclab.com/Deployment-3.3/AdminService.svc</value>
+        <value>http://hivelab.hagenberg.fhooe.at/Deployment-3.3/AdminService.svc</value>
       </setting>
       <setting name="StarterFormLocation" serializeAs="String">
@@ -62,18 +62,18 @@
     </bindings>
     <client>
-      <endpoint address="http://services.heuristiclab.com/Deployment-3.3/UpdateService.svc"
+      <endpoint address="http://hivelab.hagenberg.fhooe.at/Deployment-3.3/UpdateService.svc"
         binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IUpdateService"
         contract="HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IUpdateService"
         name="WSHttpBinding_IUpdateService">
         <identity>
-          <dns value="services.heuristiclab.com" />
+          <dns value="localhost" />
         </identity>
       </endpoint>
-      <endpoint address="http://services.heuristiclab.com/Deployment-3.3/AdminService.svc"
+      <endpoint address="http://hivelab.hagenberg.fhooe.at/Deployment-3.3/AdminService.svc"
         binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdminService"
         contract="HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IAdminService"
         name="WSHttpBinding_IAdminService">
         <identity>
-          <dns value="services.heuristiclab.com" />
+          <dns value="localhost" />
         </identity>
       </endpoint>
Index: branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/AssignedProjectResourceDao.cs
===================================================================
--- branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/AssignedProjectResourceDao.cs	(revision 15544)
+++ branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/AssignedProjectResourceDao.cs	(revision 15546)
@@ -37,8 +37,17 @@
     }
 
-    public void DeleteByProjectAndGrantedUserId(Guid projectId, IEnumerable<Guid> resourceIds) {
+    public void DeleteByProjectIdAndResourceIds(Guid projectId, IEnumerable<Guid> resourceIds) {
       string paramIds = string.Join(",", resourceIds.Select(x => string.Format("'{0}'", x)));
       if (!string.IsNullOrWhiteSpace(paramIds)) {
-        string query = string.Format(DeleteByGrantedUserQuery, projectId, paramIds);
+        string query = string.Format(DeleteByProjectIdAndResourceIdsQueryString, projectId, paramIds);
+        DataContext.ExecuteCommand(query);
+      }
+    }
+
+    public void DeleteByProjectIdsAndResourceIds(IEnumerable<Guid> projectIds, IEnumerable<Guid> resourceIds) {
+      string paramProjectIds = string.Join(",", projectIds.Select(x => string.Format("'{0}'", x)));
+      string paramResourceIds = string.Join(",", resourceIds.Select(x => string.Format("'{0}'", x)));
+      if (!string.IsNullOrWhiteSpace(paramResourceIds)) {
+        string query = string.Format(DeleteByProjectIdsAndResourceIdsQueryString, paramProjectIds, paramResourceIds);
         DataContext.ExecuteCommand(query);
       }
@@ -76,8 +85,12 @@
 
     #region String queries
-    private const string DeleteByGrantedUserQuery =
+    private const string DeleteByProjectIdAndResourceIdsQueryString =
       @"DELETE FROM [AssignedProjectResource]
          WHERE ProjectId = '{0}'
            AND ResourceId IN ({1});";
+    private const string DeleteByProjectIdsAndResourceIdsQueryString =
+      @"DELETE FROM [AssignedProjectResource]
+             WHERE ProjectId IN ({0})
+               AND ResourceId IN ({1});";
     private const string CheckProjectGrantedForResourcesQueryString = @"
     WITH rtree AS
Index: branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Interfaces/IPersistenceManager.cs
===================================================================
--- branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Interfaces/IPersistenceManager.cs	(revision 15544)
+++ branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Interfaces/IPersistenceManager.cs	(revision 15546)
@@ -43,5 +43,4 @@
     RequiredPluginDao RequiredPluginDao { get; }
     ResourceDao ResourceDao { get; }
-    ResourcePermissionDao ResourcePermissionDao { get; }
     SlaveDao SlaveDao { get; }
     SlaveGroupDao SlaveGroupDao { get; }
Index: branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Manager/PersistenceManager.cs
===================================================================
--- branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Manager/PersistenceManager.cs	(revision 15544)
+++ branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Manager/PersistenceManager.cs	(revision 15546)
@@ -96,9 +96,4 @@
     public ResourceDao ResourceDao {
       get { return resourceDao ?? (resourceDao = new ResourceDao(dataContext)); }
-    }
-
-    private ResourcePermissionDao resourcePermissionDao;
-    public ResourcePermissionDao ResourcePermissionDao {
-      get { return resourcePermissionDao ?? (resourcePermissionDao = new ResourcePermissionDao(dataContext)); }
     }
 
Index: branches/HiveProjectManagement/HeuristicLab.Services.Hive.Web/web_services.config
===================================================================
--- branches/HiveProjectManagement/HeuristicLab.Services.Hive.Web/web_services.config	(revision 15544)
+++ branches/HiveProjectManagement/HeuristicLab.Services.Hive.Web/web_services.config	(revision 15546)
@@ -97,5 +97,5 @@
           <serviceAuthorization principalPermissionMode="UseAspNetRoles" roleProviderName="AspNetSqlRoleProvider" />
           <serviceCredentials>
-            <serviceCertificate findValue="services.heuristiclab.com" x509FindType="FindBySubjectName" />
+            <serviceCertificate findValue="localhost" x509FindType="FindBySubjectName" />
             <userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="AspNetSqlMembershipProvider" />
           </serviceCredentials>
@@ -118,5 +118,5 @@
         <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" name="MexTcpEndpoint" contract="IMetadataExchange"/>
         <endpoint address="" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IHiveService" name="WSHttpBinding_IHiveService" contract="HeuristicLab.Services.Hive.ServiceContracts.IHiveService"/>
-        <endpoint address="net.tcp://services.heuristiclab.com/Hive-3.3/HiveService.svc" binding="netTcpBinding"  bindingConfiguration="NetTcpBinding_IHiveService" name="NetBinding_IHiveService" contract="HeuristicLab.Services.Hive.ServiceContracts.IHiveService"/>
+        <endpoint address="net.tcp://hivelab.hagenberg.fhooe.at/Hive-3.3/HiveService.svc" binding="netTcpBinding"  bindingConfiguration="NetTcpBinding_IHiveService" name="NetBinding_IHiveService" contract="HeuristicLab.Services.Hive.ServiceContracts.IHiveService"/>
       </service>
     </services>
Index: branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/HiveService.cs
===================================================================
--- branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/HiveService.cs	(revision 15544)
+++ branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/HiveService.cs	(revision 15546)
@@ -841,7 +841,7 @@
 
     #region AssignedProjectResource Methods
-    public void AssignProjectResources(Guid projectId, Guid[] resourceIds) {
-      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
-      AuthorizationManager.AuthorizeForProjectAdministration(projectId);
+    public void AssignProjectResources(Guid projectId, Guid[] resourceIds, bool cascading) {
+      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
+      AuthorizationManager.AuthorizeForProjectResourceAdministration(projectId, resourceIds);
       var pm = PersistenceManager;
       using (new PerformanceLogger("AssignProjectResources")) {
@@ -850,8 +850,4 @@
           var project = projectDao.GetById(projectId);
           var assignedProjectResources = project.AssignedProjectResources.ToList();
-
-          // TODO-JAN
-          if (!RoleVerifier.IsInRole(HiveRoles.Administrator))
-            AuthorizeForResources(pm, project, resourceIds);
 
           foreach (var id in resourceIds) {
@@ -862,22 +858,33 @@
             }
           }
-          pm.SubmitChanges();
-        });
-      }
-    }
-
-    public void UnassignProjectResources(Guid projectId, Guid[] resourceIds) {
-      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
-      AuthorizationManager.AuthorizeForProjectAdministration(projectId);
-      // TODO-JAN: adjust Authorization Method
-      // only users who are owners of a parent project of projectId are allowed to manage resources
-      // these users can only those resources which are already assigned to
-      // (1) the nearest parent they own
-      // (2) to any of the parent they own
+          if(cascading) {
+            var childProjects = projectDao.GetChildProjectsById(projectId);
+            foreach(var p in childProjects) {
+              p.AssignedProjectResources.Clear();
+              foreach(var id in resourceIds) {
+                p.AssignedProjectResources.Add(new DA.AssignedProjectResource {
+                  ResourceId = id
+                });
+              }
+            }
+          }
+          pm.SubmitChanges();
+        });
+      }
+    }
+
+    public void UnassignProjectResources(Guid projectId, Guid[] resourceIds, bool cascading) {
+      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
+      AuthorizationManager.AuthorizeForProjectResourceAdministration(projectId, resourceIds);
       var pm = PersistenceManager;
       using (new PerformanceLogger("UnassignProjectResources")) {
         var assignedProjectResourceDao = pm.AssignedProjectResourceDao;
-        pm.UseTransaction(() => {
-          assignedProjectResourceDao.DeleteByProjectAndGrantedUserId(projectId, resourceIds);
+        var projectDao = pm.ProjectDao;
+        pm.UseTransaction(() => {
+          if(cascading) {
+            var childProjectIds = projectDao.GetChildProjectIdsById(projectId);
+            assignedProjectResourceDao.DeleteByProjectIdsAndResourceIds(childProjectIds, resourceIds);
+          }
+          assignedProjectResourceDao.DeleteByProjectIdAndResourceIds(projectId, resourceIds);
           pm.SubmitChanges();
         });
@@ -1236,62 +1243,5 @@
       }
     }
-
-    // Check if the current user is authorized to administer resourceIds
-    private void AuthorizeForResource(IPersistenceManager pm, DA.Project project, Guid[] resourceIds) {
-      var projectDao = pm.ProjectDao;
-      var resourceDao = pm.ResourceDao;
-
-      var projectBranch = new List<DA.Project> { project };
-      projectBranch.AddRange(projectDao.GetParentProjectsById(project.ProjectId));
-      var ownedProjects = projectBranch.Where(x => x.OwnerUserId == UserManager.CurrentUserId).ToList();
-
-      // get all assigned resourceIds (including children) of owned projects in this branch
-      var assignedResourceIds = ownedProjects.SelectMany(x => x.AssignedProjectResources).Select(x => x.ResourceId).ToList();
-      var assignedChildResourceIds = assignedResourceIds.SelectMany(x => resourceDao.GetParentResourceIdsById(x));
-      assignedResourceIds.AddRange(assignedChildResourceIds);
-
-      // look up if all resourceIds are among the assigned ones
-      if (resourceIds.Except(assignedResourceIds).Any()) {
-        throw new SecurityException(NOT_AUTHORIZED_RESOURCE);
-      }
-    }
-
-    // Check if the current user is authorized (i.e. is owner of the (sub)project) to set permissions 
-    // for a certain resource (resourceId) in the context of a certain project (projectId)
-    private DA.Resource AuthorizeForResource(IPersistenceManager pm, Guid resourceId, Guid projectId) {
-      var projectDao = pm.ProjectDao;
-      var project = projectDao.GetById(projectId);
-      if (project == null) throw new SecurityException(NOT_AUTHORIZED_PROJECT); // if project does not exist
-
-      var resourceDao = pm.ResourceDao;
-      var resource = resourceDao.GetById(resourceId);
-      if (resource == null) throw new SecurityException(NOT_AUTHORIZED_RESOURCE); // if resource does not exist
-
-
-      // check if user is administrator, owner of the project or any parent project
-      var projectTree = new List<DA.Project> { project };
-      projectTree.AddRange(projectDao.GetParentProjectsById(projectId));
-      if (!projectTree.Select(x => x.OwnerUserId).Contains(UserManager.CurrentUserId)
-        && !RoleVerifier.IsInRole(HiveRoles.Administrator)) {
-        throw new SecurityException(NOT_AUTHORIZED_PROJECT);
-      }
-
-      // look up if resourceId is amongst the assigned ones
-      var assignedResources = project.AssignedProjectResources.ToList();
-      if (assignedResources.Select(x => x.ResourceId).Contains(resourceId)) {
-        return resource;
-      }
-
-      // look up if one of the parent resourceIds is amongst the assigned ones
-      // note: this should be faster than checking all children of the assigned 
-      // resource(-groups) for the certain resourceId
-      var parentResourceIds = resourceDao.GetParentResourceIdsById(resourceId);
-      if (assignedResources.Select(x => x.ResourceId)
-        .Intersect(parentResourceIds).Count() > 0) {
-        return resource;
-      }
-
-      throw new SecurityException(NOT_AUTHORIZED_PROJECT);
-    }
+    
     #endregion
   }
Index: branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/ServiceContracts/IHiveService.cs
===================================================================
--- branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/ServiceContracts/IHiveService.cs	(revision 15544)
+++ branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/ServiceContracts/IHiveService.cs	(revision 15546)
@@ -162,8 +162,8 @@
     #region AssignedProjectResource Methods
     [OperationContract]
-    void AssignProjectResources(Guid projectId, Guid[] resourceIds);
-
-    [OperationContract]
-    void UnassignProjectResources(Guid projectId, Guid[] resourceIds);
+    void AssignProjectResources(Guid projectId, Guid[] resourceIds, bool cascading);
+
+    [OperationContract]
+    void UnassignProjectResources(Guid projectId, Guid[] resourceIds, bool cascading);
 
     [OperationContract]
Index: branches/HiveProjectManagement/HeuristicLab.Services.WebApp/3.3/Web.config
===================================================================
--- branches/HiveProjectManagement/HeuristicLab.Services.WebApp/3.3/Web.config	(revision 15544)
+++ branches/HiveProjectManagement/HeuristicLab.Services.WebApp/3.3/Web.config	(revision 15546)
@@ -1,88 +1,82 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
+﻿<?xml version="1.0"?>
 <configuration>
   <connectionStrings>
-    <remove name="HeuristicLab.Authentication" />
-    <remove name="HeuristicLab.Services.Hive.DataAccess.Settings.HeuristicLab_Hive_LinqConnectionString" />
-    <add name="HeuristicLab.Authentication" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Authentication" />
-    <add name="HeuristicLab.Services.Hive.DataAccess.Settings.HeuristicLab_Hive_LinqConnectionString" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Hive-3.3" />
+    <remove name="HeuristicLab.Authentication"/>
+    <remove name="HeuristicLab.Services.Hive.DataAccess.Settings.HeuristicLab_Hive_LinqConnectionString"/>
+    <add name="HeuristicLab.Authentication" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Authentication"/>
+    <add name="HeuristicLab.Services.Hive.DataAccess.Settings.HeuristicLab_Hive_LinqConnectionString" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Hive-3.3"/>
   </connectionStrings>
-  
   <appSettings>
-    <add key="webpages:Version" value="3.0.0.0" />
-    <add key="webpages:Enabled" value="false" />
-    <add key="ClientValidationEnabled" value="true" />
-    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
+    <add key="webpages:Version" value="3.0.0.0"/>
+    <add key="webpages:Enabled" value="false"/>
+    <add key="ClientValidationEnabled" value="true"/>
+    <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
   </appSettings>
-  
   <system.web>
     <authentication mode="Forms">
-      <forms loginUrl="~/App/Empty" timeout="2880" cookieless="UseCookies" name=".HEURISTICLABWEBAPP" />
+      <forms loginUrl="~/App/Empty" timeout="2880" cookieless="UseCookies" name=".HEURISTICLABWEBAPP"/>
     </authentication>
-    <compilation debug="false" targetFramework="4.5" />
-    <httpRuntime targetFramework="4.5" />
+    <compilation debug="true" targetFramework="4.5"/>
+    <httpRuntime targetFramework="4.5"/>
     <membership defaultProvider="AspNetSqlMembershipProvider">
       <providers>
-        <clear />
-        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="HeuristicLab.Authentication"
-             requiresQuestionAndAnswer="false" requiresUniqueEmail="false" applicationName="HeuristicLab.Authentication" minRequiredPasswordLength="8"
-             minRequiredNonalphanumericCharacters="0" maxInvalidPasswordAttempts="5" />
+        <clear/>
+        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="HeuristicLab.Authentication" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" applicationName="HeuristicLab.Authentication" minRequiredPasswordLength="8" minRequiredNonalphanumericCharacters="0" maxInvalidPasswordAttempts="5"/>
       </providers>
     </membership>
     <roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">
       <providers>
-        <clear />
-        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="HeuristicLab.Authentication" applicationName="HeuristicLab.Authentication" />
+        <clear/>
+        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="HeuristicLab.Authentication" applicationName="HeuristicLab.Authentication"/>
       </providers>
     </roleManager>
   </system.web>
-
   <system.webServer>
     <modules>
-      <remove name="FormsAuthentication" />
-      <remove name="DefaultAuthentication" />
-      <remove name="RoleManager" />
-      <remove name="UrlAuthorization" />
-      <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
-      <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" />
-      <add name="RoleManager" type="System.Web.Security.RoleManagerModule" />
-      <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" />
+      <remove name="FormsAuthentication"/>
+      <remove name="DefaultAuthentication"/>
+      <remove name="RoleManager"/>
+      <remove name="UrlAuthorization"/>
+      <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule"/>
+      <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule"/>
+      <add name="RoleManager" type="System.Web.Security.RoleManagerModule"/>
+      <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule"/>
     </modules>
     <handlers>
-      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
-      <remove name="OPTIONSVerbHandler" />
-      <remove name="TRACEVerbHandler" />
-      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
+      <remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
+      <remove name="OPTIONSVerbHandler"/>
+      <remove name="TRACEVerbHandler"/>
+      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
     </handlers>
   </system.webServer>
-
   <runtime>
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
-        <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
-        <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
+        <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed"/>
+        <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0"/>
       </dependentAssembly>
       <dependentAssembly>
-        <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
+        <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35"/>
+        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0"/>
       </dependentAssembly>
       <dependentAssembly>
-        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
+        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35"/>
+        <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
       </dependentAssembly>
       <dependentAssembly>
-        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
+        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
+        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
       </dependentAssembly>
       <dependentAssembly>
-        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
+        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
+        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
       </dependentAssembly>
       <dependentAssembly>
-        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
+        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
+        <bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
       </dependentAssembly>
       <dependentAssembly>
-        <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
+        <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral"/>
+        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>
       </dependentAssembly>
     </assemblyBinding>
