public static MyUserViewModel ToMyUserViewModel(this IUser user) { var vm=new MyUserViewModel {EmailAddress = user.EmailAddress ?? string.Empty, UserId = user.Id}; if (user.Avatar != null && user.Avatar.PublicID != null) vm.AvatarPublicId = user.Avatar.PublicID; return vm; }
/// <summary> /// Get all the details for the current user /// </summary> /// <returns></returns> public JsonResult GetUser() { var userVm=new MyUserViewModel { AvatarPublicId = OrgUser.Avatar.PublicID, EmailAddress = OrgUser.EmailAddress, Name = OrgUser.Name, UserId = OrgUser.Id, LatestHigValue = OrgUser.LatestHig!=null? OrgUser.LatestHig.Value:0, CurrentState = OrgUser.CurrentState, Culture = Thread.CurrentThread.CurrentUICulture.Name, Config = OrgUser.Config ?? Config.CreateDefault(OrgUser), Roles = OrgUser.Roles.Select(r => r.Name).ToArray(), Modules = Modules, IsLocalLogin = OrgUser.IsLocalLogin, RequiresPasswordReset=OrgUser.RequiresPasswordReset }; //app is claims aware and we handle roles using claims - so get the claim type for each role if we can otherwise query database if (Claims.Any(c => c.Type == IlluminateClaimTypes.Role)) { userVm.IsManager = Claims.Any( c => c.Type == IlluminateClaimTypes.Role && c.Value == Role.BuiltInRole.Manager.ToString()); userVm.IsAdministrator = Claims.Any( c => c.Type == IlluminateClaimTypes.Role && c.Value == Role.BuiltInRole.Administrator.ToString()); userVm.IsAnalytics = Claims.Any( c => c.Type == IlluminateClaimTypes.Role && c.Value == Role.BuiltInRole.Analytics.ToString()); } else { userVm.IsManager = OrgUser.Roles.Any(r=>r.Name==Role.BuiltInRole.Manager.ToString()); userVm.IsAdministrator = OrgUser.Roles.Any(r => r.Name == Role.BuiltInRole.Administrator.ToString()); userVm.IsAnalytics = OrgUser.Roles.Any(r => r.Name == Role.BuiltInRole.Analytics.ToString()); } int unreadnotifications; int overduetasks; //badge info for me, no context. GetUserBadgeInfo(OrgUser.Id, out unreadnotifications, out overduetasks); userVm.NumberOutstandingTasks = overduetasks; userVm.NumberUnreadNotifications = unreadnotifications; return Json(userVm); }