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;
 }
Ejemplo n.º 2
0
        /// <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); 
        }