Former-commit-id: 4009de1bc558298285e7a178b8c60d20845fdcd2
TangShanKaiPing
wanggang 5 years ago
parent 1b9b9d6499
commit 40cc170bf2

@ -4,7 +4,7 @@ namespace Infrastructure.Application
{
public class PagedListModel<T> : PagedList<T>
{
[Display(Name = "已删除")]
public bool IsDeleted { get; set; }
//[Display(Name = "已删除")]
//public bool IsDeleted { get; set; }
}
}

@ -1,2 +1,5 @@
@model string
<a class="fancybox" href="@Url.Content("~"+Model)"><img src="@Url.Content("~"+Model)" /></a>
@{
var src = Model as string ?? "/images/empty.png";
}
<a class="fancybox" href="@Url.Content("~"+src)"><img src="@Url.Content("~"+src)" /></a>

@ -34,10 +34,10 @@ namespace Infrastructure.Web.Mvc
throw new ArgumentNullException(nameof(model));
}
var query = this.Repo.ReadOnlyTable();
if (model is ISoftDeleteEntity && !model.IsDeleted)
{
query = query.Where(o => o.IsDeleted == null);
}
//if (model is ISoftDeleteEntity && !model.IsDeleted)
//{
// query = query.Where(o => o.IsDeleted == null);
//}
query = this.Include(query);
query = this.Query(model, query);
model.TotalCount = query.Count();

@ -35,10 +35,10 @@ namespace Infrastructure.Web.Mvc
throw new ArgumentNullException(nameof(model));
}
var query = this.Repo.ReadOnlyTable();
if (model is ISoftDeleteEntity && !model.IsDeleted)
{
query = query.Where(o => o.IsDeleted == null);
}
//if (model is ISoftDeleteEntity && !model.IsDeleted)
//{
// query = query.Where(o => o.IsDeleted == null);
//}
query = this.Include(query);
query = this.Query(model, query);
model.TotalCount = query.Count();

@ -186,6 +186,20 @@ namespace IoT.Shared.Areas.Admin.Controlls
return new JsonResult(this.GetDeviceSelectList(parentId, selected));
}
public SelectList GetDeviceSelectList2(Guid parentId, Guid? selected = null)
{
var list = this._deviceRepo.ReadOnlyTable()
.Where(o => o.NodeId == parentId && o.Product.Apis.Count() > 0)
.Select(o => new { o.Id, Name = $"{o.DisplayName}({o.Number})" })
.ToList();
return new SelectList(list, "Id", "Name", selected);
}
public JsonResult GetDeviceJson2(Guid parentId, Guid? selected)
{
return new JsonResult(this.GetDeviceSelectList2(parentId, selected));
}
#endregion Device
#region Data

@ -71,7 +71,7 @@ namespace IoT.Shared.Areas.Admin.Controlls
{
this.ToDisplayModel(entity, model);
ViewData.SelectList(o => model.NodeId, () => this._ajax.GetNodeSelectList(model.NodeId));
ViewData.SelectList(o => model.DeviceId, () => this._ajax.GetDeviceSelectList(model.NodeId.Value, model.DeviceId), model.NodeId.HasValue);
ViewData.SelectList(o => model.DeviceId, () => this._ajax.GetDeviceSelectList2(model.NodeId.Value, model.DeviceId), model.NodeId.HasValue);
ViewData.SelectList(o => model.ApiId, () => this._ajax.GetApiSelectList(model.DeviceId.Value, model.ApiId), model.DeviceId.HasValue);
if (model.ApiId.HasValue)
{

@ -3,7 +3,7 @@
$('#NodeId').change(function () {
var id = $(this).find(':selected').val();
update('@Url.Action("GetSceneJson", "Ajax")', id, "#SceneId");
update('@Url.Action("GetDeviceJson", "Ajax")', id, "#DeviceId");
update('@Url.Action("GetDeviceJson2", "Ajax")', id, "#DeviceId");
update(null, null, "#ApiId");
$('#ajax').html('');

@ -1,28 +1,93 @@
<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="nav-icon false">
<li class="nav-item"><a class="nav-link @GetClass("Home")" href="@Url.Action("Index","Home")"><i class="nav-icon fas fa-tachometer-alt"></i><p>首页</p></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Setting")" href="@Url.Action("Index","Setting")"><i class="nav-icon ion ion-md-hammer"></i><p>设置</p></a></li>
<li class="nav-item"><a class="nav-link @GetClass("User")" href="@Url.Action("Index","User")"><i class=" nav-icon far fa-user"></i><p>用户管理</p></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Role")" href="@Url.Action("Index","Role")"><i class="nav-icon ion ion-md-glasses"></i><p>角色管理</p></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Permission")" href="@Url.Action("Index","Permission")"><i class="nav-icon fas fa-key"></i><p>权限管理</p></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Category")" href="@Url.Action("Index","Category")"><i class="nav-icon fa fa-cubes"></i><span>产品分类管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Product")" href="@Url.Action("Index","Product")"><i class="nav-icon fa fa-leaf"></i><span>产品管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Api")" href="@Url.Action("Index","Api")"><i class="nav-icon fa fa-plug"></i><span>接口管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Parameter")" href="@Url.Action("Index","Parameter")"><i class="nav-icon far fa-circle"></i><span>参数管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Node")" href="@Url.Action("Index","Node")"><i class="nav-icon fa fa-home"></i><span>节点管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("NodeCategory")" href="@Url.Action("Index","NodeCategory")"><i class="nav-icon fa fa-cubes"></i><span>节点分类管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Organ")" href="@Url.Action("Index","Organ")"><i class="nav-icon fa fa-home"></i><span>节点机构管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Device")" href="@Url.Action("Index","Device")"><i class="nav-icon fa fa-tv"></i><span>设备管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Data")" href="@Url.Action("Index","Data")"><i class="nav-icon fa fa-database"></i><span>数据管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("LiveRecord")" href="@Url.Action("Index","LiveRecord")"><i class="nav-icon fa fa-camera"></i><span>回放管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Command")" href="@Url.Action("Index","Command")"><i class="nav-icon far fa-circle"></i><span>设备命令管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Scene")" href="@Url.Action("Index","Scene")"><i class="nav-icon fa fa-list-ol"></i><span>场景管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("SceneCommand")" href="@Url.Action("Index","SceneCommand")"><i class="nav-icon far fa-circle"></i><span>场景命令管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("SceneTimer")" href="@Url.Action("Index","SceneTimer")"><i class="nav-icon far fa-clock"></i><span>场景定时器管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("SceneTigger")" href="@Url.Action("Index","SceneTigger")"><i class="nav-icon fa fa-fire"></i><span>场景触发器管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("GlobalScene")" href="@Url.Action("Index","GlobalScene")"><i class="nav-icon fa fa-list-ol"></i><span>平台场景管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("GlobalSceneCommand")" href="@Url.Action("Index","GlobalSceneCommand")"><i class="nav-icon far fa-circle"></i><span>平台场景命令管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("GlobalSceneTimer")" href="@Url.Action("Index","GlobalSceneTimer")"><i class="nav-icon far fa-clock"></i><span>平台场景定时器管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("GlobalSceneTigger")" href="@Url.Action("Index","GlobalSceneTigger")"><i class="nav-icon fa fa-fire"></i><span>平台场景触发器管理</span></a></li>
@if (User.IsInRole("Read-Setting"))
{
<li class="nav-item"><a class="nav-link @GetClass("Setting")" href="@Url.Action("Index","Setting")"><i class="nav-icon ion ion-md-hammer"></i><p>设置</p></a></li>
}
@if (User.IsInRole("Read-User"))
{
<li class="nav-item"><a class="nav-link @GetClass("User")" href="@Url.Action("Index","User")"><i class=" nav-icon far fa-user"></i><p>用户管理</p></a></li>
}
@if (User.IsInRole("Read-Role"))
{
<li class="nav-item"><a class="nav-link @GetClass("Role")" href="@Url.Action("Index","Role")"><i class="nav-icon ion ion-md-glasses"></i><p>角色管理</p></a></li>
}
@if (User.IsInRole("Read-Permission"))
{
<li class="nav-item"><a class="nav-link @GetClass("Permission")" href="@Url.Action("Index","Permission")"><i class="nav-icon fas fa-key"></i><p>权限管理</p></a></li>
}
@if (User.IsInRole("Read-Product"))
{
<li class="nav-item"><a class="nav-link @GetClass("Product")" href="@Url.Action("Index","Product")"><i class="nav-icon fa fa-leaf"></i><span>产品管理</span></a></li>
}
@if (User.IsInRole("Read-Api"))
{
<li class="nav-item"><a class="nav-link @GetClass("Api")" href="@Url.Action("Index","Api")"><i class="nav-icon fa fa-plug"></i><span>接口管理</span></a></li>
}
@if (User.IsInRole("Read-Parameter"))
{
<li class="nav-item"><a class="nav-link @GetClass("Parameter")" href="@Url.Action("Index","Parameter")"><i class="nav-icon far fa-circle"></i><span>参数管理</span></a></li>
}
@if (User.IsInRole("Read-Node"))
{
<li class="nav-item"><a class="nav-link @GetClass("Node")" href="@Url.Action("Index","Node")"><i class="nav-icon fa fa-home"></i><span>节点管理</span></a></li>
}
@if (User.IsInRole("Read-NodeCategory"))
{
<li class="nav-item"><a class="nav-link @GetClass("NodeCategory")" href="@Url.Action("Index","NodeCategory")"><i class="nav-icon fa fa-cubes"></i><span>节点分类管理</span></a></li>
}
@if (User.IsInRole("Read-Organ"))
{
<li class="nav-item"><a class="nav-link @GetClass("Organ")" href="@Url.Action("Index","Organ")"><i class="nav-icon fa fa-home"></i><span>节点机构管理</span></a></li>
}
@if (User.IsInRole("Read-Device"))
{
<li class="nav-item"><a class="nav-link @GetClass("Device")" href="@Url.Action("Index","Device")"><i class="nav-icon fa fa-tv"></i><span>设备管理</span></a></li>
}
@if (User.IsInRole("Read-Data"))
{
<li class="nav-item"><a class="nav-link @GetClass("Data")" href="@Url.Action("Index","Data")"><i class="nav-icon fa fa-database"></i><span>数据管理</span></a></li>
}
@if (User.IsInRole("Read-LiveRecord"))
{
<li class="nav-item"><a class="nav-link @GetClass("LiveRecord")" href="@Url.Action("Index","LiveRecord")"><i class="nav-icon fa fa-camera"></i><span>回放管理</span></a></li>
}
@if (User.IsInRole("Read-Command"))
{
<li class="nav-item"><a class="nav-link @GetClass("Command")" href="@Url.Action("Index","Command")"><i class="nav-icon far fa-circle"></i><span>设备命令管理</span></a></li>
}
@if (User.IsInRole("Read-Scene"))
{
<li class="nav-item"><a class="nav-link @GetClass("Scene")" href="@Url.Action("Index","Scene")"><i class="nav-icon fa fa-list-ol"></i><span>场景管理</span></a></li>
}
@if (User.IsInRole("Read-SceneCommand"))
{
<li class="nav-item"><a class="nav-link @GetClass("SceneCommand")" href="@Url.Action("Index","SceneCommand")"><i class="nav-icon far fa-circle"></i><span>场景命令管理</span></a></li>
}
@if (User.IsInRole("Read-SceneTimer"))
{
<li class="nav-item"><a class="nav-link @GetClass("SceneTimer")" href="@Url.Action("Index","SceneTimer")"><i class="nav-icon far fa-clock"></i><span>场景定时器管理</span></a></li>
}
@if (User.IsInRole("Read-SceneTigger"))
{
<li class="nav-item"><a class="nav-link @GetClass("SceneTigger")" href="@Url.Action("Index","SceneTigger")"><i class="nav-icon fa fa-fire"></i><span>场景触发器管理</span></a></li>
}
@if (User.IsInRole("Read-GlobalScene"))
{
<li class="nav-item"><a class="nav-link @GetClass("GlobalScene")" href="@Url.Action("Index","GlobalScene")"><i class="nav-icon fa fa-list-ol"></i><span>平台场景管理</span></a></li>
}
@if (User.IsInRole("Read-GlobalSceneCommand"))
{
<li class="nav-item"><a class="nav-link @GetClass("GlobalSceneCommand")" href="@Url.Action("Index","GlobalSceneCommand")"><i class="nav-icon far fa-circle"></i><span>平台场景命令管理</span></a></li>
}
@if (User.IsInRole("Read-GlobalSceneTimer"))
{
<li class="nav-item"><a class="nav-link @GetClass("GlobalSceneTimer")" href="@Url.Action("Index","GlobalSceneTimer")"><i class="nav-icon far fa-clock"></i><span>平台场景定时器管理</span></a></li>
}
@if (User.IsInRole("Read-GlobalSceneTigger"))
{
<li class="nav-item"><a class="nav-link @GetClass("GlobalSceneTigger")" href="@Url.Action("Index","GlobalSceneTigger")"><i class="nav-icon fa fa-fire"></i><span>平台场景触发器管理</span></a></li>
}
</ul>
@functions{

@ -22,9 +22,7 @@ CREATE TABLE "iot_Node" (
"Number" TEXT NOT NULL,
"IsOnline" INTEGER NOT NULL,
"Image" TEXT NULL,
"Longitude" TEXT NOT NULL,
"Latitude" TEXT NOT NULL,
"Altitude" TEXT NOT NULL,
"Version" TEXT NULL,
"DisplayOrder" INTEGER NOT NULL,
"Disabled" INTEGER NOT NULL
);

@ -1,21 +1,73 @@
<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="nav-icon false">
<li class="nav-item"><a class="nav-link @GetClass("Home")" href="@Url.Action("Index","Home")"><i class="nav-icon fas fa-tachometer-alt"></i><p>首页</p></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Setting")" href="@Url.Action("Index","Setting")"><i class="nav-icon ion ion-md-hammer"></i><p>设置</p></a></li>
<li class="nav-item"><a class="nav-link @GetClass("User")" href="@Url.Action("Index","User")"><i class=" nav-icon far fa-user"></i><p>用户管理</p></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Role")" href="@Url.Action("Index","Role")"><i class="nav-icon ion ion-md-glasses"></i><p>角色管理</p></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Permission")" href="@Url.Action("Index","Permission")"><i class="nav-icon fas fa-key"></i><p>权限管理</p></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Category")" href="@Url.Action("Index","Category")"><i class="nav-icon fa fa-cubes"></i><span>分类管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Product")" href="@Url.Action("Index","Product")"><i class="nav-icon fa fa-leaf"></i><span>产品管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Api")" href="@Url.Action("Index","Api")"><i class="nav-icon fa fa-plug"></i><span>接口管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Parameter")" href="@Url.Action("Index","Parameter")"><i class="nav-icon far fa-circle"></i><span>参数管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Node")" href="@Url.Action("Index","Node")"><i class="nav-icon fa fa-home"></i><span>节点管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Device")" href="@Url.Action("Index","Device")"><i class="nav-icon fa fa-tv"></i><span>设备管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Data")" href="@Url.Action("Index","Data")"><i class="nav-icon fa fa-database"></i><span>数据管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Command")" href="@Url.Action("Index","Command")"><i class="nav-icon far fa-circle"></i><span>命令管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Scene")" href="@Url.Action("Index","Scene")"><i class="nav-icon fa fa-list-ol"></i><span>场景管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("SceneCommand")" href="@Url.Action("Index","SceneCommand")"><i class="nav-icon far fa-circle"></i><span>场景命令管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("SceneTimer")" href="@Url.Action("Index","SceneTimer")"><i class="nav-icon far fa-clock"></i><span>场景定时器管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("SceneTigger")" href="@Url.Action("Index","SceneTigger")"><i class="nav-icon fa fa-fire"></i><span>场景触发器管理</span></a></li>
@if (User.IsInRole("Read-Setting"))
{
<li class="nav-item"><a class="nav-link @GetClass("Setting")" href="@Url.Action("Index","Setting")"><i class="nav-icon ion ion-md-hammer"></i><p>设置</p></a></li>
}
@if (User.IsInRole("Read-User"))
{
<li class="nav-item"><a class="nav-link @GetClass("User")" href="@Url.Action("Index","User")"><i class=" nav-icon far fa-user"></i><p>用户管理</p></a></li>
}
@if (User.IsInRole("Read-Role"))
{
<li class="nav-item"><a class="nav-link @GetClass("Role")" href="@Url.Action("Index","Role")"><i class="nav-icon ion ion-md-glasses"></i><p>角色管理</p></a></li>
}
@if (User.IsInRole("Read-Permission"))
{
<li class="nav-item"><a class="nav-link @GetClass("Permission")" href="@Url.Action("Index","Permission")"><i class="nav-icon fas fa-key"></i><p>权限管理</p></a></li>
}
@if (User.IsInRole("Read-Product"))
{
<li class="nav-item"><a class="nav-link @GetClass("Product")" href="@Url.Action("Index","Product")"><i class="nav-icon fa fa-leaf"></i><span>产品管理</span></a></li>
}
@if (User.IsInRole("Read-Api"))
{
<li class="nav-item"><a class="nav-link @GetClass("Api")" href="@Url.Action("Index","Api")"><i class="nav-icon fa fa-plug"></i><span>接口管理</span></a></li>
}
@if (User.IsInRole("Read-Parameter"))
{
<li class="nav-item"><a class="nav-link @GetClass("Parameter")" href="@Url.Action("Index","Parameter")"><i class="nav-icon far fa-circle"></i><span>参数管理</span></a></li>
}
@if (User.IsInRole("Read-Node"))
{
<li class="nav-item"><a class="nav-link @GetClass("Node")" href="@Url.Action("Index","Node")"><i class="nav-icon fa fa-home"></i><span>节点管理</span></a></li>
}
@if (User.IsInRole("Read-NodeCategory"))
{
<li class="nav-item"><a class="nav-link @GetClass("NodeCategory")" href="@Url.Action("Index","NodeCategory")"><i class="nav-icon fa fa-cubes"></i><span>节点分类管理</span></a></li>
}
@if (User.IsInRole("Read-Organ"))
{
<li class="nav-item"><a class="nav-link @GetClass("Organ")" href="@Url.Action("Index","Organ")"><i class="nav-icon fa fa-home"></i><span>节点机构管理</span></a></li>
}
@if (User.IsInRole("Read-Device"))
{
<li class="nav-item"><a class="nav-link @GetClass("Device")" href="@Url.Action("Index","Device")"><i class="nav-icon fa fa-tv"></i><span>设备管理</span></a></li>
}
@if (User.IsInRole("Read-Data"))
{
<li class="nav-item"><a class="nav-link @GetClass("Data")" href="@Url.Action("Index","Data")"><i class="nav-icon fa fa-database"></i><span>数据管理</span></a></li>
}
@if (User.IsInRole("Read-Command"))
{
<li class="nav-item"><a class="nav-link @GetClass("Command")" href="@Url.Action("Index","Command")"><i class="nav-icon far fa-circle"></i><span>设备命令管理</span></a></li>
}
@if (User.IsInRole("Read-Scene"))
{
<li class="nav-item"><a class="nav-link @GetClass("Scene")" href="@Url.Action("Index","Scene")"><i class="nav-icon fa fa-list-ol"></i><span>场景管理</span></a></li>
}
@if (User.IsInRole("Read-SceneCommand"))
{
<li class="nav-item"><a class="nav-link @GetClass("SceneCommand")" href="@Url.Action("Index","SceneCommand")"><i class="nav-icon far fa-circle"></i><span>场景命令管理</span></a></li>
}
@if (User.IsInRole("Read-SceneTimer"))
{
<li class="nav-item"><a class="nav-link @GetClass("SceneTimer")" href="@Url.Action("Index","SceneTimer")"><i class="nav-icon far fa-clock"></i><span>场景定时器管理</span></a></li>
}
@if (User.IsInRole("Read-SceneTigger"))
{
<li class="nav-item"><a class="nav-link @GetClass("SceneTigger")" href="@Url.Action("Index","SceneTigger")"><i class="nav-icon fa fa-fire"></i><span>场景触发器管理</span></a></li>
}
</ul>
@functions{
public string GetClass(params string[] controllers)

@ -13,9 +13,7 @@ CREATE TABLE "iot_Node" (
"Number" TEXT NOT NULL,
"IsOnline" INTEGER NOT NULL,
"Image" TEXT NULL,
"Longitude" TEXT NOT NULL,
"Latitude" TEXT NOT NULL,
"Altitude" TEXT NOT NULL,
"Version" TEXT NULL,
"DisplayOrder" INTEGER NOT NULL,
"Disabled" INTEGER NOT NULL
);

@ -2,6 +2,7 @@ using Application.Domain.Entities;
using Infrastructure.Application;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace Application.Models
@ -15,6 +16,7 @@ namespace Application.Models
[Display(Name = "用户名")]
public string UserName { get; set; }
[Description("编辑时不修改密码请保持为空")]
[StringLength(100, MinimumLength = 6, ErrorMessage = "密码长度范围为{2}-{1}")]
[DataType(DataType.Password)]
[Display(Name = "登录密码")]
@ -23,6 +25,7 @@ namespace Application.Models
[DataType(DataType.EmailAddress)]
[RegularExpression(@"^\w+@\w+\.\w+$", ErrorMessage = "邮箱格式错误")]
[Display(Name = "邮箱")]
[Required(ErrorMessage = nameof(RequiredAttribute))]
public string Email { get; set; }
[RegularExpression(@"^\d{11}$", ErrorMessage = "手机号格式错误")]
@ -38,10 +41,6 @@ namespace Application.Models
[DataType(DataType.ImageUrl)]
public string Avatar { get; set; }
[Display(Name = "面部图像")]
[DataType(DataType.ImageUrl)]
public string FaceImage { get; set; }
[Display(Name = "性别")]
[UIHint("RadioButtonList")]
[Required(ErrorMessage = nameof(RequiredAttribute))]
@ -54,13 +53,6 @@ namespace Application.Models
[Display(Name = "登录锁定")]
public bool LockoutEnabled { get; set; }
[Display(Name = "解锁时间")]
[DataType(DataType.DateTime)]
public DateTimeOffset? LockoutEnd { get; set; }
[Display(Name = "登录失败")]
public int AccessFailedCount { get; set; }
[DataType("MultiSelectList")]
[Display(Name = "角色")]
public List<Guid> Roles { get; set; } = new List<Guid>();

@ -1,10 +1,25 @@
<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false">
<li class="nav-item"><a class="nav-link @GetClass("Home")" href="@Url.Action("Index","Home")"><i class="nav-icon fas fa-tachometer-alt"></i><p>首页</p></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Setting")" href="@Url.Action("Index","Setting")"><i class="nav-icon ion ion-md-hammer"></i><p>网站配置</p></a></li>
<li class="nav-item"><a class="nav-link @GetClass("User")" href="@Url.Action("Index","User")"><i class=" nav-icon far fa-user"></i><p>用户管理</p></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Role")" href="@Url.Action("Index","Role")"><i class="nav-icon ion ion-md-glasses"></i><p>角色管理</p></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Permission")" href="@Url.Action("Index","Permission")"><i class="nav-icon fas fa-key"></i><p>权限管理</p></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Site")" href="@Url.Action("Index","Site")"><i class="nav-icon ion ion-md-browsers"></i><p>应用管理</p></a></li>
@if (User.IsInRole("Read-Setting"))
{
<li class="nav-item"><a class="nav-link @GetClass("Setting")" href="@Url.Action("Index","Setting")"><i class="nav-icon ion ion-md-hammer"></i><p>设置</p></a></li>
}
@if (User.IsInRole("Read-User"))
{
<li class="nav-item"><a class="nav-link @GetClass("User")" href="@Url.Action("Index","User")"><i class=" nav-icon far fa-user"></i><p>用户管理</p></a></li>
}
@if (User.IsInRole("Read-Role"))
{
<li class="nav-item"><a class="nav-link @GetClass("Role")" href="@Url.Action("Index","Role")"><i class="nav-icon ion ion-md-glasses"></i><p>角色管理</p></a></li>
}
@if (User.IsInRole("Read-Permission"))
{
<li class="nav-item"><a class="nav-link @GetClass("Permission")" href="@Url.Action("Index","Permission")"><i class="nav-icon fas fa-key"></i><p>权限管理</p></a></li>
}
@if (User.IsInRole("Read-Site"))
{
<li class="nav-item"><a class="nav-link @GetClass("Site")" href="@Url.Action("Index","Site")"><i class="nav-icon ion ion-md-browsers"></i><p>应用管理</p></a></li>
}
</ul>
@functions{
public string GetClass(params string[] controllers)

Loading…
Cancel
Save