feat: 添加自动锁屏功能

This commit is contained in:
zhangpeihang 2022-01-14 10:38:11 +08:00
parent fcaa0244c2
commit 86640d3b64
4 changed files with 51 additions and 0 deletions

View File

@ -305,4 +305,20 @@ class DictService : IDict
}
public bool SaveAppOAuthLogin(bool value) => SaveDict(new Dict { Category = "网站设置", Name = "OAuth 认证登录", Code = value ? "1" : "0" });
public bool GetAutoLockScreen()
{
var dicts = GetAll();
return dicts.FirstOrDefault(s => s.Category == "网站设置" && s.Name == "自动锁屏" && s.Define == EnumDictDefine.System)?.Code == "1" ? true : false;
}
public bool SaveAutoLockScreen(bool value) => SaveDict(new Dict { Category = "网站设置", Name = "自动锁屏", Code = value ? "1" : "0" });
public string? GetAutoLockScreenInterval()
{
var dicts = GetAll();
return dicts.FirstOrDefault(s => s.Category == "网站设置" && s.Name == "自动锁屏时长" && s.Define == EnumDictDefine.System)?.Code;
}
public bool SaveAutoLockScreenInterval(string value) => SaveDict(new Dict { Category = "网站设置", Name = "自动锁屏时长", Code = value });
}

View File

@ -240,4 +240,28 @@ public interface IDict
/// </summary>
/// <returns></returns>
bool SaveAppOAuthLogin(bool value);
/// <summary>
/// 是否开启自动锁屏设置
/// </summary>
/// <returns></returns>
bool GetAutoLockScreen();
/// <summary>
/// 保存自动锁屏设置
/// </summary>
/// <returns></returns>
bool SaveAutoLockScreen(bool value);
/// <summary>
/// 获得自动锁屏间隔时间
/// </summary>
/// <returns></returns>
string? GetAutoLockScreenInterval();
/// <summary>
/// 保存自动锁屏间隔时间
/// </summary>
/// <returns></returns>
bool SaveAutoLockScreenInterval(string value);
}

View File

@ -41,3 +41,8 @@
<Redirect />
</NotAuthorized>
</Layout>
@if (Lock)
{
<AutoRedirect LogoutUrl="/Account/Logout" Interval="@LockInterval"></AutoRedirect>
}

View File

@ -50,6 +50,10 @@ namespace BootstrapAdmin.Web.Shared
private string? UserName { get; set; }
private bool Lock { get; set; }
private string? LockInterval { get; set; }
[NotNull]
private string? Icon { get; set; }
@ -77,6 +81,8 @@ namespace BootstrapAdmin.Web.Shared
Footer = DictsService.GetWebFooter();
string GetIcon(string icon) => icon.Contains("://", StringComparison.OrdinalIgnoreCase) ? icon : string.Format("{0}{1}", DictsService.GetIconFolderPath(), icon);
Lock = DictsService.GetAutoLockScreen();
LockInterval = DictsService.GetAutoLockScreenInterval();
}
private Task<bool> OnAuthorizing(string url) => SecurityService.AuhorizingNavigation(Context.UserName, url);