Example #1
0
        public BaseResponseModel Delete(int id)
        {
            var vm = new BaseResponseModel();

            // Get existing user
            var user = UserService.GetUserById(id);

            if (user == null)
            {
                throw new HttpException(404, "User not found.");
            }

            // Check permissions
            if (!CurrentUser.HasPermission(Permission.EditUsers))
            {
                throw new HttpException(401, "You do not have permissions to complete this action.");
            }

            UserService.DeleteUser(user);

            LogService.CreateLog(new Log
            {
                Category  = LogCategory.Application,
                IpAddress = GetClientIp(ControllerContext.Request),
                User      = CurrentUser,
                Level     = LogLevel.Info,
                Message   = "User " + user.Email + " (ID #" + user.Id + ") was deleted."
            });

            return(new BaseResponseModel
            {
                Success = true
            });
        }
Example #2
0
        private async Task Start()
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();

            try
            {
                _ = Task.Run(this.PerformanceWatcher);

                LogService.CreateLog();

                this.CheckWorkingDirectory();
                this.CheckForProcesses();

                await Services.InitializeServices();

                await Dispatch.MainThread();

                Window oldwindow = this.MainWindow;
                this.MainWindow = new Anamnesis.GUI.MainWindow();
                this.MainWindow.Show();
                oldwindow.Close();
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Failed to start application");
                ErrorDialog.ShowError(ExceptionDispatchInfo.Capture(ex), true);
            }

            sw.Stop();
            Log.Information($"Started application in {sw.ElapsedMilliseconds}ms");
        }
Example #3
0
        public BaseResponseModel SignIn(SignInInputModel inputModel)
        {
            var vm   = new AuthResponseModel();
            var user = UserService.Authenticate(inputModel.Email, inputModel.Password);

            if (user != null)
            {
                _auth.DoAuth(inputModel.Email, inputModel.RememberMe);
                vm.Success = true;
                vm.Token   = user.AuthToken.Token;
                vm.Expires = user.AuthToken.Expires;
            }
            else
            {
                vm.Errors.Add("Invalid email or password");

                LogService.CreateLog(new Log
                {
                    Category  = LogCategory.Security,
                    IpAddress = GetClientIp(ControllerContext.Request),
                    Level     = LogLevel.Info,
                    Message   = "Authentication failed using email: " + inputModel.Email
                });
            }

            return(vm);
        }
Example #4
0
        private void SchedulerCallback(object e)
        {
            LogService.CreateLog("Begin Backup Session");

            var servicesController = new ServicesController();

            servicesController.RunBackup();

            RestartService restartService = new RestartService();

            restartService.RestartScheduler();
        }
        public void CreateLog_Does_Not_Create_If_Below_Threshold()
        {
            // Arrange
            var log = new Log()
            {
                Level = LogLevel.Info
            };
            var logRepository = new Mock<ILogRepository>();
            logRepository.Setup(r => r.Save(It.IsAny<Log>())).Verifiable();
            var logService = new LogService(logRepository.Object, LogLevel.Warning);

            // Act
            logService.CreateLog(log);

            // Assert
            logRepository.Verify(l => l.Save(log), Times.Never());
        }
Example #6
0
        public static void Initialize()
        {
            var tmp = new TcpListener(IPAddress.Any, 0);

            tmp.Start();

            HostName = "localhost:" + ((IPEndPoint)tmp.LocalEndpoint).Port;

            tmp.Stop();

            var docs = new DocumentationService();

            AddService(docs);

            LogService = new LogService();
            log        = LogService.CreateLog("REST");
        }
Example #7
0
        public void CreateLog_Does_Not_Create_If_Below_Threshold()
        {
            // Arrange
            var log = new Log()
            {
                Level = LogLevel.Info
            };
            var logRepository = new Mock <ILogRepository>();

            logRepository.Setup(r => r.Save(It.IsAny <Log>())).Verifiable();
            var logService = new LogService(logRepository.Object, LogLevel.Warning);

            // Act
            logService.CreateLog(log);

            // Assert
            logRepository.Verify(l => l.Save(log), Times.Never());
        }
Example #8
0
        public BaseResponseModel Update(UpdateResourceInputModel inputModel)
        {
            var vm = new BaseResponseModel();

            // Validate request
            var validationState = new ValidationDictionary();

            // Get existing resource
            var resource = _resourceService.GetResourceById(inputModel.ResourceId);

            if (resource == null)
            {
                throw new HttpException(404, "Resource not found.");
            }

            // Do not allow editing of resources other than yourself if you
            // don't have permissions
            if (!CurrentUser.HasPermission(Permission.EditResources))
            {
                throw new HttpException(401, "You do not have permissions to complete this action.");
            }

            // Copy properties
            resource.Value = inputModel.Value;

            if (_resourceService.ValidateResource(resource, validationState))
            {
                _resourceService.UpdateResource(resource);

                LogService.CreateLog(new Log
                {
                    Category  = LogCategory.Application,
                    IpAddress = GetClientIp(ControllerContext.Request),
                    Level     = LogLevel.Info,
                    Message   = "Resource " + resource.Name + " (ID #" + resource.Id + ") was updated.",
                    User      = CurrentUser
                });

                vm.Success = true;
            }

            vm.Errors = validationState.Errors;
            return(vm);
        }
Example #9
0
        public BaseResponseModel Update(UpdateUserInputModel inputModel)
        {
            var vm = new BaseResponseModel();

            // Validate request
            var validationState = new ValidationDictionary();

            inputModel.ValidateRequest(validationState);

            // Get existing user
            var user = UserService.GetUserById(inputModel.UserId);

            if (user == null)
            {
                throw new HttpException(404, "User not found.");
            }

            // Do not allow editing of users other than yourself if you
            // don't have permissions
            if (!CurrentUser.HasPermission(Permission.EditUsers) &&
                user.Id != CurrentUser.Id)
            {
                throw new HttpException(401, "You do not have permissions to complete this action.");
            }

            // Copy properties
            bool emailChanged = user.Email != inputModel.Email;

            user.Email = inputModel.Email;
            string newPass = String.IsNullOrWhiteSpace(inputModel.Password)
                ? null : inputModel.Password;

            // Additional properties for admin users
            if (CurrentUser.HasPermission(Permission.EditUsers))
            {
                if (inputModel.Role.HasValue)
                {
                    user.Role = inputModel.Role.Value;
                }
            }

            if (UserService.ValidateUser(user, validationState))
            {
                UserService.UpdateUser(user, newPass);
                if (emailChanged)
                {
                    ReAuthorizeUser(inputModel.Email);
                }

                LogService.CreateLog(new Log
                {
                    Category  = LogCategory.Application,
                    IpAddress = GetClientIp(ControllerContext.Request),
                    Level     = LogLevel.Info,
                    Message   = "User " + inputModel.Email + " (ID #" + user.Id + ") was updated.",
                    User      = CurrentUser
                });

                vm.Success = true;
            }

            vm.Errors = validationState.Errors;
            return(vm);
        }