diff --git a/src/Project.Tests/Project.Tests.csproj b/src/Project.Tests/Project.Tests.csproj index 0b342e82d631845cc8ece2b794465adfe0449c1c..9494fe7ac1ca9ad880936220d94b9bfc4e7a872d 100644 --- a/src/Project.Tests/Project.Tests.csproj +++ b/src/Project.Tests/Project.Tests.csproj @@ -68,11 +68,11 @@ <Reference Include="Coscine.Configuration, Version=1.5.0.0, Culture=neutral, PublicKeyToken=ce3d7a32d7dc1e5a, processorArchitecture=MSIL"> <HintPath>..\packages\Coscine.Configuration.1.5.0\lib\net461\Coscine.Configuration.dll</HintPath> </Reference> - <Reference Include="Coscine.Database, Version=1.24.0.0, Culture=neutral, PublicKeyToken=767d77427707b70a, processorArchitecture=MSIL"> - <HintPath>..\packages\Coscine.Database.1.24.0\lib\net461\Coscine.Database.dll</HintPath> + <Reference Include="Coscine.Database, Version=1.25.0.0, Culture=neutral, PublicKeyToken=767d77427707b70a, processorArchitecture=MSIL"> + <HintPath>..\packages\Coscine.Database.1.25.0-topic-1060-affil0002\lib\net461\Coscine.Database.dll</HintPath> </Reference> - <Reference Include="Coscine.Database.T4, Version=1.24.0.0, Culture=neutral, PublicKeyToken=84b4c404a0696261, processorArchitecture=MSIL"> - <HintPath>..\packages\Coscine.Database.1.24.0\lib\net461\Coscine.Database.T4.dll</HintPath> + <Reference Include="Coscine.Database.T4, Version=1.25.0.0, Culture=neutral, PublicKeyToken=84b4c404a0696261, processorArchitecture=MSIL"> + <HintPath>..\packages\Coscine.Database.1.25.0-topic-1060-affil0002\lib\net461\Coscine.Database.T4.dll</HintPath> </Reference> <Reference Include="Coscine.Logging, Version=1.2.0.0, Culture=neutral, PublicKeyToken=e1ed402bc3f6525e, processorArchitecture=MSIL"> <HintPath>..\packages\Coscine.Logging.1.2.0\lib\net461\Coscine.Logging.dll</HintPath> diff --git a/src/Project.Tests/app.config b/src/Project.Tests/app.config index c01c678f6934b70ace7ce885263a9b66c62f8417..d9597f07a6f55c92e0927f3d13c1a101038f990d 100644 --- a/src/Project.Tests/app.config +++ b/src/Project.Tests/app.config @@ -88,7 +88,7 @@ </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Coscine.Database" publicKeyToken="767d77427707b70a" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-1.24.0.0" newVersion="1.24.0.0" /> + <bindingRedirect oldVersion="0.0.0.0-1.25.0.0" newVersion="1.25.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.IdentityModel.Tokens.Jwt" publicKeyToken="31bf3856ad364e35" culture="neutral" /> @@ -186,6 +186,14 @@ <assemblyIdentity name="linq2db" publicKeyToken="e41013125f9e410a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-3.1.1.0" newVersion="3.1.1.0" /> </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="HtmlAgilityPack" publicKeyToken="bd319b19eaf3b43a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.8.2.0" newVersion="1.8.2.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Coscine.Database.T4" publicKeyToken="84b4c404a0696261" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.25.0.0" newVersion="1.25.0.0" /> + </dependentAssembly> </assemblyBinding> </runtime> <entityFramework> diff --git a/src/Project.Tests/packages.config b/src/Project.Tests/packages.config index 8c3cf607839507450873b503c3cb6efbecfd09ec..7c7683256b4fa8a5006107f79326011feb031bd8 100644 --- a/src/Project.Tests/packages.config +++ b/src/Project.Tests/packages.config @@ -7,7 +7,7 @@ <package id="Coscine.Action" version="1.15.1" targetFramework="net472" /> <package id="Coscine.ApiCommons" version="1.9.1" targetFramework="net472" /> <package id="Coscine.Configuration" version="1.5.0" targetFramework="net472" /> - <package id="Coscine.Database" version="1.24.0" targetFramework="net472" /> + <package id="Coscine.Database" version="1.25.0-topic-1060-affil0002" targetFramework="net472" /> <package id="Coscine.Logging" version="1.2.0" targetFramework="net472" /> <package id="Coscine.ProxyApi" version="1.2.1" targetFramework="net472" /> <package id="EntityFramework" version="6.4.4" targetFramework="net472" /> diff --git a/src/Project/App.config b/src/Project/App.config index f0970dd6864eb0de580e6e1b668ad35062d17e52..59468134fc171d2df9f3650404987266145b910b 100644 --- a/src/Project/App.config +++ b/src/Project/App.config @@ -91,7 +91,7 @@ </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Coscine.Database" publicKeyToken="767d77427707b70a" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-1.24.0.0" newVersion="1.24.0.0" /> + <bindingRedirect oldVersion="0.0.0.0-1.25.0.0" newVersion="1.25.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.IdentityModel.Tokens.Jwt" publicKeyToken="31bf3856ad364e35" culture="neutral" /> @@ -189,6 +189,10 @@ <assemblyIdentity name="linq2db" publicKeyToken="e41013125f9e410a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-3.1.1.0" newVersion="3.1.1.0" /> </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Coscine.Database.T4" publicKeyToken="84b4c404a0696261" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.25.0.0" newVersion="1.25.0.0" /> + </dependentAssembly> </assemblyBinding> </runtime> <entityFramework> diff --git a/src/Project/Controllers/ProjectController.cs b/src/Project/Controllers/ProjectController.cs index 8cfcef8106d4373851fd849264c7448c56b4b849..3dff633717f470425759cc2b9693fb33c5fe7b74 100644 --- a/src/Project/Controllers/ProjectController.cs +++ b/src/Project/Controllers/ProjectController.cs @@ -16,6 +16,7 @@ using Newtonsoft.Json.Linq; using Coscine.Database.DataModel; using System.Collections.Generic; using System.Text.RegularExpressions; +using Coscine.Metadata; namespace Coscine.Api.Project.Controllers { @@ -295,6 +296,7 @@ namespace Coscine.Api.Project.Controllers public IActionResult Store() { var user = _authenticator.GetUser(); + var isRWTHMember = IsRWTHMember(user); var projectObject = ObjectFactory<ProjectObject>.DeserializeFromStream(Request.Body); if (projectObject.ParentId != null @@ -304,7 +306,7 @@ namespace Coscine.Api.Project.Controllers return Unauthorized("User is not allowed to create SubProjects."); } - var project = _projectModel.StoreFromObject(projectObject, user); + var project = _projectModel.StoreFromObject(projectObject, user, isRWTHMember); if (projectObject.ParentId != null && projectObject.ParentId != new Guid() @@ -326,6 +328,22 @@ namespace Coscine.Api.Project.Controllers return Json(_projectModel.CreateReturnObjectFromDatabaseObject(project)); } + private bool IsRWTHMember(User user) + { + var externalIds = new ExternalIdModel().GetAllWhere((externalId) => externalId.UserId == user.Id); + if(externalIds.Count() == 0) + { + return false; + } + var externalIdList = new List<string>(); + + foreach (var externalId in externalIds) + { + externalIdList.Add(externalId.ExternalIdColumn); + } + return new RdfStoreConnector().GetTriples(new Uri("https://ror.org/04xfq0f34"), null, null, 1, externalIdList).Count() != 0; + } + private void LogAnalytics(string operation, IEnumerable<ProjectObject> projects = null, IEnumerable<ResourceObject> resources = null, diff --git a/src/Project/Project.csproj b/src/Project/Project.csproj index a16c2b0cb954749d39b95d75dbc313ce5c861516..c5ea01e14132575443e2a8f8142fe3058f6c377b 100644 --- a/src/Project/Project.csproj +++ b/src/Project/Project.csproj @@ -61,26 +61,35 @@ <Reference Include="Coscine.Configuration, Version=1.5.0.0, Culture=neutral, PublicKeyToken=ce3d7a32d7dc1e5a, processorArchitecture=MSIL"> <HintPath>..\packages\Coscine.Configuration.1.5.0\lib\net461\Coscine.Configuration.dll</HintPath> </Reference> - <Reference Include="Coscine.Database, Version=1.24.0.0, Culture=neutral, PublicKeyToken=767d77427707b70a, processorArchitecture=MSIL"> - <HintPath>..\packages\Coscine.Database.1.24.0\lib\net461\Coscine.Database.dll</HintPath> + <Reference Include="Coscine.Database, Version=1.25.0.0, Culture=neutral, PublicKeyToken=767d77427707b70a, processorArchitecture=MSIL"> + <HintPath>..\packages\Coscine.Database.1.25.0-topic-1060-affil0002\lib\net461\Coscine.Database.dll</HintPath> </Reference> - <Reference Include="Coscine.Database.T4, Version=1.24.0.0, Culture=neutral, PublicKeyToken=84b4c404a0696261, processorArchitecture=MSIL"> - <HintPath>..\packages\Coscine.Database.1.24.0\lib\net461\Coscine.Database.T4.dll</HintPath> + <Reference Include="Coscine.Database.T4, Version=1.25.0.0, Culture=neutral, PublicKeyToken=84b4c404a0696261, processorArchitecture=MSIL"> + <HintPath>..\packages\Coscine.Database.1.25.0-topic-1060-affil0002\lib\net461\Coscine.Database.T4.dll</HintPath> </Reference> <Reference Include="Coscine.Logging, Version=1.2.0.0, Culture=neutral, PublicKeyToken=e1ed402bc3f6525e, processorArchitecture=MSIL"> <HintPath>..\packages\Coscine.Logging.1.2.0\lib\net461\Coscine.Logging.dll</HintPath> </Reference> + <Reference Include="Coscine.Metadata, Version=1.3.2.0, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\packages\Coscine.Metadata.1.3.2\lib\net461\Coscine.Metadata.dll</HintPath> + </Reference> <Reference Include="Coscine.ProxyApi, Version=1.2.1.0, Culture=neutral, processorArchitecture=MSIL"> <HintPath>..\packages\Coscine.ProxyApi.1.2.1\lib\net461\Coscine.ProxyApi.dll</HintPath> </Reference> + <Reference Include="dotNetRDF, Version=2.5.0.0, Culture=neutral, PublicKeyToken=6055ffe4c97cc780, processorArchitecture=MSIL"> + <HintPath>..\packages\dotNetRDF.2.5.0\lib\net40\dotNetRDF.dll</HintPath> + </Reference> + <Reference Include="dotNetRDF.Data.Virtuoso, Version=2.5.0.0, Culture=neutral, PublicKeyToken=6055ffe4c97cc780, processorArchitecture=MSIL"> + <HintPath>..\packages\dotNetRDF.Data.Virtuoso.2.5.0\lib\net40\dotNetRDF.Data.Virtuoso.dll</HintPath> + </Reference> <Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> <HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath> </Reference> <Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> <HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll</HintPath> </Reference> - <Reference Include="HtmlAgilityPack, Version=1.8.2.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL"> - <HintPath>..\packages\HtmlAgilityPack.1.8.2\lib\Net45\HtmlAgilityPack.dll</HintPath> + <Reference Include="HtmlAgilityPack, Version=1.11.17.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL"> + <HintPath>..\packages\HtmlAgilityPack.1.11.17\lib\Net45\HtmlAgilityPack.dll</HintPath> </Reference> <Reference Include="linq2db, Version=3.1.1.0, Culture=neutral, PublicKeyToken=e41013125f9e410a, processorArchitecture=MSIL"> <HintPath>..\packages\linq2db.3.1.1\lib\net46\linq2db.dll</HintPath> diff --git a/src/Project/packages.config b/src/Project/packages.config index a886452ddeb57d648fdd88b21d5e4f684a10128f..84d9c4badf8d3f93510961aa78278e9e0beef176 100644 --- a/src/Project/packages.config +++ b/src/Project/packages.config @@ -7,11 +7,14 @@ <package id="Coscine.Action" version="1.15.1" targetFramework="net472" /> <package id="Coscine.ApiCommons" version="1.9.1" targetFramework="net472" /> <package id="Coscine.Configuration" version="1.5.0" targetFramework="net472" /> - <package id="Coscine.Database" version="1.24.0" targetFramework="net472" /> + <package id="Coscine.Database" version="1.25.0-topic-1060-affil0002" targetFramework="net472" /> <package id="Coscine.Logging" version="1.2.0" targetFramework="net472" /> + <package id="Coscine.Metadata" version="1.3.2" targetFramework="net472" /> <package id="Coscine.ProxyApi" version="1.2.1" targetFramework="net472" /> + <package id="dotNetRDF" version="2.5.0" targetFramework="net472" /> + <package id="dotNetRDF.Data.Virtuoso" version="2.5.0" targetFramework="net472" /> <package id="EntityFramework" version="6.4.4" targetFramework="net472" /> - <package id="HtmlAgilityPack" version="1.8.2" targetFramework="net472" /> + <package id="HtmlAgilityPack" version="1.11.17" targetFramework="net472" /> <package id="linq2db" version="3.1.1" targetFramework="net472" /> <package id="linq2db.SqlServer" version="2.6.4" targetFramework="net472" /> <package id="linq2db.t4models" version="2.6.4" targetFramework="net472" />