Skip to content
Snippets Groups Projects

Release: Sprint/2022 19 :robot:

Merged Petar Hristov requested to merge dev into master
13 files
+ 171
162
Compare changes
  • Side-by-side
  • Inline
Files
13
using Coscine.Api.STS.Models;
using Coscine.Api.STS.Data;
using Microsoft.AspNetCore.Mvc;
using Coscine.Api.STS.Models;
using System.Threading.Tasks;
using Coscine.Api.STS.Utils;
using Coscine.Api.STS.Utils;
using Coscine.Api.STS.Data;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity;
using System;
using Microsoft.AspNetCore.Mvc;
using System.Linq;
using System.Linq;
using Newtonsoft.Json;
using System.Threading.Tasks;
namespace Coscine.Api.STS.Controllers
namespace Coscine.Api.STS.Controllers
{
{
@@ -19,18 +17,24 @@ namespace Coscine.Api.STS.Controllers
@@ -19,18 +17,24 @@ namespace Coscine.Api.STS.Controllers
_signInManager = signInManager;
_signInManager = signInManager;
}
}
[Route("[controller]/login")]
/// <summary>
public ActionResult Login(string returnUrl)
/// Return relevant URLs for logging the user in
 
/// </summary>
 
/// <returns>Return relevant URLs for logging the user in</returns>
 
[HttpGet("[controller]/urls/login")]
 
public ActionResult<LoginUrls> GetLoginUrls()
{
{
ViewBag.ReturnUrl = UrlGenerator.ExtendReturnUrl(returnUrl, Request);
return new LoginUrls
ViewBag.ORCiDUrl = ORCiDHandler.GetORCiDOAuthUrl() + UrlGenerator.ORCiDRedirectUrl();
{
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
OrcidUrl = ORCiDHandler.GetORCiDOAuthUrl() + UrlGenerator.ORCiDRedirectUrl(),
ViewBag.AppJs = enc.GetString(Program.Configuration.GetAndWait("coscine/apps/login/appjs"));
IdentityProviders = Startup.CurrentSaml2Options?.IdentityProviders.KnownIdentityProviders.Select((idp) => idp.EntityId)
ViewBag.IdentityProviders = JsonConvert.SerializeObject(Startup.CurrentSaml2Options?.
};
IdentityProviders.KnownIdentityProviders.Select((idp) => idp.EntityId));
return View();
}
}
 
/// <summary>
 
/// Route for logging the user out of Coscine
 
/// </summary>
 
/// <returns>Redirects the user back to the login page</returns>
[Route("[controller]/logout")]
[Route("[controller]/logout")]
public async Task<ActionResult> Logout()
public async Task<ActionResult> Logout()
{
{
@@ -47,13 +51,14 @@ namespace Coscine.Api.STS.Controllers
@@ -47,13 +51,14 @@ namespace Coscine.Api.STS.Controllers
}
}
}
}
ViewBag.LoginUrl = UrlGenerator.GetLoginUrl(Request) + "&logout=true";
ViewBag.LoginUrl = UrlGenerator.GetLoginUrl(Request) + "?logout=true";
 
if (loggedInWithShibboleth)
if (loggedInWithShibboleth)
{
{
ViewBag.LoginUrl += "&loggedInWithShibboleth=true";
ViewBag.LoginUrl += "&loggedInWithShibboleth=true";
}
}
return View();
return Redirect(ViewBag.LoginUrl);
}
}
}
}
}
}
Loading