Exemple #1
0
        public async Task <UserCheckResult> CheckLogin(LoginView login)
        {
            var set  = dbContext.Set <Hcs.Platform.BaseModels.PlatformUser>();
            var user = await set.FirstOrDefaultAsync(x => x.Account == login.Account && x.Password == login.Password);

            string message = null;

            switch (user)
            {
            case null:
                message = "Login.UserNotExists";
                break;

            case var u when u.Status != UserStatus.Active:
                message = "Login.UserNotActive";
                break;
            }
            return(new UserCheckResult(user != null && user.Status == UserStatus.Active, message, user));
        }
Exemple #2
0
        public async Task <IEnumerable <string> > GetRoleCodes(IPlatformUser user)
        {
            var set   = dbcontext.Set <BaseModels.PlatformGroupRole>();
            var key   = Core.CacheKeyBuilder.UserRoleCode(user.Id);
            var roles = cache.GetOrCreate(key, entry =>
            {
                entry.AbsoluteExpirationRelativeToNow = new TimeSpan(0, 10, 0);
                var r        = set.Where(x => x.PlatformGroup.PlatformUserGroups.Any(y => y.PlatformUserId == user.Id) && x.Permission != PermissionStatus.NotSet).AsEnumerable().Select(x => new { Permission = x.Permission, Code = x.FunctionCode + "." + x.FunctionRoleCode }).ToArray();
                var denied   = r.Where(x => x.Permission == PermissionStatus.Denied).Select(x => x.Code).ToArray();
                var roleList = new List <string>(r.Where(x => x.Permission == PermissionStatus.Granted && !denied.Contains(x.Code)).Select(x => x.Code));
                roleList.Add("Everyone.All");
                return(roleList);
            });

            return(await Task.FromResult(roles));
        }