/// <summary> /// 由于用户姓名是可变的因此优先从缓存中获取 /// </summary> /// <param name="claimType"></param> /// <returns></returns> private string GetClaimUserNameValue(string claimType) { if (base.UserId != null) { var user = _cacheManagerExtens.GetUserInfoCache(base.UserId.Value); return(user.UserNameCn); } return(GetClaimValue(claimType)); }
public object GetUserPermission() { List <RoleToPermissionCache> resData = new List <RoleToPermissionCache>(); List <string> roleList = AbpSession.UserRoleList; foreach (var item in roleList) { //获取的是动作按钮授权 var permissionList = _cacheManagerExtens.GetRoleToPermissionCache(Convert.ToInt64(item)); //.Where(w => !string.IsNullOrEmpty(w.PermissionName)); foreach (var pitem in permissionList.ToList()) { var data = resData.Where(w => w.MenuId == pitem.MenuId && w.HandleName == pitem.HandleName && w.PermissionName == pitem.PermissionName ); if (!data.Any()) { resData.Add(pitem); } } } List <MenuActionPermissionCache> menuActionPermissionList = _cacheManagerExtens.GetMenuActionPermissionCache(); var permissionData = menuActionPermissionList.Where(w => w.IsActive == true && w.RequiresAuthModel != "3"); foreach (var item in permissionData) { var data = resData.Where(w => (w.MenuId == item.MenuId && w.HandleName == item.MenuName && item.IsMenu && w.PermissionName == item.PermissionName) || (w.MenuId == item.MenuId && w.HandleName == item.ActionName && !item.IsMenu && w.PermissionName == item.PermissionName) ); if (!data.Any()) { resData.Add(new RoleToPermissionCache() { MenuName = item.MenuName, HandleName = item.IsMenu? item.MenuName: item.ActionName }); } } var userData = _cacheManagerExtens.GetUserInfoCache(AbpSession.UserId.Value); return(new { User = new { UserNameCn = AbpSession.UserNameCn, UserCode = AbpSession.UserCode, IsAdmin = AbpSession.IsAdmin, ImageUrl = userData.ImageUrl, OrgCode = userData.OrgCode }, Permission = resData }); }
/// <summary> /// 发送点对点消息 /// </summary> /// <param name="recipientId"></param> /// <param name="chatDetailed"></param> /// <param name="severity"></param> /// <returns></returns> public virtual async Task SendChatAsync(long recipientId, string chatDetailed, NotificationSeverity severity = NotificationSeverity.Info) { UserIdentifier userIdentifier = new UserIdentifier(AbpSessionExtens.TenantId, recipientId); //用户不在线直接返回 var onlineClients = _onlineClientManager.GetAllByUserId(userIdentifier); if (onlineClients == null || onlineClients.Count == 0) { return; } UserInfo userModel = _cacheManagerExtens.GetUserInfoCache(recipientId); string promptContent = "您有一条来自[" + userModel.UserNameCn + "]的消息"; string promptTitle = "您有一条新消息"; FrameNotificationData frameNotificationData = new FrameNotificationData(promptContent); frameNotificationData.NotificationType = "chat"; //推送的类型用于前端JS判断 frameNotificationData.Title = promptTitle; frameNotificationData.NotificationDetailed = chatDetailed; frameNotificationData.SendId = AbpSessionExtens.UserId.Value; TenantNotification tenantNotification = new TenantNotification() { Id = Guid.NewGuid(), Data = frameNotificationData, Severity = severity, NotificationName = "站内短信", TenantId = userIdentifier.TenantId, CreationTime = DateTime.Now }; List <UserNotification> userNotification = new List <UserNotification>(); userNotification.Add( new UserNotification { Id = Guid.NewGuid(), Notification = tenantNotification, UserId = userIdentifier.UserId, State = UserNotificationState.Unread, TenantId = userIdentifier.TenantId }); await _realTimeNotifier.SendNotificationsAsync(userNotification.ToArray()); }
/// <summary> /// 获取指定用户的授权 /// </summary> /// <param name="user"></param> /// <param name="permissionName"></param> /// <returns></returns> //[UnitOfWork] public async Task <bool> IsGrantedAsync(UserIdentifier user, string permissionName) { UserInfo userInfo = _cacheManagerExtens.GetUserInfoCache(user.UserId); return(await IsValidationGrantedAsync(userInfo, permissionName)); }
public object GetUserPermission() { List <RoleToPermissionCache> resData = new List <RoleToPermissionCache>(); //通过session获取当前登录用户角色集合 List <string> roleList = AbpSession.UserRoleList; #region 获取菜单以及动作按钮授权 foreach (var item in roleList) { var permissionList = _cacheManagerExtens.GetRoleToPermissionCache(Convert.ToInt64(item)); //.Where(w => !string.IsNullOrEmpty(w.PermissionName)); foreach (var pitem in permissionList.ToList()) { //去重复 var data = resData.Where(w => w.MenuId == pitem.MenuId && w.HandleName == pitem.HandleName && w.PermissionName == pitem.PermissionName); if (!data.Any()) { resData.Add(pitem); } } } #endregion /* * RequiresAuthModel * 开放模式 = 1 (不受权限控制) * 登陆模式 = 2 (所有登录用户) * 授权模式 = 3 (授权模式) */ #region 加载不需要授权的菜单以及动作按钮授权 List <MenuActionPermissionCache> menuActionPermissionList = _cacheManagerExtens.GetMenuActionPermissionCache(); var permissionData = menuActionPermissionList.Where(w => w.IsActive == true && w.RequiresAuthModel != "3"); foreach (var item in permissionData) { var data = resData.Where(w => (w.MenuId == item.MenuId && w.HandleName == item.MenuName && item.IsMenu && w.PermissionName == item.PermissionName) || (w.MenuId == item.MenuId && w.HandleName == item.ActionName && !item.IsMenu && w.PermissionName == item.PermissionName) ); if (!data.Any()) { resData.Add(new RoleToPermissionCache() { MenuName = item.MenuName, HandleName = item.IsMenu ? item.MenuName : item.ActionName }); } } #endregion //登录用户信息 var userData = _cacheManagerExtens.GetUserInfoCache(AbpSession.UserId.Value); return(new { User = new { UserNameCn = AbpSession.UserNameCn, UserCode = AbpSession.UserCode, IsAdmin = AbpSession.IsAdmin, ImageUrl = userData.ImageUrl, OrgCode = userData.OrgCode }, Permission = resData }); }