diff --git a/src/Project.sln b/src/Project.sln index 9ca995957837dec82b0f967591d4a59dc55ab48f..fd1c0cab4653b543e9482c36f00e8ecd06eb68bb 100644 --- a/src/Project.sln +++ b/src/Project.sln @@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.28803.156 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Project", "Project\Project.csproj", "{16C4EBA5-BA87-45EC-AE1A-E8569A897959}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Project", "Project\Project.csproj", "{16C4EBA5-BA87-45EC-AE1A-E8569A897959}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Project.Tests", "Project.Tests\Project.Tests.csproj", "{EEE96892-A211-44EE-B2B8-11FAB31F2E26}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Project.Tests", "Project.Tests\Project.Tests.csproj", "{EEE96892-A211-44EE-B2B8-11FAB31F2E26}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/src/Project/Controllers/ProjectController.cs b/src/Project/Controllers/ProjectController.cs index ec164257614ee01af11befac949d5376851a63b7..d557f6cf43494e46c35b18fd8aad1625122f1052 100644 --- a/src/Project/Controllers/ProjectController.cs +++ b/src/Project/Controllers/ProjectController.cs @@ -45,6 +45,9 @@ namespace Coscine.Api.Project.Controllers private readonly RoleModel _roleModel; private readonly UserModel _userModel; private readonly int _maxAvailable = 100; + private readonly string _userUrlPrefix = "https://purl.org/coscine/users"; + private readonly Uri _orgPrefixUrl = new Uri("http://www.w3.org/ns/org#"); + private readonly RdfStoreConnector _rdfStoreConnector; /// <summary> /// ProjectController constructor @@ -63,6 +66,7 @@ namespace Coscine.Api.Project.Controllers _projectQuotaModel = new ProjectQuotaModel(); _coscineLogger = new CoscineLogger(logger); _visibilityModel = new VisibilityModel(); + _rdfStoreConnector = new RdfStoreConnector(Program.Configuration.GetString("coscine/local/virtuoso/additional/url")); _invitationModel = new InvitationModel(); _roleModel = new RoleModel(); _userModel = new UserModel(); @@ -545,7 +549,6 @@ 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 != new Guid() @@ -554,7 +557,7 @@ namespace Coscine.Api.Project.Controllers return Unauthorized("User is not allowed to create SubProjects."); } - var project = _projectModel.StoreFromObject(projectObject, user, isRWTHMember); + var project = _projectModel.StoreFromObject(projectObject, user, _rdfStoreConnector.GetQuotaDefault(user.Id.ToString())); if (projectObject.ParentId != new Guid() // for now, only an owner can add subprojects to projects @@ -768,28 +771,7 @@ namespace Coscine.Api.Project.Controllers return false; } } - - /// <summary> - /// Checks if the given user is a member of the RWTH - /// </summary> - /// <param name="user">User object</param> - /// <returns>True, if member of RWTH or false, if not a member of RWTH</returns> - private bool IsRWTHMember(User user) - { - var externalIds = new ExternalIdModel().GetAllWhere((externalId) => externalId.UserId == user.Id); - if (!externalIds.Any()) - { - return false; - } - var externalIdList = new List<string>(); - - foreach (var externalId in externalIds) - { - externalIdList.Add(externalId.ExternalId1); - } - return new RdfStoreConnector(Program.Configuration.GetStringAndWait("coscine/local/virtuoso/additional/url")).GetTriples(new Uri("https://ror.org/04xfq0f34"), null, null, 1, externalIdList).Any(); - } - + private void LogAnalyticsViewHome(List<string> projectIds) { _coscineLogger.AnalyticsLog(