public ActionResult Create(User model)
        {
            if (!ModelState.IsValid)
            {
                ViewBag.Areas = GetAreaSelectItems();
                return(View(model));
            }
            if (userRepository.GetByUserName(model.UserName) != null)
            {
                ModelState.AddModelError("UserName", Resources.Resources.MsgUserNameAlreadyExists);
                ViewBag.Areas = GetAreaSelectItems();
                return(View(model));
            }


            HashUserPassword(model, model.Password);
            userRepository.Add(model);

            auditLogRepository.Add(AuditLogBuilder.Builder()
                                   .User(Identity.Name)
                                   .Added(typeof(User), model.UserName)
                                   .With(new ChangeInfo().AddChange(() => model.UserName).ToJson())
                                   .Build());

            logger.Info("User '{0}' created new user '{1}'", Identity.Name, model.UserName);
            return(RedirectToAction("Index"));
        }
        public ActionResult Settings(AppSetting model)
        {
            if (model.TemperatureLower >= model.TemperatureUpper)
            {
                ModelState.AddModelError("", Resources.Resources.TemperatureThresholdConfigError);
            }

            if (model.HumidityLower >= model.HumidityUpper)
            {
                ModelState.AddModelError("", Resources.Resources.HumidityThresholdConfigError);
            }
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            appSettingRepository.Update(model);
            auditLogRepository.Add(AuditLogBuilder.Builder()
                                   .User(Identity.Name)
                                   .Updated(typeof(AppSetting), model.Id.ToString())
                                   .With(new ChangeInfo()
                                         .AddChange(() => model.TemperatureUpper)
                                         .AddChange(() => model.TemperatureLower)
                                         .AddChange(() => model.Battery)
                                         .AddChange(() => model.HumidityUpper)
                                         .AddChange(() => model.HumidityLower)
                                         .ToJson()).Build());
            logger.Info("User '{0}' updated system setting.", Identity.Name);

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 3
0
        public ActionResult Delete(int id)
        {
            Device exising = deviceRepository.Get(id);

            deviceRepository.Delete(exising);

            auditLogRepository.Add(AuditLogBuilder.Builder()
                                   .User(HttpContext.User.Identity.Name)
                                   .Deleted(typeof(Device), exising.Name)
                                   .With(new ChangeInfo().AddChange(() => exising.Name).ToJson())
                                   .Build());

            logger.Info("User '{0}' deleted device '{1}'.", Identity.Name, exising.Name);

            return(RedirectToAction("TableMode"));
        }
Ejemplo n.º 4
0
        public ActionResult Delete(int id)
        {
            var exising = transportPlanRepository.Get(id);

            if (exising == null)
            {
                return(new HttpStatusCodeResult(System.Net.HttpStatusCode.BadRequest));
            }
            transportPlanRepository.Delete(exising);

            auditLogRepository.Add(AuditLogBuilder.Builder()
                                   .User(HttpContext.User.Identity.Name)
                                   .Deleted(typeof(TransportPlan), exising.Name)
                                   .With(new ChangeInfo().AddChange(() => exising.Name).ToJson())
                                   .Build());

            logger.Info("User '{0}' deleted TransportPlan '{1}'.", Identity.Name, exising.Name);

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 5
0
        public ActionResult Create(AreaModel areaModel)
        {
            if (!ModelState.IsValid)
            {
                ViewBag.Areas = GetCurrentSelectableAreaItems();
                return(View(areaModel));
            }

            areaRepository.Add(viewModelToArea(areaModel));

            auditLogRepository.Add(
                AuditLogBuilder.Builder()
                .User(HttpContext.User.Identity.Name)
                .Added(typeof(Area), areaModel.Name)
                .With(new ChangeInfo().AddChange(() => areaModel.Name).ToJson())
                .Build());

            logger.Info("User '{0}' created area '{1}'.", Identity.Name, areaModel.Name);

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 6
0
 public void ApptLog(AuditLog obj)
 {
     try
     {
         AuditLog oAuditLog = new AuditLog();
         oAuditLog.CreatedBy   = obj.CreatedBy;
         oAuditLog.Description = obj.Description;
         oAuditLog.CreatedDate = DateTime.Now;
         oAuditLog.Device      = obj.Device;
         oAuditLog.IPAddress   = obj.IPAddress;
         oAuditLog.LogType     = obj.LogType;
         oAuditLog.UserID      = obj.UserID;
         _audilogRepository.Add(oAuditLog);
         _unitOfWork.Commit();
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Ejemplo n.º 7
0
        public void StoreEvent(string userId, string eventType, string eventMessage)
        {
            int parsedUserId;

            int.TryParse(userId, out parsedUserId);

            try
            {
                auditLogRepository.Add(new AuditLog
                {
                    EventType    = eventType,
                    UserId       = parsedUserId,
                    EventMassage = eventMessage
                });
            }
            catch (Exception)
            {
                // ignored
            }
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> CreateToken([FromBody] LoginModel loginModel)
        {
            logger.LogInformation(string.Format("Login user : {0}", loginModel.UserName));
            if (ModelState.IsValid)
            {
                ApplicationUser user = null;
                //Sign in user id
                string signInUser = loginModel.UserName;
                if (RegexUtilities.IsValidEmail(signInUser))
                {
                    //First check if emailId exists
                    user = await userManager.FindByEmailAsync(signInUser).ConfigureAwait(true);
                }
                else //Not emailId, then find by username.
                {
                    user = await userManager.FindByNameAsync(signInUser).ConfigureAwait(true);
                }

                if (user == null)
                {
                    return(Unauthorized());
                }
                signInUser = user?.UserName;

                var loginResult = await signInManager.PasswordSignInAsync(signInUser, loginModel.Password, isPersistent : false, lockoutOnFailure : false).ConfigureAwait(true);

                if (!loginResult.Succeeded)
                {
                    return(Unauthorized());
                }

                Person person = personRepository.Find(null, p => p.Id == user.PersonId)?.Items.FirstOrDefault();
                string authenticationToken = GetToken(user);
                VerifyUserEmailAsync(user);

                var agentId = (Guid?)null;
                if (person.IsAgent)
                {
                    agentId = agentRepository.Find(null, p => p.Name == user.Name)?.Items?.FirstOrDefault()?.Id;
                }

                string startsWith = "";
                int    skip       = 0;
                int    take       = 100;
                var    personOrgs = membershipManager.Search(user.PersonId, startsWith, skip, take);
                // Issue #2791 We will disable the need for User Consent for this release.
                bool isUserConsentRequired = false; // VerifyUserAgreementConsentStatus(user.PersonId);
                var  pendingAcessOrgs      = membershipManager.PendingOrganizationAccess(user.PersonId);
                var  newRefreshToken       = GenerateRefreshToken();
                var  authenticatedUser     = new
                {
                    personId     = user.PersonId,
                    email        = user.Email,
                    userName     = user.UserName,
                    token        = authenticationToken,
                    refreshToken = newRefreshToken,
                    user.ForcedPasswordChange,
                    isUserConsentRequired,
                    IsJoinOrgRequestPending = (pendingAcessOrgs?.Items?.Count > 0) ? true : false,
                    myOrganizations         = personOrgs?.Items,
                    agent = agentId
                };
                //Save refresh token
                await userManager.SetAuthenticationTokenAsync(user, userManager.Options.Tokens.AuthenticatorTokenProvider, "refresh", newRefreshToken).ConfigureAwait(false);

                try
                {
                    AuditLog auditLog = new AuditLog();
                    auditLog.ChangedFromJson = null;
                    auditLog.ChangedToJson   = JsonConvert.SerializeObject(authenticatedUser);
                    auditLog.CreatedBy       = user.Email;
                    auditLog.CreatedOn       = DateTime.UtcNow;
                    auditLog.Id             = Guid.NewGuid();
                    auditLog.IsDeleted      = false;
                    auditLog.MethodName     = "Login";
                    auditLog.ServiceName    = this.ToString();
                    auditLog.Timestamp      = new byte[1];
                    auditLog.ParametersJson = "";
                    auditLog.ExceptionJson  = "";

                    auditLogRepository.Add(auditLog); //Log entry
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("Audit Log", ex.Message);
                    return(BadRequest());
                }
                return(Ok(authenticatedUser));
            }
            return(BadRequest(ModelState));
        }
Ejemplo n.º 9
0
 public int Add(Entities.AuditLog auditLog)
 {
     return(_auditLogRepository.Add(auditLog));
 }