Skip to content
Snippets Groups Projects

Product/1414 fh privileges

Merged L. Ellenbeck requested to merge Product/1414-fhPrivileges into Sprint/2021-08
2 files
+ 8
26
Compare changes
  • Side-by-side
  • Inline

Files

@@ -45,6 +45,9 @@ namespace Coscine.Api.Project.Controllers
@@ -45,6 +45,9 @@ namespace Coscine.Api.Project.Controllers
private readonly RoleModel _roleModel;
private readonly RoleModel _roleModel;
private readonly UserModel _userModel;
private readonly UserModel _userModel;
private readonly int _maxAvailable = 100;
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>
/// <summary>
/// ProjectController constructor
/// ProjectController constructor
@@ -63,6 +66,7 @@ namespace Coscine.Api.Project.Controllers
@@ -63,6 +66,7 @@ namespace Coscine.Api.Project.Controllers
_projectQuotaModel = new ProjectQuotaModel();
_projectQuotaModel = new ProjectQuotaModel();
_coscineLogger = new CoscineLogger(logger);
_coscineLogger = new CoscineLogger(logger);
_visibilityModel = new VisibilityModel();
_visibilityModel = new VisibilityModel();
 
_rdfStoreConnector = new RdfStoreConnector(Program.Configuration.GetString("coscine/local/virtuoso/additional/url"));
_invitationModel = new InvitationModel();
_invitationModel = new InvitationModel();
_roleModel = new RoleModel();
_roleModel = new RoleModel();
_userModel = new UserModel();
_userModel = new UserModel();
@@ -545,7 +549,6 @@ namespace Coscine.Api.Project.Controllers
@@ -545,7 +549,6 @@ namespace Coscine.Api.Project.Controllers
public IActionResult Store()
public IActionResult Store()
{
{
var user = _authenticator.GetUser();
var user = _authenticator.GetUser();
var isRWTHMember = IsRWTHMember(user);
var projectObject = ObjectFactory<ProjectObject>.DeserializeFromStream(Request.Body);
var projectObject = ObjectFactory<ProjectObject>.DeserializeFromStream(Request.Body);
if (projectObject?.ParentId != new Guid()
if (projectObject?.ParentId != new Guid()
@@ -554,7 +557,7 @@ namespace Coscine.Api.Project.Controllers
@@ -554,7 +557,7 @@ namespace Coscine.Api.Project.Controllers
return Unauthorized("User is not allowed to create SubProjects.");
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()
if (projectObject.ParentId != new Guid()
// for now, only an owner can add subprojects to projects
// for now, only an owner can add subprojects to projects
@@ -768,28 +771,7 @@ namespace Coscine.Api.Project.Controllers
@@ -768,28 +771,7 @@ namespace Coscine.Api.Project.Controllers
return false;
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)
private void LogAnalyticsViewHome(List<string> projectIds)
{
{
_coscineLogger.AnalyticsLog(
_coscineLogger.AnalyticsLog(
Loading