示例#1
0
        public async Task <int> Add(EF.EndUser args)
        {
            var salt = Core.Crypto.GenerateSalt();
            var enc  = Core.Crypto.Hash(args.PasswordHash ?? Guid.NewGuid().ToString(), salt);

            // default RoleId
            // User
            var roleId = 2;

            // Generate ConfirmationCode
            Guid   g          = Guid.NewGuid();
            string guidString = Convert.ToBase64String(g.ToByteArray());

            guidString = guidString.Replace("=", "");
            guidString = guidString.Replace("+", "");

            args.PasswordHash       = enc;
            args.PasswordSalt       = Convert.ToBase64String(salt);
            args.RoleId             = args.RoleId == 0 ? roleId : args.RoleId;
            args.LastSessionId      = Guid.NewGuid().ToString();
            args.LastLoginDate      = DateTime.Now;
            args.DateCreated        = args.LastLoginDate.Value;
            args.ConfirmationCode   = args.ConfirmationCode ?? guidString;
            args.ConfirmationExpiry = DateTime.Now.AddHours(12);

            await unitOfWork.EndUserRepository.AddAsync(args);

            unitOfWork.Commit();

            return(args.UserId);
        }
示例#2
0
        public async Task UpdateRole(EF.EndUser endUser)
        {
            var rec = unitOfWork.EndUserRepository.Entities.First(x => x.MemberId == endUser.MemberId);

            rec.RoleId = endUser.RoleId;

            await unitOfWork.CommitAsync();
        }
示例#3
0
        public async Task UpdateRole([FromBody] Models.Member args)
        {
            var bll_u = endUserBusiness;

            var u = new EF.EndUser();

            u.MemberId = args.Id;
            u.RoleId   = args.RoleId.Value;

            await bll_u.UpdateRole(u);
        }
示例#4
0
        public async Task <bool> IsSelectedIdsOk(int[] ids, EF.EndUser user)
        {
            switch (user.RoleId)
            {
            case 1:
            case 3:
                return(await unitOfWork.GroupRepository.Entities.Where(x => ids.Contains(x.Id) && x.GroupCategory.CommunityId == user.Member.CommunityId).CountAsync() == ids.Count());

            default:
                return(await unitOfWork.GroupRepository.Entities.Where(x => ids.Contains(x.Id) && x.GroupCategory.CommunityId == user.Member.CommunityId).CountAsync() == ids.Count() &&
                       await unitOfWork.GroupRepository.Entities.Where(x => ids.Contains(x.Id) && x.GroupLeader == user.MemberId).CountAsync() == ids.Count());
            }
        }
示例#5
0
        public async Task Edit(EF.EndUser args)
        {
            var rec = unitOfWork.EndUserRepository.Entities.First(x => x.UserId == args.UserId);

            rec.PasswordHash        = args.PasswordHash;
            rec.PasswordSalt        = args.PasswordSalt;
            rec.RoleId              = args.RoleId;
            rec.LastPasswordChanged = args.LastPasswordChanged;
            rec.DateConfirmed       = args.DateConfirmed;
            rec.ConfirmationCode    = args.ConfirmationCode;
            rec.ConfirmationExpiry  = args.ConfirmationExpiry;
            rec.DateInactive        = args.DateInactive;

            await unitOfWork.CommitAsync();
        }
        private async Task AddClaimsAndSignIn(EF.EndUser args)
        {
            var ci = new ClaimsIdentity(
                new[]
            {
                // User info
                new Claim(ClaimTypes.NameIdentifier, args.UserId.ToString()),
                new Claim("http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider", "ASP.NET Identity", "http://www.w3.org/2001/XMLSchema#string"),
                new Claim(ClaimTypes.Name, args.Member.Name),
                new Claim(ClaimTypes.Email, args.Member.Email),
                new Claim(ClaimTypes.UserData, Core.JWT.GenerateToken(args.UserId, Core.Setting.Configuration.GetValue <string>("JWT:Secret"))),

                // Role
                new Claim(ClaimTypes.Role, args.Role.Name),
            }, "MyCookieMiddlewareInstance");

            ClaimsPrincipal principal = new ClaimsPrincipal();

            principal.AddIdentity(ci);

            await HttpContext.SignInAsync("MyCookieMiddlewareInstance", principal);
        }
示例#7
0
 public async Task Delete(EF.EndUser args)
 {
     unitOfWork.EndUserRepository.Remove(args);
     await unitOfWork.CommitAsync();
 }
示例#8
0
 public Task <EF.EndUser> Get(EF.EndUser args)
 {
     throw new NotImplementedException();
 }
示例#9
0
 public IQueryable <EF.EndUser> Find(EF.EndUser args)
 {
     throw new NotImplementedException();
 }
示例#10
0
 public async Task <bool> AreSelectedIdsOk(int[] ids, EF.EndUser user)
 {
     return(await unitOfWork.GroupCategoryRepository.Entities.Where(x => ids.Contains(x.Id) && x.CommunityId == user.Member.CommunityId).CountAsync() == ids.Count());
 }