Exemple #1
0
        public JsonResult Search(SearchUserViewModel model)
        {
            JSonResult objResult = new JSonResult();

            try
            {
                BE.MUser        MUser  = new BE.MUser();
                List <BE.MUser> MUsers = new List <BE.MUser>();

                MUser.User = Extension.ToEmpty(model.User).Trim();
                MUser.Name = Extension.ToEmpty(model.UserName).Trim();

                MUsers = new WebApiUser().GetUsers(MUser);

                objResult.data = MUsers;
            }
            catch (Exception ex)
            {
                objResult.data    = null;
                objResult.isError = true;
                objResult.message = string.Format(MessageResource.ControllerGetExceptionMessage, "User");
            }

            return(Json(objResult));
        }
Exemple #2
0
        public JsonResult ChangePassword(string id)
        {
            JSonResult objResult = new JSonResult();
            string     response  = string.Empty;

            try
            {
                BE.MUser objEnt = new BE.MUser();
                objEnt.UserId = Convert.ToInt32(id);

                response = new WebApiUser().ChangePassword(objEnt); //Falta crear el metodo de editar

                string statusCode    = response.Split('|')[0];
                string statusMessage = response.Split('|')[1];

                objResult.isError = statusCode.Equals("2") ? true : false;
                objResult.message = statusCode.Equals("2") ? statusMessage : string.Format("Change password successful", "User");;
            }
            catch (Exception ex)
            {
                objResult.data    = null;
                objResult.isError = true;
                objResult.message = MessageResource.ControllerDeleteExceptionMessage;
            }

            return(Json(objResult));
        }
Exemple #3
0
        public override async Task <IWebApiUser> SelectByIDAsync(long id, long userId, CancellationToken cancellationToken)
        {
            DataTable dt = null;
            Dictionary <string, object> param = new Dictionary <string, object>();
            IWebApiUser user = null;

            param.Add(DBObjects.SPParameter.WAUserId, GetParameter(DBObjects.SPParameter.WAUserId, ParameterDirection.Input, ((int)SqlDbType.BigInt), 8, id));
            dt = await this.GetSPDataTableAsync(DBObjects.StoredProcedures.webApi_pspSelectUserById.ToString(), cancellationToken, param);

            if (dt != null && dt.Rows.Count > 0)
            {
                user = new WebApiUser();

                user.SystemId       = Convert.ToInt64(PublicFunctions.ConvertDBNullToNull(dt.Rows[0]["SystemId"]));
                user.WARoleId       = Convert.ToInt64(PublicFunctions.ConvertDBNullToNull(dt.Rows[0]["WARoleId"]));
                user.EmailId        = Convert.ToString(dt.Rows[0]["EmailId"]);
                user.ConfirmEmailId = Convert.ToString(dt.Rows[0]["EmailId"]);
                user.UserName       = Convert.ToString(dt.Rows[0]["UserName"]);
                user.FirstName      = Convert.ToString(dt.Rows[0]["FirstName"]);
                user.MiddleName     = Convert.ToString(dt.Rows[0]["MiddleName"]);
                user.LastName       = Convert.ToString(dt.Rows[0]["LastName"]);
                user.SystemName     = Convert.ToString(dt.Rows[0]["SystemName"]);
                user.RoleName       = Convert.ToString(dt.Rows[0]["RoleName"]);
                user.PhoneNo        = Convert.ToString(PublicFunctions.ConvertDBNullToNull(dt.Rows[0]["PhoneNo"]));
                user.Address1       = Convert.ToString(PublicFunctions.ConvertDBNullToNull(dt.Rows[0]["Address1"]));
                user.Address2       = Convert.ToString(PublicFunctions.ConvertDBNullToNull(dt.Rows[0]["Address2"]));
                user.Address3       = Convert.ToString(PublicFunctions.ConvertDBNullToNull(dt.Rows[0]["Address3"]));
                user.WAUserId       = dt.Rows[0]["WAUserId"].ToString();
                user.TimeZoneId     = Convert.ToInt64(dt.Rows[0]["TimeZoneID"]);
                user.IsActive       = Convert.ToBoolean(dt.Rows[0]["IsActive"]);
            }

            return(user);
        }
Exemple #4
0
        public ActionResult Edit(string id)
        {
            BE.MUser objResult;
            ViewBag.Title   = "Edit User";
            ViewBag.Confirm = string.Format(MessageResource.UpdateConfirm, "user");
            try
            {
                ViewBag.Estado = Extension.GetStatus().Select(x => new SelectListItem
                {
                    Value = x.Id,
                    Text  = x.Value
                });

                BE.MUser MUser = new BE.MUser
                {
                    UserId = Convert.ToInt32(id)
                };

                objResult = new WebApiUser().GetUser(MUser);

                return(View("Register", new UserViewModel()
                {
                    UserId = objResult.UserId,
                    User = objResult.User,
                    Name = objResult.Name,
                    Type = objResult.Type,
                    Status = objResult.Status.ToString()
                }));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("viewError", MessageResource.PartialViewLoadError);
                return(View("_ErrorView"));
            }
        }
        public async Task <ActionResult> Index(WebApiUser model, long ddlSystem, CancellationToken cancellationToken)
        {
            model.SystemId = ddlSystem;

            ModelState.Remove("SystemId");
            ModelState.Add("SystemId", new ModelState());
            ModelState.SetModelValue("SystemId", new ValueProviderResult(model.SystemId, model.SystemId.ToString(), null));
            ModelState.Remove("Pin");
            ModelState.Remove("ConfirmPin");

            if (!ModelState.IsValid)
            {
                ViewData[Constant.CustomSuccessMessage] = Constant.CustomValidationErrorMessage;
                ViewData[Constant.QuerySuccess]         = false;
                model = (WebApiUser)await _service.IndexAsync(this.HttpContext.ApplicationInstance.Context, GetCanellationToken(cancellationToken));

                return(View(model));
            }
            ModelState.Clear();
            model = (WebApiUser)await _service.SaveAsync(HttpContext.ApplicationInstance.Context, model, GetCanellationToken(cancellationToken));

            ViewData[Constant.QuerySuccess] = HttpContext.Items[Constant.QuerySuccess];
            ViewData[Constant.FormTitle]    = HttpContext.Items[Constant.FormTitle];

            if (Convert.ToBoolean(ViewData[Constant.QuerySuccess]))
            {
                ViewData[Constant.FormTitle] = "EDIT WEB API USER";
            }
            else
            {
                ViewData[Constant.CustomSuccessMessage] = "Error: email is already associated with another user.";
            }

            return(View(model));
        }
        private async ValueTask HandleAddOfflineIp(string target, string name, WebApiUser user, string reason)
        {
            if (IsIpAInvalid(target))
            {
                await user.WriteConsole($"Unable to comply: Invalid target address.", "ban system");

                return;
            }

            var ban = new PlayerBan(target,
                                    new string[]
            {
                $"Dashboard: {user.Password.User} [ban offline]"
            },
                                    DateTime.Now,
                                    new string[]
            {
                name
            }, reason);

            if (!await _database.Add(ban.IpAddress, ban))
            {
                await user.WriteConsole($"Unable to comply: Ban already exists.", "ban handler");
            }
            else
            {
                await user.WriteConsole($"Ban added.", "ban handler");
            }
        }
Exemple #7
0
        public async override Task <IWebApiUser> IndexAsync(HttpContext context, CancellationToken cancellationToken)
        {
            IWebApiUser model = new WebApiUser(); //{ WAUserId = Convert.ToString(userId) };

            model = await PopulateInitialValuesAsync(model, cancellationToken);

            return(model);
        }
        public void TestToString_NoClaims()
        {
            var claims = new List <Claim>();

            var claimsPrincipal = new ClaimsPrincipal();
            var user            = new WebApiUser(claimsPrincipal);

            Assert.IsNotNull(user.ToString());
        }
Exemple #9
0
        public async Task <IWebApiUser> IndexAsync(System.Web.HttpContext context, IWebApiUser model, CancellationToken cancellationToken)
        {
            if (model == null)
            {
                model = new WebApiUser();
            }
            model = await PopulateInitialValuesAsync(model, cancellationToken);

            return(model);
        }
Exemple #10
0
        private async ValueTask HandlePurge(WebApiUser source)
        {
            var count = _database.Elements.Count();
            await _database.Clear();

            await source.WriteConsole($"Purged {count} records.", "ban system");

            await _logManager.LogInformation(
                $"Ban Manager: PURGED bans for {source.Password.User}");
        }
        public void TestSetUserId_NoClaims_ShouldNotThrowAnyExceptions()
        {
            var claims = new List <Claim>();

            var claimsPrincipal = new ClaimsPrincipal();
            var user            = new WebApiUser(claimsPrincipal);

            Assert.AreEqual(Guid.Empty, user.Id);

            user.Invoking(x => x.SetUserId(claims)).ShouldNotThrow();
        }
        public void TestSetTokenValidAfterDate_InvalidTime()
        {
            var claims = new List <Claim>();

            claims.Add(new Claim(WebApiUser.VALID_NOT_BEFORE_DATE_KEY, "abc"));

            var claimsPrincipal = new ClaimsPrincipal();
            var user            = new WebApiUser(claimsPrincipal);

            user.Invoking(x => x.SetTokenValidAfterDate(claims)).ShouldNotThrow();
        }
        public void TestSetTokenExpirationDate_InvalidTime()
        {
            var claims = new List <Claim>();

            claims.Add(new Claim(WebApiUser.EXPIRATION_DATE_KEY, "abc"));

            var claimsPrincipal = new ClaimsPrincipal();
            var user            = new WebApiUser(claimsPrincipal);

            user.Invoking(x => x.SetTokenExpirationDate(claims)).ShouldNotThrow();
        }
        public void TestSetTokenIssueDate_InvalidTime()
        {
            var claims = new List <Claim>();

            claims.Add(new Claim(WebApiUser.ISSUED_AT_TIME_KEY, "abc"));

            var claimsPrincipal = new ClaimsPrincipal();
            var user            = new WebApiUser(claimsPrincipal);

            user.Invoking(x => x.SetTokenIssueDate(claims)).ShouldNotThrow();
        }
 private async ValueTask HandleExistsAddress(string target, WebApiUser user)
 {
     if (!_database.ContainsFast(target))
     {
         await user.WriteConsole($"No such record found.", "ban handler");
     }
     else
     {
         await user.WriteConsole($"Record identified.", "ban handler");
     }
 }
Exemple #16
0
        public async Task <IdentityResult> RegisterUser(UserModel userModel)
        {
            WebApiUser user = new WebApiUser()
            {
                UserName = userModel.Username
            };

            var result = await UserManager.CreateAsync(user, userModel.Password);

            return(result);
        }
        private async ValueTask HandleExistsName(string target, WebApiUser user)
        {
            var record = _database.Get(target);

            if (record.Equals(default(PlayerBan)))
            {
                await user.WriteConsole($"No such record found.", "ban handler");
            }
            else
            {
                await user.WriteConsole($"Record identified: {record.IpAddress}", "ban handler");
            }
        }
        private async ValueTask HandleRemoveIp(string target, WebApiUser user)
        {
            if (!await _database.RemoveFast(target))
            {
                await user.WriteConsole($"Unable to comply: no such record.", "ban system");

                return;
            }

            await user.WriteConsole($"Ban removed.", "ban system");

            await _logManager.LogInformation($"Ban Manager: removed ban {target} for {user.Password.User}");
        }
        public void TestSetGivenName()
        {
            var name   = "joe";
            var claims = new List <Claim>();

            claims.Add(new Claim(WebApiUser.GIVEN_NAME_KEY, name));

            var claimsPrincipal = new ClaimsPrincipal();
            var user            = new WebApiUser(claimsPrincipal);

            user.SetGivenName(claims);
            Assert.AreEqual(name, user.GivenName);
        }
        public void TestSetFullName()
        {
            var name   = "joe smith";
            var claims = new List <Claim>();

            claims.Add(new Claim(WebApiUser.FULL_NAME_KEY, name));

            var claimsPrincipal = new ClaimsPrincipal();
            var user            = new WebApiUser(claimsPrincipal);

            user.SetFullName(claims);
            Assert.AreEqual(name, user.FullName);
        }
        public void TestSetUserId_InvalidGuid_ShouldNotThrow()
        {
            var id     = "hello";
            var claims = new List <Claim>();

            claims.Add(new Claim(WebApiUser.USER_ID_KEY, id.ToString()));

            var claimsPrincipal = new ClaimsPrincipal();
            var user            = new WebApiUser(claimsPrincipal);

            Assert.AreEqual(Guid.Empty, user.Id);
            user.Invoking(x => x.SetUserId(claims)).ShouldNotThrow();
        }
        public void TestSetUserEmail()
        {
            var email  = "*****@*****.**";
            var claims = new List <Claim>();

            claims.Add(new Claim(WebApiUser.EMAIL_KEY, email));

            var claimsPrincipal = new ClaimsPrincipal();
            var user            = new WebApiUser(claimsPrincipal);

            user.SetUserEmail(claims);
            Assert.AreEqual(email, user.Email);
        }
        public void TestSetUserId()
        {
            var id     = Guid.NewGuid();
            var claims = new List <Claim>();

            claims.Add(new Claim(WebApiUser.USER_ID_KEY, id.ToString()));

            var claimsPrincipal = new ClaimsPrincipal();
            var user            = new WebApiUser(claimsPrincipal);

            Assert.AreEqual(Guid.Empty, user.Id);
            user.SetUserId(claims);
            Assert.AreEqual(id, user.Id);
        }
        public void TestSetTokenValidAfterDate()
        {
            var now = DateTime.UtcNow;
            var nowInSecondsAfterEpoch = (int)(now - WebApiUser.EPOCH).TotalSeconds;
            var claims = new List <Claim>();

            claims.Add(new Claim(WebApiUser.VALID_NOT_BEFORE_DATE_KEY, nowInSecondsAfterEpoch.ToString()));

            var claimsPrincipal = new ClaimsPrincipal();
            var user            = new WebApiUser(claimsPrincipal);

            user.SetTokenValidAfterDate(claims);
            now.Should().BeCloseTo(user.TokenValidAfterDate, 1000);
        }
        public void TestToString_HasEmailAndId()
        {
            var id     = Guid.NewGuid().ToString();
            var email  = "*****@*****.**";
            var claims = new List <Claim>();

            claims.Add(new Claim(WebApiUser.USER_ID_KEY, id.ToString()));
            claims.Add(new Claim(WebApiUser.EMAIL_KEY, email));

            var claimsPrincipal = new ClaimsPrincipal();
            var user            = new WebApiUser(claimsPrincipal);

            Assert.IsNotNull(user.ToString());
        }
Exemple #26
0
        public ActionResult Register(UserViewModel model)
        {
            JSonResult objResult = new JSonResult();
            string     response  = string.Empty;

            try
            {
                BE.MUser objEnt = new BE.MUser
                {
                    UserId   = model.UserId,
                    User     = model.User.Trim(),
                    Password = "",
                    Name     = model.Name.Trim(),
                    Type     = 2, //USUARIO CMS
                    Status   = Convert.ToInt32(model.Status)
                };

                if (model.UserId == 0)
                {
                    response = new WebApiUser().InsertUser(objEnt);
                }
                else
                {
                    response = new WebApiUser().UpdatetUser(objEnt); //Falta crear el metodo de editar
                }
                string statusCode    = response.Split('|')[0];
                string statusMessage = response.Split('|')[1];

                string MessageResul = (model.UserId == 0) ? string.Format(MessageResource.SaveSuccess, "User") : string.Format(MessageResource.UpdateSuccess, "User");

                objResult.isError = statusCode.Equals("2") ? true : false;
                objResult.message = statusCode.Equals("2") ? statusMessage : MessageResul;
            }
            catch (Exception ex)
            {
                objResult.isError = true;
                objResult.data    = null;
                if (model.UserId == 0)
                {
                    objResult.message = string.Format(MessageResource.SaveError, "User");
                }
                else
                {
                    objResult.message = string.Format(MessageResource.UpdateError, "User");
                }
            }
            return(Json(objResult));
        }
Exemple #27
0
        public async Task <IActionResult> LogIn([FromForm] DTOWebApiUser loginModel)
        {
            IActionResult result = Unauthorized();
            WebApiUser    _user  = await _userManager.FindByNameAsync(loginModel.Username);

            if (_user != null)
            {
                Microsoft.AspNetCore.Identity.SignInResult signInResult = await _signInManager.CheckPasswordSignInAsync(_user, loginModel.Password, false);

                if (signInResult.Succeeded)
                {
                    result = Ok(await BuildJwtToken(_user.Id));
                }
            }
            return(result);
        }
        private async ValueTask HandleInfoAddress(string target, WebApiUser user)
        {
            var record = _database.Get(target);

            if (record.Equals(default(PlayerBan)))
            {
                await user.WriteConsole($"No such record found.", "ban handler");
            }
            else
            {
                await user.WriteConsole(
                    $"\nNames: {string.Join(", ", record.PlayerNames.Select(name=>$"\"{name}\""))},\n" +
                    $"Date: {record.Time},\n" +
                    $"Witnesses: {string.Join(", ", record.Witnesses.Select(witness => $"\"{witness}\""))}\n",
                    "ban handler");
            }
        }
        private async ValueTask HandleAddName(string target, WebApiUser user, string reason)
        {
            var targetPlayer = _gameManager.Games
                               .SelectMany(game => game.Players)
                               .FirstOrDefault(player => player.Character !.PlayerInfo.PlayerName.Equals(target));

            if (targetPlayer == null)
            {
                await user.WriteConsole($"Player not found.", "ban system");

                return;
            }

            var address = targetPlayer.Client.Connection !.EndPoint.Address.ToString();
            await user.WriteConsole($"Found address of player \"{target}\": {address}. Banning...", "ban system");

            await HandleAddIp(address, user, reason);
        }
        private async ValueTask HandleAddIp(string target, WebApiUser user, string reason)
        {
            var players = _gameManager.Games
                          .SelectMany(game => game.Players)
                          .Where(player => player.Client.Connection !.EndPoint.Address.ToString().Equals(target));

            var count       = 0;
            var uniqueNames = 0;
            var name        = string.Empty;
            var names       = new List <string>();

            foreach (var clientPlayer in players)
            {
                if (!name.Equals(clientPlayer.Character !.PlayerInfo.PlayerName))
                {
                    uniqueNames++;
                    names.Add(clientPlayer.Character !.PlayerInfo.PlayerName);
                }
                name = clientPlayer.Character !.PlayerInfo.PlayerName;
                _    = clientPlayer.BanAsync();
                count++;
            }

            if (count == 0)
            {
                await user.WriteConsole($"Unable to comply: player not found.", "ban system");

                return;
            }

            await _database.Add(target, new PlayerBan(target, new string[]
            {
                $"Dashboard: {user.Password.User}"
            }, DateTime.Now, names.ToArray(), reason));

            await user.WriteConsole($"IP Banned {count} instances, with {uniqueNames} unique names.", "ban system");

            await _logManager.LogInformation($"Ban Manager: IP banned {count} instances of {target} with {uniqueNames} unique instance names for {user.Password.User}");
        }