Exemplo n.º 1
0
 /// <summary>
 /// Добавление данных.
 /// </summary>
 /// <param name="value">Данные авторизованного пользователя.</param>
 public void Add(LoggedUserInfo value)
 {
     if (!memoryCache.Contains(value.Id.ToString()))
     {
         memoryCache.Add(value.Id.ToString(), value, DateTime.Now.AddMinutes(40));
     }
 }
Exemplo n.º 2
0
        public override Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });
            using (var unitOfWork = new Core.UnitOfWork.UnitOfWork())
            {
                var userInfo = new LoggedUserInfo {
                    Id = 0, UserName = "******"
                };

                var user = unitOfWork.Repository <Data.Entity.Member>().GetBy(x => x.Mobile == context.UserName && x.Password == context.Password).FirstOrDefault();

                if (user != null)
                {
                    userInfo = new LoggedUserInfo {
                        Id = user.Id, UserName = context.UserName
                    }
                }
                ;


                if (userInfo.Id < 1)
                {
                    context.SetError("invalid_grant", "AuthenticationError");
                }
                else
                {
                    var identity = new ClaimsIdentity(context.Options.AuthenticationType);
                    identity.AddClaim(new Claim("sub", context.UserName));
                    identity.AddClaim(new Claim("role", "user"));
                    context.Validated(identity);
                }
            }
            return(base.GrantResourceOwnerCredentials(context));
        }
    }
        public IActionResult Login([FromRoute] string userName, [FromBody] string password)
        {
            var user = (from u in context.Users
                        where u.UserName.Equals(userName)
                        select u).FirstOrDefault();

            if (user == null || !user.Password.Equals(password))
            {
                return(BadRequest("Invalid username or password"));
            }

            string token = GenerateToken(userName, user.IsAdmin);

            LoggedUserInfo userInfo = new LoggedUserInfo()
            {
                UserId    = user.UserId,
                UserName  = user.UserName,
                FirstName = user.FirstName,
                LastName  = user.LastName,
                IsAdmin   = user.IsAdmin,
                Token     = token
            };

            return(Ok(userInfo));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> GetLoggedUser()
        {
            try
            {
                LoggedUserInfo loggedUserInfo = new LoggedUserInfo();

                var school = await _schoolService.GetSchoolById(GetMySchoolId().ToString());

                var user = await _userService.GetById(GetLoggedUserId().ToString());

                loggedUserInfo.UserId     = user.Id.ToString();
                loggedUserInfo.UserName   = user.Name;
                loggedUserInfo.Mobile     = user.PhoneNumber;
                loggedUserInfo.SchoolId   = school.Id.ToString();
                loggedUserInfo.SchoolName = school.Name;
                return(Ok(loggedUserInfo));
            }
            catch (ArgumentNullException argNullEx)
            {
                return(BadRequest(argNullEx.Message));
            }
            catch (ArgumentException argEx)
            {
                return(BadRequest(argEx.Message));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }
Exemplo n.º 5
0
        public JsonResult CreateTransaction(int userId, TransactSave transaction)
        {
            LoggedUserInfo userInfo = _userCache.Get(userId);
            string         error401 = transaction.RecipientID == 0
                ? ConstStrings.ReplenishmentError401
                : ConstStrings.TransferError401;

            if (userInfo != null)
            {
                Result <TransactPresentation> transactionData = _dataService.CreateTransaction(userInfo.Token, transaction);
                if (transactionData.Data != null)
                {
                    userInfo.Balance += transaction.Amount;
                    _userCache.Update(userInfo);

                    return(Json(transactionData.Data, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    if (transactionData.Error.IndexOf("401") != -1 || transactionData.Error.IndexOf("403") != -1)
                    {
                        _userCache.Delete(userId);
                        return(Json(error401, JsonRequestBehavior.AllowGet));
                    }
                    return(Json(transactionData.Error, JsonRequestBehavior.AllowGet));
                }
            }
            return(Json(error401, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 6
0
        /// <summary>
        /// Авторизация пользователя.
        /// </summary>
        /// <param name="loginModel">Модель авторизации.</param>
        /// <returns>Модель результата с данными
        /// авторизованного пользователя и ошибкой</returns>
        public Result <LoggedUserInfo> Login(LoginModel loginModel)
        {
            string methodName = new StackTrace(false).GetFrame(0).GetMethod().Name;

            try
            {
                RestRequest request = new RestRequest("/Login", Method.POST);
                request.AddJsonBody(loginModel);

                IRestResponse response = StartRequest(methodName, request, loginModel);

                if (response.StatusCode == HttpStatusCode.InternalServerError)
                {
                    throw new InvalidOperationException(ConstStrings.ServerSideError);
                }
                else if (response.StatusCode != HttpStatusCode.OK)
                {
                    throw new InvalidOperationException(response.Content);
                }

                LoggedUserInfo result = JsonConvert.DeserializeObject <LoggedUserInfo>(response.Content);
                _logger.EndLogMethod();
                return(new Result <LoggedUserInfo> {
                    Data = result
                });
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message);
                _logger.EndLogMethod();
                return(new Result <LoggedUserInfo> {
                    Error = ex.Message.Replace("\"", string.Empty)
                });
            }
        }
Exemplo n.º 7
0
        public ActionResult <LoggedUserInfo> Login([FromBody] LoginModel loginModel)
        {
            StartInfo(ControllerContext.RouteData.Values["action"].ToString(), loginModel);
            try
            {
                if (loginModel.Email == string.Empty ||
                    loginModel.Password == string.Empty)
                {
                    throw new InvalidOperationException(ConstStrings.LoginDataNullError);
                }

                if (!_databasePW.IsUserEmailExists(loginModel.Email))
                {
                    throw new InvalidOperationException(ConstStrings.UserEmailNotExistsError);
                }

                UserInfo userInfo = _databasePW.LoginUser(loginModel);

                if (userInfo == null)
                {
                    throw new InvalidOperationException(ConstStrings.LoginDataInvalid);
                }

                Guid token = Guid.NewGuid();
                if (!_tokenCache.Add(token, userInfo.Id))
                {
                    isServerError = true;
                    throw new InvalidOperationException(ConstStrings.ServerSideError);
                }

                LoggedUserInfo loggedUserInfo = new LoggedUserInfo()
                {
                    Id      = userInfo.Id,
                    Name    = userInfo.Name,
                    Email   = userInfo.Email,
                    Balance = userInfo.Balance,
                    Token   = token
                };

                _logger.Info(string.Format("End. Return: {0}",
                                           JsonConvert.SerializeObject(loggedUserInfo)));
                _logger.EndLogMethod();

                return(Ok(loggedUserInfo));
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message);
                _logger.EndLogMethod();
                if (isServerError)
                {
                    return(StatusCode(500));
                }
                else
                {
                    return(BadRequest(ex.Message));
                }
            }
        }
Exemplo n.º 8
0
 /// <summary>
 /// Добавление данных.
 /// </summary>
 /// <param name="value">Данные авторизованного пользователя.</param>
 /// <returns>Результат сохранения.</returns>
 public bool Add(LoggedUserInfo value)
 {
     if (!memoryCache.Contains(value.Id.ToString()))
     {
         return(memoryCache.Add(value.Id.ToString(), value, DateTime.Now.AddMinutes(40)));
     }
     return(true);
 }
        public IReadOnlyCollection <UserActivity> GetUserActivities(LoggedUserInfo loggedUser)
        {
            ServerToken token = TokenRepository.Instance.GetToken(loggedUser.SessionId);

            if (token == null)
            {
                return(new List <UserActivity>().AsReadOnly());
            }
            return(token.GetActivities());
        }
Exemplo n.º 10
0
        public ActionResult Index(string returnUrl)
        {
            LoggedUserInfo upsd = LoggedUserInfo.GetLoggedUserInfo();

            if (upsd != null)
            {
                return(Redirect("/Admin/Posts"));
            }
            ViewBag.ReturnUrl = returnUrl;
            return(View());
        }
 public ActionResult Edit(PostCategory postCategory)
 {
     if (ModelState.IsValid)
     {
         postCategory.UpdatedBy       = LoggedUserInfo.GetLoggedUserInfo().ID;
         db.Entry(postCategory).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(postCategory));
 }
Exemplo n.º 12
0
 /// <summary>
 /// Обновление данных.
 /// </summary>
 /// <param name="value">Данные авторизованного пользователя.</param>
 public void Update(LoggedUserInfo value)
 {
     if (memoryCache.Contains(value.Id.ToString()))
     {
         memoryCache.Set(value.Id.ToString(), value, DateTime.Now.AddMinutes(40));
     }
     else
     {
         Add(value);
     }
 }
        public ActionResult Create(PostCategory postCategory)
        {
            if (ModelState.IsValid)
            {
                postCategory.CreatedBy = LoggedUserInfo.GetLoggedUserInfo().ID;
                db.PostCategory.Add(postCategory);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(postCategory));
        }
Exemplo n.º 14
0
 private void _LoginWindow_SubmitAction(MainPage main, LoginMainWindow _loginMain, LoginChildWindow loginChildWindow)
 {
     main.LoggedUserTextBlock.Content    = LoggedUserInfo.WFM_UserName;
     main.LoggedUserTextBlock.Tag        = LoggedUserInfo.Code;
     main.LoggedUserTextBlock.TargetName = LoggedUserInfo.Iserial.ToString(CultureInfo.InvariantCulture);
     if (!LoggedUserInfo.WFM_IsMenuInitiated)
     {
         LoggedUserInfo.InitiatePermissions(main, main.PanelButtons, _loginMain, loginChildWindow);
     }
     DefaultUserSettings.DATAAREAID = new Dictionary <string, string> {
         { "CCM", "CCM" }, { "CCR", "CCR" }
     };
 }
Exemplo n.º 15
0
 /// <summary>
 /// Получение информации пользователя
 /// для блока пользователя.
 /// </summary>
 /// <param name="userId">Идентификатор пользователя.</param>
 /// <returns>Идентификатор пользователя.</returns>
 public int GetModelInfo(int userId)
 {
     if (userId != 0)
     {
         LoggedUserInfo info = _userCache.Get(userId);
         if (info != null)
         {
             ViewBag.Name    = info.Name;
             ViewBag.Balance = info.Balance;
             return(userId);
         }
     }
     ViewBag.Name    = string.Empty;
     ViewBag.Balance = 0;
     return(0);
 }
Exemplo n.º 16
0
        public ActionResult HistoryForm(UserIdModel model)
        {
            if (model.UserId != 0)
            {
                LoggedUserInfo info = _userCache.Get(model.UserId);

                if (info != null)
                {
                    ViewBag.Name    = info.Name;
                    ViewBag.Balance = info.Balance;
                }
                else
                {
                    ViewBag.Name    = string.Empty;
                    ViewBag.Balance = 0;
                    model.UserId    = 0;
                }
            }
            return(View("Form/HistoryForm", model));
        }
Exemplo n.º 17
0
        public virtual ActionResult Index(LoginViewModel model, string returnUrl)
        {
            ViewBag.ReturnUrl = returnUrl;
            if (!ModelState.IsValid)
            {
                TempData["message"]   = "";
                TempData["alertType"] = "danger";
                return(View(model));
            }

            bool result = new AccountLoginModel().CheckLogin(model.Username, model.Password, model.RememberMe);

            if (result)
            {
                Users user = new AccountLoginModel().GetUserByLogin(model.Username, model.Password, model.RememberMe);

                LoggedUserInfo loggedUser = new LoggedUserInfo();
                loggedUser.Username     = user.Username;
                loggedUser.ID           = user.ID;
                loggedUser.UserRoleEnum = user.UserRoleEnum.Value;
                loggedUser.PasswordHash = Crypto.SHA256(model.Password);

                LoggedUserInfo.AddLoggedUserInfo(loggedUser);

                if (Url.IsLocalUrl(returnUrl))
                {
                    return(Redirect(returnUrl));
                }

                return(Redirect("/Admin/Posts"));
            }
            else
            {
                TempData["message"]   = "Invalid login attempt";
                TempData["alertType"] = "danger";
                ModelState.AddModelError("", "Invalid login attempt.");
                return(View(model));
            }
        }
        public ActionResult Index(ResetPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                PostDbContext db             = new PostDbContext();
                string        username       = LoggedUserInfo.GetLoggedUserInfo().Username;
                string        pp             = LoggedUserInfo.GetLoggedUserInfo().PasswordHash;
                string        passwoord_hash = Crypto.SHA256(model.PresentPassword);

                int res = db.Users.Where(x => x.Username == username && x.Password == passwoord_hash).Count();
                if (res == 1)
                {
                    //update password
                    try
                    {
                        Users u = db.Users.Where(x => x.Username == username && x.Password == passwoord_hash).SingleOrDefault();
                        u.Password = Crypto.SHA256(model.ConfirmPassword);
                        db.SaveChanges();

                        TempData["message"]   = "Successfully Changed Password. Login Again with new Password";
                        TempData["alertType"] = "success";

                        Session.Abandon();
                    }
                    catch (Exception)
                    {
                        TempData["message"]   = "Failed To Change Password";
                        TempData["alertType"] = "danger";
                    }
                }
                else
                {
                    TempData["message"]   = "Incorrect Old password";
                    TempData["alertType"] = "info";
                }
            }
            return(View(model));
        }
Exemplo n.º 19
0
        public JsonResult GetHistory(UserIdModel model)
        {
            LoggedUserInfo userInfo = _userCache.Get(model.UserId);

            if (userInfo != null)
            {
                Result <List <TransactPresentation> > transactionsList = _dataService.GetUserTransactions(userInfo.Token);
                if (transactionsList.Data != null)
                {
                    return(Json(transactionsList.Data, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    if (transactionsList.Error.IndexOf("401") != -1 || transactionsList.Error.IndexOf("403") != -1)
                    {
                        _userCache.Delete(model.UserId);
                        return(Json(ConstStrings.HistoryError401, JsonRequestBehavior.AllowGet));
                    }
                    return(Json(transactionsList.Error, JsonRequestBehavior.AllowGet));
                }
            }
            return(Json(ConstStrings.HistoryError401, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 20
0
        public JsonResult GetUsers(FindModel model)
        {
            LoggedUserInfo userInfo = _userCache.Get(model.UserId);

            if (userInfo != null)
            {
                Result <List <UserNameInfo> > users = _dataService.GetUsers(userInfo.Token, model.Filter);

                if (users.Data != null)
                {
                    return(Json(users.Data, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    if (users.Error.IndexOf("401") != -1 || users.Error.IndexOf("403") != -1)
                    {
                        _userCache.Delete(model.UserId);
                    }
                    return(Json(users.Error, JsonRequestBehavior.AllowGet));
                }
            }
            return(Json(ConstStrings.UsersError401, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 21
0
        public IReadOnlyCollection <UserActivity> GetUserActivities(LoggedUserInfo loggedUser)
        {
            ServerToken token = TokenRepository.Instance.GetToken(loggedUser.SessionId);

            return(token.GetActivities());
        }
Exemplo n.º 22
0
 private void GettingUser()
 {
     LoggedUserInfo.WfmUserName = Page.User.Identity.Name;
     LoggedUserInfo.InitiatePermissions();
 }
Exemplo n.º 23
0
 public ActionResult Logout()
 {
     LoggedUserInfo.UserLogOut();
     return(Redirect("/home"));
 }
Exemplo n.º 24
0
 /// <summary>
 /// Добавление/обновление данных.
 /// </summary>
 /// <param name="value">Данные авторизованного пользователя.</param>
 public void AddOrUpdate(LoggedUserInfo value)
 {
     memoryCache.Set(value.Id.ToString(), value, DateTime.Now.AddMinutes(40));
 }