92 lines
3.2 KiB
Plaintext
92 lines
3.2 KiB
Plaintext
@namespace Oqtane.Themes.Controls
|
|
@using System.Net
|
|
@inherits ThemeControlBase
|
|
@inject ISettingService SettingService
|
|
@inject IStringLocalizer<UserProfile> Localizer
|
|
@inject NavigationManager NavigationManager
|
|
|
|
<span class="app-profile">
|
|
@if (PageState.User != null)
|
|
{
|
|
<a href="@_profileurl" class="@CssClass">@PageState.User.Username</a>
|
|
}
|
|
else
|
|
{
|
|
@if (ShowRegister && PageState.Site.AllowRegistration)
|
|
{
|
|
<a href="@_registerurl" class="@CssClass">@Localizer["Register"]</a>
|
|
}
|
|
}
|
|
</span>
|
|
|
|
@code {
|
|
|
|
[Parameter]
|
|
public bool ShowRegister { get; set; }
|
|
|
|
[Parameter]
|
|
public string CssClass { get; set; } = "btn btn-primary";
|
|
|
|
[Parameter]
|
|
public string RegisterUrl { get; set; } // optional parameter to specify a custom registration url
|
|
|
|
[Parameter]
|
|
public string ProfileUrl { get; set; } // optional parameter to specify a custom user profile url
|
|
|
|
private string _registerurl = "";
|
|
private string _profileurl = "";
|
|
private string _returnurl = "";
|
|
|
|
protected override void OnParametersSet()
|
|
{
|
|
if (!PageState.QueryString.ContainsKey("returnurl"))
|
|
{
|
|
// remember current url
|
|
_returnurl = WebUtility.UrlEncode(PageState.Route.PathAndQuery);
|
|
}
|
|
else
|
|
{
|
|
// use existing value
|
|
_returnurl = PageState.QueryString["returnurl"];
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(RegisterUrl))
|
|
{
|
|
_registerurl = RegisterUrl;
|
|
_registerurl += (!_registerurl.Contains("?") ? "?" : "&") + "returnurl=" + (_registerurl.Contains("://") ? WebUtility.UrlEncode(PageState.Route.RootUrl) + _returnurl : _returnurl);
|
|
}
|
|
else
|
|
{
|
|
if (!string.IsNullOrEmpty(SettingService.GetSetting(PageState.Site.Settings, "LoginOptions:RegisterUrl", "")))
|
|
{
|
|
_registerurl = SettingService.GetSetting(PageState.Site.Settings, "LoginOptions:RegisterUrl", "");
|
|
_registerurl += (!_registerurl.Contains("?") ? "?" : "&") + "returnurl=" + (_registerurl.Contains("://") ? WebUtility.UrlEncode(PageState.Route.RootUrl) + _returnurl : _returnurl);
|
|
}
|
|
else
|
|
{
|
|
_registerurl = NavigateUrl("register", "returnurl=" + _returnurl);
|
|
}
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(ProfileUrl))
|
|
{
|
|
_profileurl = ProfileUrl;
|
|
_profileurl += (!_profileurl.Contains("?") ? "?" : "&") + "returnurl=" + (_profileurl.Contains("://") ? WebUtility.UrlEncode(PageState.Route.RootUrl) + _returnurl : _returnurl);
|
|
}
|
|
else
|
|
{
|
|
if (!string.IsNullOrEmpty(SettingService.GetSetting(PageState.Site.Settings, "LoginOptions:ProfileUrl", "")))
|
|
{
|
|
_profileurl = SettingService.GetSetting(PageState.Site.Settings, "LoginOptions:ProfileUrl", "");
|
|
_profileurl += (!_profileurl.Contains("?") ? "?" : "&") + "returnurl=" + (_profileurl.Contains("://") ? WebUtility.UrlEncode(PageState.Route.RootUrl) + _returnurl : _returnurl);
|
|
}
|
|
else
|
|
{
|
|
_profileurl = NavigateUrl("profile", "returnurl=" + _returnurl);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|