コード例 #1
0
        public void TestAddPermissionThrowsExceptionIfloginIdDuplicate()
        {
            try
            {
                #region Arrange
                Controller.ControllerContext.HttpContext = new MockHttpContext(1, new[] { "" });
                ControllerRecordFakes.FakeApplications(3, ApplicationRepository);
                ControllerRecordFakes.FakeRoles(5, RoleRepository);
                var users = new List <User> {
                    CreateValidEntities.User(1), CreateValidEntities.User(1)
                };
                ControllerRecordFakes.FakeUsers(3, UserRepository, users);
                ControllerRecordFakes.FakePermissions(1, PermissionRepository);

                RoleService.Expect(a => a.GetVisibleByUser("Name2", "UserName")).Return(RoleRepository.Queryable).Repeat.Any();
                UserService.Expect(a => a.CanUserManageGivenLogin("Name2", "UserName", "LoginId1")).Return(true).Repeat.Any();
                PermissionRepository.Expect(a => a.EnsurePersistent(Arg <Permission> .Is.Anything)).Repeat.Any();
                #endregion Arrange

                #region Act
                Controller.AddPermission("Name2", "LoginId1", 3);
                #endregion Act
            }
            catch (Exception ex)
            {
                #region Assert
                Assert.IsNotNull(ex);
                Assert.AreEqual("Sequence contains more than one element", ex.Message);
                UserService.AssertWasCalled(a => a.CanUserManageGivenLogin("Name2", "UserName", "LoginId1"));
                RoleService.AssertWasCalled(a => a.GetVisibleByUser("Name2", "UserName"));
                PermissionRepository.AssertWasNotCalled(a => a.EnsurePersistent(Arg <Permission> .Is.Anything));
                #endregion Assert
                throw;
            }
        }
コード例 #2
0
        public IEnumerable <string> GetPermissionCodes(int userId)
        {
            var repository = new PermissionRepository();
            var codes      = repository.GetBy(userId);

            return(codes);
        }
コード例 #3
0
        public void CanGetCreatedEvent()
        {
            var eventRepository = MockRepository.GenerateStub<IEventRepository>();
            var expectedEventDto = new EventDto
            {
                EventId = 1
            };
            eventRepository
                .Expect(et => et.GetItem(1))
                .Return(expectedEventDto);

            var permissionRepository = new PermissionRepository();
            var personRepository = new PersonRepository(permissionRepository, new ChurchRepository());
            var usernamePasswordRepository = new UsernamePasswordRepository(permissionRepository);
            var groupRepository = new GroupRepository();
            var messageRepository = new MessageRepository();
            var messageRecepientRepository = new MessageRecepientRepository();
            var messageAttachmentRepository = new MessageAttachmentRepository();
            var emailSender = new EmailSender(messageRepository, messageRecepientRepository, messageAttachmentRepository, personRepository);
            var churchEmailTemplatesRepository = new ChurchEmailTemplatesRepository();
            var emailContentRepository = new EmailContentRepository();
            var emailContentService = new EmailContentService(emailContentRepository);
            var emailService = new EmailService(usernamePasswordRepository, personRepository, groupRepository, emailSender, emailContentService, churchEmailTemplatesRepository, permissionRepository);

            IEventService eventService = new EventService(eventRepository, emailService, new BirthdayAndAniversaryRepository());
            var eventDto = eventService.GetEvent(1);
            Assert.That(eventDto, Is.EqualTo(expectedEventDto));
        }
コード例 #4
0
ファイル: UnitOfWork .cs プロジェクト: Morzkat/KCTest
        public UnitOfWork(KCTestContext kCTestContext)
        {
            _kCTestContext = kCTestContext;

            PermissionRepository     = new PermissionRepository(_kCTestContext.Permissions);
            PermissionTypeRepository = new PermissionTypeRepository(_kCTestContext.PermissionTypes);
        }
コード例 #5
0
        public void CanCreateANewEvent()
        {
            var eventTypeRepository = MockRepository.GenerateStub<IEventRepository>();

            var permissionRepository = new PermissionRepository();
            var personRepository = new PersonRepository(permissionRepository, new ChurchRepository());
            var usernamePasswordRepository = new UsernamePasswordRepository(permissionRepository);
            var groupRepository = new GroupRepository();
            var messageRepository = new MessageRepository();
            var messageRecepientRepository = new MessageRecepientRepository();
            var messageAttachmentRepository = new MessageAttachmentRepository();
            var emailSender = new EmailSender(messageRepository, messageRecepientRepository, messageAttachmentRepository, personRepository);
            var churchEmailTemplatesRepository = new ChurchEmailTemplatesRepository();
            var emailContentRepository = new EmailContentRepository();
            var emailContentService = new EmailContentService(emailContentRepository);
            var emailService = new EmailService(usernamePasswordRepository, personRepository, groupRepository, emailSender, emailContentService, churchEmailTemplatesRepository, permissionRepository);
            IEventService eventTypeService = new EventService(eventTypeRepository, emailService, new BirthdayAndAniversaryRepository());
            var newEvent = new EventDto();
            eventTypeRepository
                .Expect(e => e.SaveItem(newEvent))
                .Return(1);
            var result = eventTypeService.CreateEvent(newEvent);

            Assert.That(result, Is.EqualTo(1));
        }
コード例 #6
0
        public void TestAddPermissionWhenPermissionAlreadyExists()
        {
            #region Arrange
            Controller.ControllerContext.HttpContext = new MockHttpContext(1, new[] { "" });
            ControllerRecordFakes.FakeRoles(5, RoleRepository);
            ControllerRecordFakes.FakeApplications(3, ApplicationRepository);
            ControllerRecordFakes.FakeUsers(3, UserRepository);
            var permissions = new List <Permission> {
                CreateValidEntities.Permission(1)
            };
            permissions[0].Application = ApplicationRepository.GetNullableById(3);
            permissions[0].User        = UserRepository.GetNullableById(3);
            permissions[0].Role        = RoleRepository.GetNullableById(2);

            ControllerRecordFakes.FakePermissions(1, PermissionRepository, permissions);

            UserService.Expect(a => a.CanUserManageGivenLogin("Name3", "UserName", "LoginId3")).Return(true).Repeat.Any();
            RoleService.Expect(a => a.GetVisibleByUser("Name3", "UserName")).Return(RoleRepository.Queryable).Repeat.Any();
            PermissionRepository.Expect(a => a.EnsurePersistent(Arg <Permission> .Is.Anything)).Repeat.Any();
            #endregion Arrange

            #region Act
            Controller.AddPermission("Name3", "LoginId3", 2);
            #endregion Act

            #region Assert
            UserService.AssertWasCalled(a => a.CanUserManageGivenLogin("Name3", "UserName", "LoginId3"));
            RoleService.AssertWasCalled(a => a.GetVisibleByUser("Name3", "UserName"));
            PermissionRepository.AssertWasNotCalled(a => a.EnsurePersistent(Arg <Permission> .Is.Anything));

            #endregion Assert
        }
コード例 #7
0
ファイル: Dashboard.cs プロジェクト: RickSpanjers/Portal
        private void btn_roles_Click(object sender, EventArgs e)
        {
            UserLogic            userLogic      = new UserLogic();
            RoleLogic            roleLogic      = new RoleLogic();
            SingleUser           singleUser     = new SingleUser();
            PermissionRepository PermissionRepo = new PermissionRepository(new PermissionContext());
            var AllRoles       = roleLogic.RetrieveAllRoles();
            int pagePermission = 20;

            User user;

            user = new User(email);
            userLogic.GetSingleUser(user);

            bool hasPagePermission = PermissionRepo.CheckPermissionsFromRole(user.RetrieveRoleID(), pagePermission);

            if (hasPagePermission == true)
            {
                this.Hide();
                var roles = new RoleOverview(email);
                roles.Closed += (s, args) => this.Close();
                roles.Show();
            }
            else
            {
                MessageBox.Show("U heeft hier de rechten niet voor!");
            }
        }
コード例 #8
0
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="userRepository"></param>
        /// <param name="roleRepository"></param>
        /// <param name="userRoleAssRepository"></param>
        /// <param name="permissionRepository"></param>
        /// <param name="rolePermissionAssRepository"></param>
        /// <param name="permissionFunctionOperationAssRepository"></param>
        /// <param name="functionOperationRepository"></param>
        /// <param name="httpContextAccessor"></param>
        /// <param name="config"></param>
        public PermissionHandler(UserRepository userRepository,
                                 RoleRepository roleRepository,
                                 UserRoleAssRepository userRoleAssRepository,
                                 PermissionRepository permissionRepository,
                                 RolePermissionAssRepository rolePermissionAssRepository,
                                 PermissionFunctionOperationAssRepository permissionFunctionOperationAssRepository,
                                 FunctionOperationRepository functionOperationRepository,
                                 IHttpContextAccessor httpContextAccessor,
                                 IConfiguration config)
        {
            if (config is null)
            {
                throw new ArgumentNullException(nameof(config));
            }

            _userRepository              = userRepository ?? throw new ArgumentNullException(nameof(userRepository));
            _roleRepository              = roleRepository ?? throw new ArgumentNullException(nameof(roleRepository));
            _userRoleAssRepository       = userRoleAssRepository ?? throw new ArgumentNullException(nameof(userRoleAssRepository));
            _permissionRepository        = permissionRepository ?? throw new ArgumentNullException(nameof(permissionRepository));
            _rolePermissionAssRepository = rolePermissionAssRepository ?? throw new ArgumentNullException(nameof(rolePermissionAssRepository));
            _permissionFunctionOperationAssRepository = permissionFunctionOperationAssRepository ?? throw new ArgumentNullException(nameof(permissionFunctionOperationAssRepository));
            _functionOperationRepository = functionOperationRepository ?? throw new ArgumentNullException(nameof(functionOperationRepository));
            _httpContextAccessor         = httpContextAccessor ?? throw new ArgumentNullException(nameof(httpContextAccessor));

            _tokenParameter = config.GetSection("TokenParameter").Get <PermissionRequirement>();
        }
コード例 #9
0
        public void User4OnlyHasBothApplicationAndFieldLevelPermissionsForApp1()
        {
            var permissionRepository = new PermissionRepository(_aumentumSecurityQueryContext);
            var permissions          = permissionRepository.GetByUserProfileLoginId(TestDataBuilder.User4Id).ToList();

            permissions.Count.ShouldBe(2);

            var applicationLevelPermission = permissions.Single(x => x.Type == "application");

            applicationLevelPermission.Name.ShouldBe("api.app1");
            applicationLevelPermission.ApplicationName.ShouldBe("api.app1");
            applicationLevelPermission.Type.ShouldBe("application");
            applicationLevelPermission.CanCreate.ShouldBe(true);
            applicationLevelPermission.CanView.ShouldBe(true);
            applicationLevelPermission.CanModify.ShouldBe(true);
            applicationLevelPermission.CanDelete.ShouldBe(true);
            applicationLevelPermission.AppFunctionId.ShouldBe(TestDataBuilder.App1Id);
            applicationLevelPermission.AppFunctionParentId.ShouldBe(0);

            var fieldLevelPermission = permissions.Single(x => x.Type == "field");

            fieldLevelPermission.Name.ShouldBe("res1");
            fieldLevelPermission.ApplicationName.ShouldBe("api.app1");
            fieldLevelPermission.Type.ShouldBe("field");
            fieldLevelPermission.CanCreate.ShouldBe(true);
            fieldLevelPermission.CanView.ShouldBe(true);
            fieldLevelPermission.CanModify.ShouldBe(true);
            fieldLevelPermission.CanDelete.ShouldBe(true);
            fieldLevelPermission.AppFunctionId.ShouldBe(TestDataBuilder.App2Id);
            fieldLevelPermission.AppFunctionParentId.ShouldBe(TestDataBuilder.App1Id);
        }
コード例 #10
0
        public async Task <User> CheckPermission()
        {
            if (!_initialized)
            {
                throw new Exception("base controller not initialized");
            }

            var user = await GetCurrentUser();

            var permissions = user.Role?.Permissions ?? 0;

            var actionName     = ControllerContext.RouteData.Values["action"].ToString();
            var controllerName = ControllerContext.RouteData.Values["controller"].ToString();

            var pr = new PermissionRepository();
            var needPermissionBits = pr.GetPermissionBits(controllerName, actionName);
            var res = permissions & needPermissionBits;

            pr.Dispose();
            if (res == needPermissionBits)
            {
                return(user);
            }
            //TODO вернуть после расстановки прав в БД
            //throw new Exception("no permission to access");
            return(user);
        }
コード例 #11
0
        public ActionResult UserPermission(string id)
        {
            try
            {
                using (var context = new AppSecurityContext())
                {
                    var userPermissionRep = new UserPermissionRepository(context);
                    var permissionRep     = new PermissionRepository(context);
                    var userRep           = new UserRepository(context);

                    var permissions = userPermissionRep.GetAll()
                                      .Where(x => x.UserId == id);

                    var user = userRep.Find(id);

                    var model = new ListAppUserPermissionViewModel();
                    model.UserId          = user.Id;
                    model.UserName        = user.UserName;
                    model.UserPermissions = mapper.Map <IEnumerable <AppUserPermissionViewModel> >(permissions);
                    return(View(model));
                }
            }
            catch
            {
                return(View("Users"));
            }
        }
コード例 #12
0
ファイル: Validation.cs プロジェクト: atulmore777/SampleApp
            public override bool IsValid(object value)
            {
                bool result = true;

                try
                {
                    if (value != null && value != "")
                    {
                        result = false;

                        int roleId = Convert.ToInt32(value);
                        DataLayerContext     dlContext            = new DataLayerContext();
                        PermissionRepository permissionRepository = new PermissionRepository(dlContext);
                        var permissionData = permissionRepository.Find(roleId);
                        if (permissionData != null && permissionData.PermissionId > 0)
                        {
                            result = true;
                        }
                    }
                }
                catch (Exception ex)
                {
                    result = false;
                }
                return(result);
            }
コード例 #13
0
        public ActionResult EditPermission(string id)
        { //Clave del resource
            var model = new EditAppPermissionViewModel();

            using (var context = new AppSecurityContext())
            {
                var actionRepository     = new ActionRepository(context);
                var resourceRepository   = new ResourceRepository(context);
                var permissionRepository = new PermissionRepository(context);
                try
                {
                    var actions     = actionRepository.GetAll();
                    var resource    = resourceRepository.Find(id);
                    var permissions = permissionRepository.GetAll().Where(x => x.ResourceKey == resource.Key);
                    var actionKeys  = permissions.Select(x => x.ActionKey).ToArray();
                    model.AvailableActions = mapper.Map <ICollection <AppActionViewModel> >(actions);
                    model.SelectedActions  = actionKeys;
                    model.ResourceKey      = resource.Key;
                    model.ResourceName     = resource.Name;

                    return(View(model));
                }
                catch (Exception ex)
                {
                    ViewBag.Error = ex.Message;
                    return(View(model));
                }
            }
        }
コード例 #14
0
 public PermissionsController(
     IRepositoryAsync <Permission> repository,
     ILogger <PermissionsController> logger)
 {
     _permissionsRepository = repository as PermissionRepository;
     _logger = logger;
 }
コード例 #15
0
        public override bool IsValid(object value)
        {
            long permissionId = Convert.ToInt64(value.ToString());
            PermissionRepository permissionRepository = this.permissionApplication.DetailById(permissionId);

            return(permissionRepository.Id > 0);
        }
コード例 #16
0
 public PermissionBLL()
 {
     UserRepository              = new UserRepository();
     RoleRepository              = new RoleRepository();
     PermissionRepository        = new PermissionRepository();
     SpecialPermissionRepository = new SpecialPermissionRepository();
 }
コード例 #17
0
        public bool UserCheckPermission(int userId, int permissionId)
        {
            var user       = UserRepository.UserGetById(userId);
            var permission = PermissionRepository.PermissionGetById(permissionId);
            SpecialPermission specialPermission = null;

            if (permission != null)
            {
                specialPermission = SpecialPermissionRepository.SpecialPermissionGetByUserIdAndPermissionName(user.Id, permission.Name);
            }
            if (user != null && UserCheckRole(user.Id, (int)Roles.Administrator))
            {
                return(true);
            }
            if (user == null || permission == null)
            {
                return(false);
            }
            if (specialPermission != null)
            {
                return(true);
            }

            return(false);
        }
コード例 #18
0
        public AddGroupForm(GroupRepository groupRepository,
                            PermissionRepository permissionRepository)
        {
            this.groupRepository      = groupRepository;
            this.permissionRepository = permissionRepository;

            InitializeComponent();
            Translator.Translate(this);

            if (this is AddAdminGroupForm)
            {
                gb_Permissions.Visible = false;
                MinimumSize            = new Size(816, 221);
                Size = new Size(816, 221);
            }
            else
            {
                int i           = 0;
                var permissions = permissionRepository.GetAll();
                foreach (var permission in permissions)
                {
                    var backColor = i++ % 2 == 0 ? lvAvailablePermissions.BackColor : Color.LightBlue;
                    var item      = permission.ToListViewItem(backColor);
                    lvAvailablePermissions.Items.Add(item);
                }
            }
        }
コード例 #19
0
        public void TestAddPermission()
        {
            #region Arrange
            Controller.ControllerContext.HttpContext = new MockHttpContext(1, new[] { "" });
            ControllerRecordFakes.FakeRoles(5, RoleRepository);
            ControllerRecordFakes.FakeApplications(3, ApplicationRepository);
            ControllerRecordFakes.FakeUsers(3, UserRepository);
            ControllerRecordFakes.FakePermissions(1, PermissionRepository);

            UserService.Expect(a => a.CanUserManageGivenLogin("Name3", "UserName", "LoginId3")).Return(true).Repeat.Any();
            RoleService.Expect(a => a.GetVisibleByUser("Name3", "UserName")).Return(RoleRepository.Queryable).Repeat.Any();
            PermissionRepository.Expect(a => a.EnsurePersistent(Arg <Permission> .Is.Anything)).Repeat.Any();
            #endregion Arrange

            #region Act
            Controller.AddPermission("Name3", "LoginId3", 2);
            #endregion Act

            #region Assert
            UserService.AssertWasCalled(a => a.CanUserManageGivenLogin("Name3", "UserName", "LoginId3"));
            RoleService.AssertWasCalled(a => a.GetVisibleByUser("Name3", "UserName"));
            PermissionRepository.AssertWasCalled(a => a.EnsurePersistent(Arg <Permission> .Is.Anything));
            var args = (Permission)PermissionRepository.GetArgumentsForCallsMadeOn(a => a.EnsurePersistent(Arg <Permission> .Is.Anything))[0][0];
            Assert.IsNotNull(args);
            Assert.AreEqual("Name2", args.Role.Name);
            Assert.AreEqual("LoginId3", args.User.LoginId);
            Assert.AreEqual("Name3", args.Application.ToString());
            Assert.IsFalse(args.Inactive);
            #endregion Assert
        }
コード例 #20
0
 public CategoryProcessor(CategoryRepository categoryRepository, PermissionRepository permissionRepository,
                          XsltTransformationManager xsltTransformationManager, IKernel container)
     : base(xsltTransformationManager, container)
 {
     m_categoryRepository   = categoryRepository;
     m_permissionRepository = permissionRepository;
 }
コード例 #21
0
        public async Task DeleteAsync_EntityNotExist_ReturnFalse()
        {
            // Arrange
            var authenticateUser = new AuthenticateUser <int>()
            {
                Name            = "codedesignplus",
                IdUser          = new Random().Next(0, int.MaxValue),
                IsAuthenticated = true,
                IsApplication   = false,
            };

            var builder = new DbContextOptionsBuilder <CodeDesignPlusContextInMemory>();

            var options = builder.UseInMemoryDatabase(nameof(OperationBaseTest)).Options;

            var context = new CodeDesignPlusContextInMemory(options);

            var repository = new PermissionRepository(authenticateUser, context);

            // Act
            var success = await repository.DeleteAsync(new Random().Next(1, int.MaxValue));

            // Assert
            Assert.False(success);
        }
コード例 #22
0
        public void Deveria_Buscar_Todas_Permissoes()
        {
            var list = PermissionRepository.GetAll();

            Assert.IsNotNull(list);
            Assert.AreEqual(8, list.Count);
        }
コード例 #23
0
 public UnitOfWork(DbEntities context)
 {
     _context          = context;
     Persons           = new PersonRepository(_context);
     Permissions       = new PermissionRepository(_context);
     PersonPermissions = new PersonPermissionRepository(_context);
 }
コード例 #24
0
ファイル: CreateRoleWork.cs プロジェクト: RIDICS/ITJakub
 public CreateRoleWork(PermissionRepository permissionRepository, CommunicationProvider communicationProvider, string roleName, string description) : base(permissionRepository)
 {
     m_permissionRepository  = permissionRepository;
     m_communicationProvider = communicationProvider;
     m_roleName    = roleName;
     m_description = description;
 }
コード例 #25
0
        public ActionResult CreateUserPermission(NewAppUserPermissionViewModel model)
        {
            using (var context = new AppSecurityContext())
            {
                var actionRepository         = new ActionRepository(context);
                var permissionRepository     = new PermissionRepository(context);
                var userPermissionRepository = new UserPermissionRepository(context);
                var userRepository           = new UserRepository(context);

                try
                {
                    var actions    = actionRepository.Query(x => model.SelectedActions.Contains(x.Key)).Select(x => x.Key);
                    var permission = permissionRepository
                                     .GetAll()
                                     .Where(x => x.ResourceKey == model.SelectedResource)
                                     .Where(x => actions.Contains(x.ActionKey));

                    userPermissionRepository.AddPermissionsByUserId(model.User.Id, permission.Select(x => x.Id).ToArray());
                    context.SaveChanges();
                    return(RedirectToAction("UserPermission", new { id = model.User.Id }));
                }
                catch (Exception ex)
                {
                    ViewBag.Error = ex.Message;
                    var actions = actionRepository.GetAll().OrderBy(x => x.Name);
                    var user    = userRepository.Find(model.User.Id);
                    model.User             = mapper.Map <AppUserViewModel>(user);
                    model.AvailableActions = mapper.Map <ICollection <AppActionViewModel> >(actions);
                    model.ResourcesList    = PopulateResourceFromNewUserPermission(model.SelectedResource);
                    return(View(model));
                }
            }
        }
コード例 #26
0
        public bool IsEnabledFor(int userId, string permissionCode)
        {
            var repository = new PermissionRepository();
            var isGranted  = repository.IsGrantedTo(userId, permissionCode);

            return(isGranted);
        }
コード例 #27
0
        public ActionResult CreateRole(NewAppRoleViewModel model)
        {
            var context                  = new AppSecurityContext();
            var rolRepository            = new RoleRepository(context);
            var permissionRepository     = new PermissionRepository(context);
            var rolePermissionRepository = new RolePermissionRepository(context);

            if (ModelState.IsValid)
            {
                var role = mapper.Map <AppRole>(model);
                role.Id = Guid.NewGuid().ToString();
                rolRepository.Add(role);
                if (model.SelectedPermissions == null)
                {
                    model.SelectedPermissions = new int[0];
                }

                foreach (var permissionId in model.SelectedPermissions)
                {
                    rolePermissionRepository.Add(new AppRolePermission {
                        PermissionId = permissionId, RoleId = role.Id
                    });
                }
                context.SaveChanges();
                return(RedirectToAction("Roles", "SecuritySettings"));
            }

            var permissions = permissionRepository.GetAll();

            model.AvailablePermissions = mapper.Map <ICollection <AppPermissionViewModel> >(permissions);
            return(View(model));
        }
コード例 #28
0
        public void GetFirstPermissionTest()
        {
            var repo  = new PermissionRepository();
            var user1 = repo.ReadPermission(1);

            Assert.True(user1.Id == 1);
        }
コード例 #29
0
        public void Dispose()
        {
            if (UserRepository != null)
            {
                UserRepository.Dispose();
                UserRepository = null;
            }

            if (RoleRepository != null)
            {
                RoleRepository.Dispose();
                RoleRepository = null;
            }

            if (PermissionRepository != null)
            {
                PermissionRepository.Dispose();
                PermissionRepository = null;
            }

            if (SpecialPermissionRepository != null)
            {
                SpecialPermissionRepository.Dispose();
                SpecialPermissionRepository = null;
            }
        }
コード例 #30
0
        public void TestAddPermissionThrowsExceptionIfCurrentUserDoesNotHaveRights1()
        {
            try
            {
                #region Arrange
                Controller.ControllerContext.HttpContext = new MockHttpContext(1, new[] { "" });
                ControllerRecordFakes.FakeApplications(3, ApplicationRepository);
                ControllerRecordFakes.FakeRoles(5, RoleRepository);
                ControllerRecordFakes.FakeUsers(3, UserRepository);
                ControllerRecordFakes.FakePermissions(1, PermissionRepository);

                UserService.Expect(a => a.CanUserManageGivenLogin("Name3", "UserName", "LoginId3")).Return(false).Repeat.Any();
                PermissionRepository.Expect(a => a.EnsurePersistent(Arg <Permission> .Is.Anything)).Repeat.Any();
                #endregion Arrange

                #region Act
                Controller.AddPermission("Name3", "LoginId3", 3);
                #endregion Act
            }
            catch (Exception ex)
            {
                #region Assert
                Assert.IsNotNull(ex);
                Assert.AreEqual("UserName does not have access to manage LoginId3 within the Name3 application", ex.Message);
                UserService.AssertWasCalled(a => a.CanUserManageGivenLogin("Name3", "UserName", "LoginId3"));
                PermissionRepository.AssertWasNotCalled(a => a.EnsurePersistent(Arg <Permission> .Is.Anything));
                #endregion Assert
                throw;
            }
        }
コード例 #31
0
        public void CanSavePersonToSampleChurch()
        {
            var noPeopleInSampleChurch = _context.PersonChurches.Count(pc => pc.ChurchId == 6);
            var permissionRepository = new PermissionRepository();
            var churchRepository = new ChurchRepository();
            var personRepository = new PersonRepository(permissionRepository, churchRepository);
            var emailSender = new EmailSender(new MessageRepository(), new MessageRecepientRepository(), new MessageAttachmentRepository(), personRepository);
            var churchEmailTemplateRepository = new ChurchEmailTemplatesRepository();
            var emailService = new EmailService(new UsernamePasswordRepository(permissionRepository), personRepository, new GroupRepository(), emailSender, new EmailContentService(new EmailContentRepository()), churchEmailTemplateRepository, permissionRepository);
            var uploadPhotoRepository = new PhotoRepository();
            var personService = new PersonService(
                personRepository,
                new PersonGroupRepository(personRepository),
                permissionRepository,
                new PersonRoleRepository(),
                new PersonOptionalFieldRepository(),
                new RelationshipRepository(personRepository),
                new ChurchMatcherRepository(),
                new GroupRepository(),
                new FamilyRepository(uploadPhotoRepository),
                emailService,
                new AddressRepository(),
                uploadPhotoRepository
                );
            personService.SavePersonToSampleChurch("test1", "test1", "liveId1", "", "", 47);

            var updatedNoPeopleInSampleChurch = _context.PersonChurches.Count(pc => pc.ChurchId == 6);
            Assert.That(updatedNoPeopleInSampleChurch, Is.EqualTo(noPeopleInSampleChurch + 1));
        }
コード例 #32
0
        public void GetAllPermissions()
        {
            var permissionRepository = new PermissionRepository(_aumentumSecurityQueryContext);
            var permissions          = permissionRepository.GetAll().ToList();

            permissions.Count.ShouldBe(5);
        }
コード例 #33
0
 public ActionResult CreatePermission(NewAppPermissionViewModel model)
 {
     using (var context = new AppSecurityContext())
     {
         var actionRepository     = new ActionRepository(context);
         var resourceRepository   = new ResourceRepository(context);
         var permissionRepository = new PermissionRepository(context);
         try
         {
             var resource = resourceRepository.Find(model.SelectedResource);
             var actions  = actionRepository.Query(x => model.SelectedActions.Contains(x.Key));
             foreach (var action in actions)
             {
                 var permission = new AppPermission();
                 permission.Action   = action;
                 permission.Resource = resource;
                 permissionRepository.Add(permission);
             }
             context.SaveChanges();
             return(RedirectToAction("Permissions"));
         }
         catch (Exception ex)
         {
             ViewBag.Error = ex.Message;
             var actions = actionRepository.GetAll().OrderBy(x => x.Name);
             model.AvailableActions = mapper.Map <ICollection <AppActionViewModel> >(actions);
             model.ResourcesList    = PopulateResourcesForNewPermission(model.SelectedResource);
             return(View(model));
         }
     }
 }
コード例 #34
0
        public PermissionAssigment(Int32 roleId, Int32 permissionId)
        {
            this.roleId = roleId;
            this.permissionId = permissionId;

            this.roleRepository = new RoleRepository();
            this.permissionRepository = new PermissionRepository();
        }
コード例 #35
0
        public IHttpActionResult PostPermissions([FromBody]List<Permission> permissions)
        {

            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            PermissionRepository permissionRepo = new PermissionRepository(new MyRoomDbContext());

            permissionRepo.InsertPermissions(permissions);

            return Ok("Permission Saved");

        }
コード例 #36
0
        protected void Application_Start()
        {
            Database.SetInitializer<DataContext>(new DataContextInitializer());
            _permissionRepository = new PermissionRepository();
            _typeOfRegistrationRepository = new TypeOfRegistrationRepository();

            _permissionRepository.Creates();

            _typeOfPaymentRepository = new TypeOfPaymentRepository();
            _typeOfPaymentRepository.Creates();
            _typeOfRegistrationRepository.Creates();

            AreaRegistration.RegisterAllAreas();
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
        }
コード例 #37
0
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {

            var allowedOrigin = context.OwinContext.Get<string>("as:clientAllowedOrigin");

            if (allowedOrigin == null) allowedOrigin = "*";

            context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { allowedOrigin });
            var IsAdmins = false;
            List<IdentityUserRole> userRoles;
            var rolName = "";
            var idUser = "";
            using (AccountRepository _repo = new AccountRepository(new MyRoomDbContext()))
            {
                
                IdentityUser user = await _repo.FindUser(context.UserName, context.Password);
                idUser = user.Id;
                userRoles = user.Roles.ToList();
                var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new MyRoomDbContext()));
                
                foreach (var userRole in userRoles)
                {
                    var role = roleManager.FindById(userRole.RoleId);
                    rolName = role.Name;
                    if (role.Name == "Admins") IsAdmins = true;
                }
                if (user == null)
                {
                    context.SetError("invalid_grant", "The user name or password is incorrect.");
                    return;
                }
            }
            //Buscar las respectivas opciones del usuario para setear las 7 variables de los acceso y enviarlo por el Claim
            PermissionRepository prRepository = new PermissionRepository(new MyRoomDbContext());
            var permisions = prRepository.GetById(idUser).ToList();
            string opcion1 = "",
                opcion2 = "",
                opcion3 = "",
                opcion4 = "",
                opcion5 = "",
                opcion6 = "";
            foreach (var um in permisions)
            {
                if (um.IdPermission.ToString() == "1")
                {
                    opcion1 = "1";
                }
                if (um.IdPermission.ToString() == "2")
                {
                    opcion2 = "2";
                }
                if (um.IdPermission.ToString() == "3")
                {
                    opcion3 = "3";
                }
                if (um.IdPermission.ToString() == "4")
                {
                    opcion4 = "4";
                }
                if (um.IdPermission.ToString() == "5")
                {
                    opcion5 = "5";
                }
                if (um.IdPermission.ToString() == "6")
                {
                    opcion6 = "6";
                }
            }
            var identity = new ClaimsIdentity(context.Options.AuthenticationType);
            identity.AddClaim(new Claim(ClaimTypes.Name, context.UserName));
            identity.AddClaim(new Claim(ClaimTypes.Role, rolName));
            identity.AddClaim(new Claim("role", "user"));
            identity.AddClaim(new Claim("sub", context.UserName));

            var props = new AuthenticationProperties(new Dictionary<string, string>
                {
                    { 
                        "as:client_id", (context.ClientId == null) ? string.Empty : context.ClientId
                    },
                    { 
                        "userName", context.UserName
                    },
                    {
                        "rol", IsAdmins.ToString()
                    },
                    {
                        "opcion1", opcion1
                    },
                    {
                        "opcion2", opcion2
                    },
                    {
                        "opcion3", opcion3
                    },
                    {
                        "opcion4", opcion4
                    },
                    {
                        "opcion5", opcion5
                    },
                    {
                        "opcion6", opcion6
                    }
                });

            var ticket = new AuthenticationTicket(identity, props);
            context.Validated(ticket);

        }
コード例 #38
0
        public IHttpActionResult GetUserPermissions(string userId)
        {
            PermissionRepository permissionRepository = new PermissionRepository(new MyRoomDbContext());           
            return Ok( permissionRepository.GetById(userId));

        }
コード例 #39
0
 private static SelectList GetPermissionLoaded(PermissionRepository permissionRepository, int permissionID = 0)
 {
     return new SelectList(permissionRepository.GetAlls(), dataTextField: nameof(PermissionViewModel.Name), dataValueField: nameof(PermissionViewModel.PermissionID), selectedValue: permissionID);
 }