Changeset 15546


Ignore:
Timestamp:
12/19/17 13:22:47 (3 years ago)
Author:
jzenisek
Message:

#2839 worked on ProjectResource assignment: (cascading) assigning & unassigning

Location:
branches/HiveProjectManagement
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • branches/HiveProjectManagement/HeuristicLab.Clients.Access/3.3/app.config

    r15361 r15546  
    3636    </bindings>
    3737    <client>
    38       <endpoint address="http://services.heuristiclab.com/AccessService-3.3/AccessService.svc"
     38      <endpoint address="http://hivelab.hagenberg.fhooe.at/AccessService-3.3/AccessService.svc"
    3939        binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAccessService"
    4040        contract="HeuristicLab.Clients.Access.IAccessService" name="WSHttpBinding_IAccessService">
    4141        <identity>
    42           <dns value="services.heuristiclab.com" />
     42          <dns value="localhost" />
    4343        </identity>
    4444      </endpoint>
  • branches/HiveProjectManagement/HeuristicLab.Clients.Common/3.3/ClientFactory.cs

    r15361 r15546  
    6161      client.ClientCredentials.UserName.UserName = userName;
    6262      client.ClientCredentials.UserName.Password = password;
    63       client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.ChainTrust;
     63      client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None;
    6464
    6565      // we (jkarder + abeham) have disabled the revocation check for now
     
    9090      channelFactory.Credentials.UserName.UserName = userName;
    9191      channelFactory.Credentials.UserName.Password = password;
    92       channelFactory.Credentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.ChainTrust;
     92      channelFactory.Credentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None;
    9393
    9494      // we (jkarder + abeham) have disabled the revocation check for now
  • branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Slave.WindowsService/3.3/app.config

    r15361 r15546  
    150150    <client>
    151151      <endpoint name="SlaveCommunicationServiceEndpoint" address="net.pipe://localhost/HeuristicLabSlaveCom" binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts.ISlaveCommunication"/>
    152       <endpoint address="http://services.heuristiclab.com/Hive-3.3/HiveService.svc"
     152      <endpoint address="http://hivelab.hagenberg.fhooe.at/Hive-3.3/HiveService.svc"
    153153        binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IHiveService"
    154154        contract="HeuristicLab.Clients.Hive.IHiveService" name="WSHttpBinding_IHiveService">
    155155        <identity>
    156           <dns value="services.heuristiclab.com" />
     156          <dns value="localhost" />
    157157        </identity>
    158158      </endpoint>
    159       <endpoint address="net.tcp://services.heuristiclab.com/Hive-3.3/HiveService.svc"
     159      <endpoint address="net.tcp://hivelab.hagenberg.fhooe.at/Hive-3.3/HiveService.svc"
    160160        binding="netTcpBinding" bindingConfiguration="NetBinding_IHiveService"
    161161        contract="HeuristicLab.Clients.Hive.IHiveService" name="NetBinding_IHiveService">
    162162        <identity>
    163           <dns value="services.heuristiclab.com" />
     163          <dns value="localhost" />
    164164        </identity>
    165165      </endpoint>
  • branches/HiveProjectManagement/HeuristicLab.Clients.Hive.Slave/3.3/app.config

    r15361 r15546  
    150150    <client>
    151151      <endpoint name="SlaveCommunicationServiceEndpoint" address="net.pipe://localhost/HeuristicLabSlaveCom" binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts.ISlaveCommunication"/>
    152       <endpoint address="http://services.heuristiclab.com/Hive-3.3/HiveService.svc"
     152      <endpoint address="http://hivelab.hagenberg.fhooe.at/Hive-3.3/HiveService.svc"
    153153        binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IHiveService"
    154154        contract="HeuristicLab.Clients.Hive.IHiveService" name="WSHttpBinding_IHiveService">
    155155        <identity>
    156           <dns value="services.heuristiclab.com" />
     156          <dns value="localhost" />
    157157        </identity>
    158158      </endpoint>
    159       <endpoint address="net.tcp://services.heuristiclab.com/Hive-3.3/HiveService.svc"
     159      <endpoint address="net.tcp://hivelab.hagenberg.fhooe.at/Hive-3.3/HiveService.svc"
    160160        binding="netTcpBinding" bindingConfiguration="NetBinding_IHiveService"
    161161        contract="HeuristicLab.Clients.Hive.IHiveService" name="NetBinding_IHiveService">
    162162        <identity>
    163           <dns value="services.heuristiclab.com" />
     163          <dns value="localhost" />
    164164        </identity>
    165165      </endpoint>
  • branches/HiveProjectManagement/HeuristicLab.Clients.Hive/3.3/app.config

    r15361 r15546  
    7171    </bindings>
    7272    <client>
    73       <endpoint address="http://services.heuristiclab.com/Hive-3.3/HiveService.svc"
     73      <endpoint address="http://hivelab.hagenberg.fhooe.at/Hive-3.3/HiveService.svc"
    7474        binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IHiveService"
    7575        contract="HeuristicLab.Clients.Hive.IHiveService" name="WSHttpBinding_IHiveService">
    7676        <identity>
    77           <dns value="services.heuristiclab.com" />
     77          <dns value="localhost" />
    7878        </identity>
    7979      </endpoint>
    80       <endpoint address="net.tcp://services.heuristiclab.com/Hive-3.3/HiveService.svc"
     80      <endpoint address="net.tcp://hivelab.hagenberg.fhooe.at/Hive-3.3/HiveService.svc"
    8181        binding="netTcpBinding" bindingConfiguration="NetBinding_IHiveService"
    8282        contract="HeuristicLab.Clients.Hive.IHiveService" name="NetBinding_IHiveService">
    8383        <identity>
    84           <dns value="services.heuristiclab.com" />
     84          <dns value="localhost" />
    8585        </identity>
    8686      </endpoint>
  • branches/HiveProjectManagement/HeuristicLab.Clients.OKB/3.3/app.config

    r15361 r15546  
    5252    </bindings>
    5353    <client>
    54       <endpoint address="http://services.heuristiclab.com/OKB-3.3/AdministrationService.svc"
     54      <endpoint address="http://hivelab.hagenberg.fhooe.at/OKB-3.3/AdministrationService.svc"
    5555        binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdministrationService"
    5656        contract="HeuristicLab.Clients.OKB.Administration.IAdministrationService"
    5757        name="WSHttpBinding_IAdministrationService">
    5858        <identity>
    59           <dns value="services.heuristiclab.com" />
     59          <dns value="localhost" />
    6060        </identity>
    6161      </endpoint>
    62       <endpoint address="http://services.heuristiclab.com/OKB-3.3/QueryService.svc"
     62      <endpoint address="http://hivelab.hagenberg.fhooe.at/OKB-3.3/QueryService.svc"
    6363        binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IQueryService"
    6464        contract="HeuristicLab.Clients.OKB.Query.IQueryService" name="WSHttpBinding_IQueryService">
    6565        <identity>
    66           <dns value="services.heuristiclab.com" />
     66          <dns value="localhost" />
    6767        </identity>
    6868      </endpoint>
    69       <endpoint address="net.tcp://services.heuristiclab.com/OKB-3.3/QueryService.svc"
     69      <endpoint address="net.tcp://hivelab.hagenberg.fhooe.at/OKB-3.3/QueryService.svc"
    7070        binding="netTcpBinding" bindingConfiguration="NetBinding_IQueryService"
    7171        contract="HeuristicLab.Clients.OKB.Query.IQueryService" name="NetBinding_IQueryService">
    7272        <identity>
    73           <dns value="services.heuristiclab.com" />
     73          <dns value="localhost" />
    7474        </identity>
    7575      </endpoint>
    76       <endpoint address="http://services.heuristiclab.com/OKB-3.3/RunCreationService.svc"
     76      <endpoint address="http://hivelab.hagenberg.fhooe.at/OKB-3.3/RunCreationService.svc"
    7777        binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IRunCreationService"
    7878        contract="HeuristicLab.Clients.OKB.RunCreation.IRunCreationService"
    7979        name="WSHttpBinding_IRunCreationService">
    8080        <identity>
    81           <dns value="services.heuristiclab.com" />
     81          <dns value="localhost" />
    8282        </identity>
    8383      </endpoint>
  • branches/HiveProjectManagement/HeuristicLab.PluginInfrastructure/3.3/app.config

    r15361 r15546  
    1919      </setting>
    2020      <setting name="UpdateLocation" serializeAs="String">
    21         <value>http://services.heuristiclab.com/Deployment-3.3/UpdateService.svc</value>
     21        <value>http://hivelab.hagenberg.fhooe.at/Deployment-3.3/UpdateService.svc</value>
    2222      </setting>
    2323      <setting name="UpdateLocationAdministrationAddress" serializeAs="String">
    24         <value>http://services.heuristiclab.com/Deployment-3.3/AdminService.svc</value>
     24        <value>http://hivelab.hagenberg.fhooe.at/Deployment-3.3/AdminService.svc</value>
    2525      </setting>
    2626      <setting name="StarterFormLocation" serializeAs="String">
     
    6262    </bindings>
    6363    <client>
    64       <endpoint address="http://services.heuristiclab.com/Deployment-3.3/UpdateService.svc"
     64      <endpoint address="http://hivelab.hagenberg.fhooe.at/Deployment-3.3/UpdateService.svc"
    6565        binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IUpdateService"
    6666        contract="HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IUpdateService"
    6767        name="WSHttpBinding_IUpdateService">
    6868        <identity>
    69           <dns value="services.heuristiclab.com" />
     69          <dns value="localhost" />
    7070        </identity>
    7171      </endpoint>
    72       <endpoint address="http://services.heuristiclab.com/Deployment-3.3/AdminService.svc"
     72      <endpoint address="http://hivelab.hagenberg.fhooe.at/Deployment-3.3/AdminService.svc"
    7373        binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdminService"
    7474        contract="HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IAdminService"
    7575        name="WSHttpBinding_IAdminService">
    7676        <identity>
    77           <dns value="services.heuristiclab.com" />
     77          <dns value="localhost" />
    7878        </identity>
    7979      </endpoint>
  • branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/AssignedProjectResourceDao.cs

    r15540 r15546  
    3737    }
    3838
    39     public void DeleteByProjectAndGrantedUserId(Guid projectId, IEnumerable<Guid> resourceIds) {
     39    public void DeleteByProjectIdAndResourceIds(Guid projectId, IEnumerable<Guid> resourceIds) {
    4040      string paramIds = string.Join(",", resourceIds.Select(x => string.Format("'{0}'", x)));
    4141      if (!string.IsNullOrWhiteSpace(paramIds)) {
    42         string query = string.Format(DeleteByGrantedUserQuery, projectId, paramIds);
     42        string query = string.Format(DeleteByProjectIdAndResourceIdsQueryString, projectId, paramIds);
     43        DataContext.ExecuteCommand(query);
     44      }
     45    }
     46
     47    public void DeleteByProjectIdsAndResourceIds(IEnumerable<Guid> projectIds, IEnumerable<Guid> resourceIds) {
     48      string paramProjectIds = string.Join(",", projectIds.Select(x => string.Format("'{0}'", x)));
     49      string paramResourceIds = string.Join(",", resourceIds.Select(x => string.Format("'{0}'", x)));
     50      if (!string.IsNullOrWhiteSpace(paramResourceIds)) {
     51        string query = string.Format(DeleteByProjectIdsAndResourceIdsQueryString, paramProjectIds, paramResourceIds);
    4352        DataContext.ExecuteCommand(query);
    4453      }
     
    7685
    7786    #region String queries
    78     private const string DeleteByGrantedUserQuery =
     87    private const string DeleteByProjectIdAndResourceIdsQueryString =
    7988      @"DELETE FROM [AssignedProjectResource]
    8089         WHERE ProjectId = '{0}'
    8190           AND ResourceId IN ({1});";
     91    private const string DeleteByProjectIdsAndResourceIdsQueryString =
     92      @"DELETE FROM [AssignedProjectResource]
     93             WHERE ProjectId IN ({0})
     94               AND ResourceId IN ({1});";
    8295    private const string CheckProjectGrantedForResourcesQueryString = @"
    8396    WITH rtree AS
  • branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Interfaces/IPersistenceManager.cs

    r15497 r15546  
    4343    RequiredPluginDao RequiredPluginDao { get; }
    4444    ResourceDao ResourceDao { get; }
    45     ResourcePermissionDao ResourcePermissionDao { get; }
    4645    SlaveDao SlaveDao { get; }
    4746    SlaveGroupDao SlaveGroupDao { get; }
  • branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Manager/PersistenceManager.cs

    r15497 r15546  
    9696    public ResourceDao ResourceDao {
    9797      get { return resourceDao ?? (resourceDao = new ResourceDao(dataContext)); }
    98     }
    99 
    100     private ResourcePermissionDao resourcePermissionDao;
    101     public ResourcePermissionDao ResourcePermissionDao {
    102       get { return resourcePermissionDao ?? (resourcePermissionDao = new ResourcePermissionDao(dataContext)); }
    10398    }
    10499
  • branches/HiveProjectManagement/HeuristicLab.Services.Hive.Web/web_services.config

    r9665 r15546  
    9797          <serviceAuthorization principalPermissionMode="UseAspNetRoles" roleProviderName="AspNetSqlRoleProvider" />
    9898          <serviceCredentials>
    99             <serviceCertificate findValue="services.heuristiclab.com" x509FindType="FindBySubjectName" />
     99            <serviceCertificate findValue="localhost" x509FindType="FindBySubjectName" />
    100100            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="AspNetSqlMembershipProvider" />
    101101          </serviceCredentials>
     
    118118        <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" name="MexTcpEndpoint" contract="IMetadataExchange"/>
    119119        <endpoint address="" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IHiveService" name="WSHttpBinding_IHiveService" contract="HeuristicLab.Services.Hive.ServiceContracts.IHiveService"/>
    120         <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"/>
     120        <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"/>
    121121      </service>
    122122    </services>
  • branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/HiveService.cs

    r15530 r15546  
    841841
    842842    #region AssignedProjectResource Methods
    843     public void AssignProjectResources(Guid projectId, Guid[] resourceIds) {
    844       RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
    845       AuthorizationManager.AuthorizeForProjectAdministration(projectId);
     843    public void AssignProjectResources(Guid projectId, Guid[] resourceIds, bool cascading) {
     844      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
     845      AuthorizationManager.AuthorizeForProjectResourceAdministration(projectId, resourceIds);
    846846      var pm = PersistenceManager;
    847847      using (new PerformanceLogger("AssignProjectResources")) {
     
    850850          var project = projectDao.GetById(projectId);
    851851          var assignedProjectResources = project.AssignedProjectResources.ToList();
    852 
    853           // TODO-JAN
    854           if (!RoleVerifier.IsInRole(HiveRoles.Administrator))
    855             AuthorizeForResources(pm, project, resourceIds);
    856852
    857853          foreach (var id in resourceIds) {
     
    862858            }
    863859          }
    864           pm.SubmitChanges();
    865         });
    866       }
    867     }
    868 
    869     public void UnassignProjectResources(Guid projectId, Guid[] resourceIds) {
    870       RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
    871       AuthorizationManager.AuthorizeForProjectAdministration(projectId);
    872       // TODO-JAN: adjust Authorization Method
    873       // only users who are owners of a parent project of projectId are allowed to manage resources
    874       // these users can only those resources which are already assigned to
    875       // (1) the nearest parent they own
    876       // (2) to any of the parent they own
     860          if(cascading) {
     861            var childProjects = projectDao.GetChildProjectsById(projectId);
     862            foreach(var p in childProjects) {
     863              p.AssignedProjectResources.Clear();
     864              foreach(var id in resourceIds) {
     865                p.AssignedProjectResources.Add(new DA.AssignedProjectResource {
     866                  ResourceId = id
     867                });
     868              }
     869            }
     870          }
     871          pm.SubmitChanges();
     872        });
     873      }
     874    }
     875
     876    public void UnassignProjectResources(Guid projectId, Guid[] resourceIds, bool cascading) {
     877      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
     878      AuthorizationManager.AuthorizeForProjectResourceAdministration(projectId, resourceIds);
    877879      var pm = PersistenceManager;
    878880      using (new PerformanceLogger("UnassignProjectResources")) {
    879881        var assignedProjectResourceDao = pm.AssignedProjectResourceDao;
    880         pm.UseTransaction(() => {
    881           assignedProjectResourceDao.DeleteByProjectAndGrantedUserId(projectId, resourceIds);
     882        var projectDao = pm.ProjectDao;
     883        pm.UseTransaction(() => {
     884          if(cascading) {
     885            var childProjectIds = projectDao.GetChildProjectIdsById(projectId);
     886            assignedProjectResourceDao.DeleteByProjectIdsAndResourceIds(childProjectIds, resourceIds);
     887          }
     888          assignedProjectResourceDao.DeleteByProjectIdAndResourceIds(projectId, resourceIds);
    882889          pm.SubmitChanges();
    883890        });
     
    12361243      }
    12371244    }
    1238 
    1239     // Check if the current user is authorized to administer resourceIds
    1240     private void AuthorizeForResource(IPersistenceManager pm, DA.Project project, Guid[] resourceIds) {
    1241       var projectDao = pm.ProjectDao;
    1242       var resourceDao = pm.ResourceDao;
    1243 
    1244       var projectBranch = new List<DA.Project> { project };
    1245       projectBranch.AddRange(projectDao.GetParentProjectsById(project.ProjectId));
    1246       var ownedProjects = projectBranch.Where(x => x.OwnerUserId == UserManager.CurrentUserId).ToList();
    1247 
    1248       // get all assigned resourceIds (including children) of owned projects in this branch
    1249       var assignedResourceIds = ownedProjects.SelectMany(x => x.AssignedProjectResources).Select(x => x.ResourceId).ToList();
    1250       var assignedChildResourceIds = assignedResourceIds.SelectMany(x => resourceDao.GetParentResourceIdsById(x));
    1251       assignedResourceIds.AddRange(assignedChildResourceIds);
    1252 
    1253       // look up if all resourceIds are among the assigned ones
    1254       if (resourceIds.Except(assignedResourceIds).Any()) {
    1255         throw new SecurityException(NOT_AUTHORIZED_RESOURCE);
    1256       }
    1257     }
    1258 
    1259     // Check if the current user is authorized (i.e. is owner of the (sub)project) to set permissions
    1260     // for a certain resource (resourceId) in the context of a certain project (projectId)
    1261     private DA.Resource AuthorizeForResource(IPersistenceManager pm, Guid resourceId, Guid projectId) {
    1262       var projectDao = pm.ProjectDao;
    1263       var project = projectDao.GetById(projectId);
    1264       if (project == null) throw new SecurityException(NOT_AUTHORIZED_PROJECT); // if project does not exist
    1265 
    1266       var resourceDao = pm.ResourceDao;
    1267       var resource = resourceDao.GetById(resourceId);
    1268       if (resource == null) throw new SecurityException(NOT_AUTHORIZED_RESOURCE); // if resource does not exist
    1269 
    1270 
    1271       // check if user is administrator, owner of the project or any parent project
    1272       var projectTree = new List<DA.Project> { project };
    1273       projectTree.AddRange(projectDao.GetParentProjectsById(projectId));
    1274       if (!projectTree.Select(x => x.OwnerUserId).Contains(UserManager.CurrentUserId)
    1275         && !RoleVerifier.IsInRole(HiveRoles.Administrator)) {
    1276         throw new SecurityException(NOT_AUTHORIZED_PROJECT);
    1277       }
    1278 
    1279       // look up if resourceId is amongst the assigned ones
    1280       var assignedResources = project.AssignedProjectResources.ToList();
    1281       if (assignedResources.Select(x => x.ResourceId).Contains(resourceId)) {
    1282         return resource;
    1283       }
    1284 
    1285       // look up if one of the parent resourceIds is amongst the assigned ones
    1286       // note: this should be faster than checking all children of the assigned
    1287       // resource(-groups) for the certain resourceId
    1288       var parentResourceIds = resourceDao.GetParentResourceIdsById(resourceId);
    1289       if (assignedResources.Select(x => x.ResourceId)
    1290         .Intersect(parentResourceIds).Count() > 0) {
    1291         return resource;
    1292       }
    1293 
    1294       throw new SecurityException(NOT_AUTHORIZED_PROJECT);
    1295     }
     1245   
    12961246    #endregion
    12971247  }
  • branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/ServiceContracts/IHiveService.cs

    r15530 r15546  
    162162    #region AssignedProjectResource Methods
    163163    [OperationContract]
    164     void AssignProjectResources(Guid projectId, Guid[] resourceIds);
    165 
    166     [OperationContract]
    167     void UnassignProjectResources(Guid projectId, Guid[] resourceIds);
     164    void AssignProjectResources(Guid projectId, Guid[] resourceIds, bool cascading);
     165
     166    [OperationContract]
     167    void UnassignProjectResources(Guid projectId, Guid[] resourceIds, bool cascading);
    168168
    169169    [OperationContract]
  • branches/HiveProjectManagement/HeuristicLab.Services.WebApp/3.3/Web.config

    r14748 r15546  
    1 <?xml version="1.0" encoding="utf-8"?>
     1<?xml version="1.0"?>
    22<configuration>
    33  <connectionStrings>
    4     <remove name="HeuristicLab.Authentication" />
    5     <remove name="HeuristicLab.Services.Hive.DataAccess.Settings.HeuristicLab_Hive_LinqConnectionString" />
    6     <add name="HeuristicLab.Authentication" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Authentication" />
    7     <add name="HeuristicLab.Services.Hive.DataAccess.Settings.HeuristicLab_Hive_LinqConnectionString" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Hive-3.3" />
     4    <remove name="HeuristicLab.Authentication"/>
     5    <remove name="HeuristicLab.Services.Hive.DataAccess.Settings.HeuristicLab_Hive_LinqConnectionString"/>
     6    <add name="HeuristicLab.Authentication" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Authentication"/>
     7    <add name="HeuristicLab.Services.Hive.DataAccess.Settings.HeuristicLab_Hive_LinqConnectionString" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Hive-3.3"/>
    88  </connectionStrings>
    9  
    109  <appSettings>
    11     <add key="webpages:Version" value="3.0.0.0" />
    12     <add key="webpages:Enabled" value="false" />
    13     <add key="ClientValidationEnabled" value="true" />
    14     <add key="UnobtrusiveJavaScriptEnabled" value="true" />
     10    <add key="webpages:Version" value="3.0.0.0"/>
     11    <add key="webpages:Enabled" value="false"/>
     12    <add key="ClientValidationEnabled" value="true"/>
     13    <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
    1514  </appSettings>
    16  
    1715  <system.web>
    1816    <authentication mode="Forms">
    19       <forms loginUrl="~/App/Empty" timeout="2880" cookieless="UseCookies" name=".HEURISTICLABWEBAPP" />
     17      <forms loginUrl="~/App/Empty" timeout="2880" cookieless="UseCookies" name=".HEURISTICLABWEBAPP"/>
    2018    </authentication>
    21     <compilation debug="false" targetFramework="4.5" />
    22     <httpRuntime targetFramework="4.5" />
     19    <compilation debug="true" targetFramework="4.5"/>
     20    <httpRuntime targetFramework="4.5"/>
    2321    <membership defaultProvider="AspNetSqlMembershipProvider">
    2422      <providers>
    25         <clear />
    26         <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="HeuristicLab.Authentication"
    27              requiresQuestionAndAnswer="false" requiresUniqueEmail="false" applicationName="HeuristicLab.Authentication" minRequiredPasswordLength="8"
    28              minRequiredNonalphanumericCharacters="0" maxInvalidPasswordAttempts="5" />
     23        <clear/>
     24        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="HeuristicLab.Authentication" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" applicationName="HeuristicLab.Authentication" minRequiredPasswordLength="8" minRequiredNonalphanumericCharacters="0" maxInvalidPasswordAttempts="5"/>
    2925      </providers>
    3026    </membership>
    3127    <roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">
    3228      <providers>
    33         <clear />
    34         <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="HeuristicLab.Authentication" applicationName="HeuristicLab.Authentication" />
     29        <clear/>
     30        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="HeuristicLab.Authentication" applicationName="HeuristicLab.Authentication"/>
    3531      </providers>
    3632    </roleManager>
    3733  </system.web>
    38 
    3934  <system.webServer>
    4035    <modules>
    41       <remove name="FormsAuthentication" />
    42       <remove name="DefaultAuthentication" />
    43       <remove name="RoleManager" />
    44       <remove name="UrlAuthorization" />
    45       <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
    46       <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" />
    47       <add name="RoleManager" type="System.Web.Security.RoleManagerModule" />
    48       <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" />
     36      <remove name="FormsAuthentication"/>
     37      <remove name="DefaultAuthentication"/>
     38      <remove name="RoleManager"/>
     39      <remove name="UrlAuthorization"/>
     40      <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule"/>
     41      <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule"/>
     42      <add name="RoleManager" type="System.Web.Security.RoleManagerModule"/>
     43      <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule"/>
    4944    </modules>
    5045    <handlers>
    51       <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
    52       <remove name="OPTIONSVerbHandler" />
    53       <remove name="TRACEVerbHandler" />
    54       <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
     46      <remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
     47      <remove name="OPTIONSVerbHandler"/>
     48      <remove name="TRACEVerbHandler"/>
     49      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
    5550    </handlers>
    5651  </system.webServer>
    57 
    5852  <runtime>
    5953    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    6054      <dependentAssembly>
    61         <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
    62         <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
     55        <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed"/>
     56        <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0"/>
    6357      </dependentAssembly>
    6458      <dependentAssembly>
    65         <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
    66         <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
     59        <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35"/>
     60        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0"/>
    6761      </dependentAssembly>
    6862      <dependentAssembly>
    69         <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
    70         <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
     63        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35"/>
     64        <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
    7165      </dependentAssembly>
    7266      <dependentAssembly>
    73         <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
    74         <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
     67        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
     68        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
    7569      </dependentAssembly>
    7670      <dependentAssembly>
    77         <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
    78         <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
     71        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
     72        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
    7973      </dependentAssembly>
    8074      <dependentAssembly>
    81         <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    82         <bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
     75        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
     76        <bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
    8377      </dependentAssembly>
    8478      <dependentAssembly>
    85         <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
    86         <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
     79        <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral"/>
     80        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>
    8781      </dependentAssembly>
    8882    </assemblyBinding>
Note: See TracChangeset for help on using the changeset viewer.