1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- using CZFW.Framework.Model.ViewModel;
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Linq;
- using Microsoft.AspNetCore.Http;
- using CZFW.Framework.Model.Entity;
- namespace CZFW.Framework.Model
- {
- public class OperatorModel
- {
- public int UserId { get; set; }
- public string DisplayName { get; set; }
- public string Avatar { get; set; }
- public string UserName { get; set; }
- public bool IsSystem { get; set; }
- public bool IsSiteAdmin { get; set; }
- /// <summary>
- /// 所属企业Id, 在用户为客户企业超级管理员或者普通用户时有效。
- /// </summary>
- public int SiteId { get; set; }
- public IList<PrivilegeModel> Privileges { get; set; } = new List<PrivilegeModel>();
- public IList<CustomerUserPrivilegeModel> CustomerUserPriveleges { get; set; }
- public bool HasAccess(string url)
- {
- var uri = new PathString(url);
- return HasAccess(uri);
- }
- public bool HasAccess(PathString path)
- {
- var url = path.ToString().Trim();
- var res = Privileges.Count(x => x.Url == url);
- return res > 0;
- }
- public bool HasAccess(int siteId, int dataId, int dataLevel)
- {
- if (IsSystem) return true;
- if (IsSiteAdmin && SiteId == siteId) return true;
- if (dataId == 0)
- return CustomerUserPriveleges.Any(x => x.EntId == SiteId);
- var count = CustomerUserPriveleges.Any(x => x.EntId == siteId && x.DataLevel == dataLevel && x.DataId == dataId);
- return count;
- }
- }
- }
|