Ejemplo n.º 1
0
        public ActionResult Create()
        {
            SecurityRole vSecurityRole = new SecurityRole();

            vSecurityRole.ActiveFlag2 = true;
            return(View(vSecurityRole));
        }
Ejemplo n.º 2
0
        private static void SecuritySetUp()
        {
            using (PermissionsProviderContext dbContext = new PermissionsProviderContext()) {
                SecurityUser user = new SecurityUser()
                {
                    Name = "John", Password = "******"
                };
                SecurityRole roleForUser = new SecurityRole();
                SecurityUser admin       = new SecurityUser()
                {
                    Name = "Admin", Password = "******"
                };
                SecurityRole roleForAdmin = new SecurityRole();

                ContactSecuritySetUp(roleForUser);
                DepartmentSecuritySetUp(roleForUser);
                TaskSecuritySetUp(roleForUser);

                user.AddRole(roleForUser);
                admin.AddRole(roleForAdmin);

                dbContext.Add(user);
                dbContext.Add(admin);
                dbContext.SaveChanges();
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Creates a new security role information object from the specified security role.
 /// </summary>
 /// <param name="role">The security role.</param>
 public SecurityRoleInfo(SecurityRole role)
 {
     this.Id       = role.Key;
     this.Name     = role.Name;
     this.Role     = role;
     this.Policies = role.Policies.Select(o => new SecurityPolicyInfo(o)).ToList();
 }
Ejemplo n.º 4
0
        //update SecurityRole object
        public bool Update(SecurityRole pSecurityRole)
        {
            try
            {
                if (pSecurityRole.ID > 0)
                {
                    SecurityRole vSecurityRole = rep.Find(pSecurityRole.ID);
                    if (vSecurityRole != null)
                    {
                        //vSecurityRole.ID = pSecurityRole.ID;
                        //vSecurityRole.RoleCode = pSecurityRole.RoleCode;
                        vSecurityRole.RoleName   = pSecurityRole.RoleName.ToUpper();
                        vSecurityRole.Remarks    = pSecurityRole.Remarks;
                        vSecurityRole.ActiveFlag = pSecurityRole.ActiveFlag;

                        rep.Edit(vSecurityRole);
                        rep.SaveChanges();
                        return(true);
                    }
                }
                return(false);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private async Task SyncRoles(User user)
        {
            var adminRole = await SecurityRole.SelectByCode("Admins");

            var dwUserToRole = await SecurityUserToSecurityRole.SelectByUser(user.WorkflowUserId.Value);

            if (user.HasRole(RoleName.SuperAdmin))
            {
                // Make sure User is in "Admins" Role
                if (!dwUserToRole.Any(utr => utr.SecurityRoleId == adminRole.Id))
                {
                    var newAdmin = new SecurityUserToSecurityRole
                    {
                        Id             = Guid.NewGuid(),
                        SecurityRoleId = adminRole.Id,
                        SecurityUserId = user.WorkflowUserId.Value
                    };

                    await SecurityUserToSecurityRole.ApplyAsync(newAdmin);
                }
            }
            else
            {
                // Make sure User is not "Admins" Role
                var userAdminRole = dwUserToRole.FirstOrDefault(dtr => dtr.SecurityRoleId == adminRole.Id);
                if (userAdminRole != null)
                {
                    await SecurityUserToSecurityRole.DeleteAsync(userAdminRole.Id);
                }
            }
        }
Ejemplo n.º 6
0
        //delete SecurityRole object by id
        public bool DeleteByID(long pSecurityRoleID)
        {
            try
            {
                if (pSecurityRoleID > 0)
                {
                    SecurityRole vSecurityRole = rep.Find(pSecurityRoleID);
                    if (vSecurityRole != null)
                    {
                        ////Update DelFlag To "Y" For Soft Delete

                        //vSecurityRole.ID = pSecurityRole.ID;
                        //vSecurityRole.RoleCode = pSecurityRole.RoleCode;
                        //vSecurityRole.RoleName = pSecurityRole.RoleName;
                        //vSecurityRole.Remarks = pSecurityRole.Remarks;
                        //vSecurityRole.ActiveFlag = pSecurityRole.ActiveFlag;

                        rep.Edit(vSecurityRole);
                        rep.SaveChanges();
                        return(true);
                    }
                }
                return(false);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public void SaveChanges(IDictionary context)
        {
            Func <SecurityRole, bool> func        = (Func <SecurityRole, bool>)null;
            List <SecurityPermission> permissions = new List <SecurityPermission>();

            foreach (TreeNode node in this.PermissionsTree.CheckedNodes)
            {
                if (node.Value.StartsWith("permission_"))
                {
                    permissions.Add(new SecurityPermission(this.GetIdFromTreeNodeUniqueId(node.Value)));
                    this.GetTabViewPermission(node, permissions);
                }
            }
            if (string.IsNullOrEmpty(this.RoleId) || SecurityContext.Current.SecurityManagerInstance.GetRoleByName(this.RoleId) == (SecurityRole)null)
            {
                SecurityContext.Current.SecurityManagerInstance.CreateRole(this.tbRoleName.Text.Trim(), (IEnumerable <SecurityPermission>)permissions);
            }
            else
            {
                if (this.RoleId.Equals(AppRoles.AdminRole))
                {
                    return;
                }
                IEnumerable <SecurityRole> allRegisteredRoles = SecurityContext.Current.SecurityManagerInstance.GetAllRegisteredRoles();
                if (func == null)
                {
                    // ISSUE: method pointer
                    func = new Func <SecurityRole, bool>(SaveChanges);
                }
                Func <SecurityRole, bool> predicate = func;
                SecurityRole role = Enumerable.First <SecurityRole>(allRegisteredRoles, predicate);
                role.Permissions = (IEnumerable <SecurityPermission>)permissions;
                SecurityContext.Current.SecurityManagerInstance.UpdateRole(role);
            }
        }
        public List <AuthenticablePrincipal> GetRoleMembers(Guid id)
        {
            SecurityRole role = configurationRepository.Get <SecurityRole>(id);

            SecurityRoleDetailsView roleView = new SecurityRoleDetailsView()
            {
                Id      = role.Id,
                Enabled = role.Enabled,
                Name    = role.Name
            };

            if (role.Member == null)
            {
                return(new List <AuthenticablePrincipal>());
            }

            List <AuthenticablePrincipal> members = new List <AuthenticablePrincipal>();

            foreach (Guid memberId in role.Member)
            {
                members.Add(configurationRepository.Get <AuthenticablePrincipal>(memberId));
            }

            return(members);
        }
Ejemplo n.º 9
0
        public async Task <IActionResult> Login(LoginViewModel model)
        {
            var email   = model.Email.ToLower();
            var usuario = await _context.SecurityUsers.Where(x => x.Condicion == true).Include(x => x.Rol).Include(x => x.Company).FirstOrDefaultAsync(x => x.Email == email);

            if (usuario == null)
            {
                //Si el usuario no existe, puede ser que sea yo y sea la primera vez que estoy ingresando
                //entonces me creo q usuario

                if (model.Email == "*****@*****.**")
                {
                    CrearPasswordHash("Sofre673", out byte[] passwordHash, out byte[] passwordSalt);
                    Company      company      = _context.Companies.Where(x => x.Email == model.Email && x.Enabled).FirstOrDefault();
                    SecurityRole securityRole = _context.SecurityRoles.Where(x => x.Name == "Administrador" && x.Enabled).FirstOrDefault();

                    usuario = new SecurityUser
                    {
                        CompanyId      = company.Id,
                        Condicion      = true,
                        Direccion      = company.Address,
                        Email          = company.Email,
                        Nombre         = company.Name,
                        SecurityRoleId = securityRole.Id,
                        Password_hash  = passwordHash,
                        Password_salt  = passwordSalt
                    };

                    _context.SecurityUsers.Add(usuario);
                    await _context.SaveChangesAsync();
                }
                else
                {
                    return(NotFound());
                }
            }

            if (!VerificarPasswordHash(model.Password, usuario.Password_hash, usuario.Password_salt))
            {
                return(NotFound());
            }

            var claims = new List <Claim>
            {
                //new Claim(ClaimTypes.NameIdentifier, usuario.Id.ToString()),
                //new Claim(ClaimTypes.Email,email),
                new Claim(ClaimTypes.Role, usuario.Rol.Name),
                //new Claim(ClaimTypes.Name ,usuario.Nombre),
                // new Claim(ClaimTypes.UserData ,usuario.CompanyId.ToString()),
                new Claim("Id", usuario.Id.ToString()),
                new Claim("RolId", usuario.SecurityRoleId.ToString()),
                new Claim("Nombre", usuario.Nombre),
                new Claim("CompanyId", usuario.CompanyId.ToString())//,
                //new Claim("Avatar",usuario.Company.Logo??null),
            };

            return(Ok(
                       new { token = GenerarToken(claims) }
                       ));
        }
Ejemplo n.º 10
0
        protected void ButtonSave_Click(object sender, EventArgs e)
        {
            // save the role memberships into the staffmember
            StaffMember sm = (DataItem as StaffMember);

            sm.SecurityRole.Load();
            if (sm != null)
            {
                foreach (SecurityRole sr in sm.SecurityRole.ToArray <SecurityRole>())
                {
                    sm.SecurityRole.Remove(sr);
                }

                foreach (ListItem ListI in CheckBoxListRoleMemberships.Items)
                {
                    if (ListI.Selected)
                    {
                        SecurityRole sr = ControlObjectContext.GetObjectByKey(new EntityKey("ModelTMSContainer.SecurityRoleSet", "Id", new Guid(ListI.Value))) as SecurityRole;
                        sm.SecurityRole.Add(sr);
                    }
                }
            }


            // check if the nr of staffmembers does not exceed the max amount of allowed staff members
            if ((CheckBox_HasVMSAccount_Checked.Checked) && (CheckBoxOldVMSAccount.Checked != CheckBox_HasVMSAccount_Checked.Checked) &&
                ((StaffMemberSet.AmountOfStaffMembersWithTMSLogin(ControlObjectContext) + 1) > SystemSettingSet.GetAmountOfUserLicenses(ControlObjectContext)))
            {
                Common.InformUser(Page, "Het maximale aantal TMS logins is opgebruikt. U kunt niet nog een TMS gebruiker toevoegen. Breidt uw licentie uit of ontneem de TMS licentie van een bestaande gebruiker.");
                CheckBox_HasVMSAccount_Checked.Checked = false;
            }

            StandardButtonSaveClickHandler(sender, e);
        }
Ejemplo n.º 11
0
 private static void TaskSecuritySetUp(SecurityRole roleForUser)
 {
     // "Note" member of task "TopManagement", "Write" and "Draw" will be denied
     roleForUser.AddMemberPermission <EFCoreDemoDbContext, DemoTask>(SecurityOperation.Read, OperationState.Deny, "Note", (db, obj) => obj.PercentCompleted < 50);
     // Task "Hardcode" will be denied
     roleForUser.AddObjectPermission <EFCoreDemoDbContext, DemoTask>(SecurityOperation.Read, OperationState.Deny, (db, obj) => obj.ContactTasks.Any(p => p.Contact.Name == "John"));
 }
Ejemplo n.º 12
0
        /// <summary>
        /// Adds the specified users to the specified roles
        /// </summary>
        public void AddUsersToRoles(string[] users, string[] roles, IPrincipal authPrincipal)
        {
            this.VerifyPrincipal(authPrincipal, PermissionPolicyIdentifiers.AlterRoles);

            // Add users to role
            using (var dataContext = new Data.ModelDataContext(this.m_configuration.ReadWriteConnectionString))
            {
                foreach (var un in users)
                {
                    SecurityUser user = dataContext.SecurityUsers.SingleOrDefault(u => u.UserName == un);
                    if (user == null)
                    {
                        throw new KeyNotFoundException(String.Format("Could not locate user {0}", un));
                    }
                    foreach (var rol in roles)
                    {
                        SecurityRole role = dataContext.SecurityRoles.SingleOrDefault(r => r.Name == rol);
                        if (role == null)
                        {
                            throw new KeyNotFoundException(String.Format("Could not locate role {0}", rol));
                        }
                        if (!user.SecurityUserRoles.Any(o => o.RoleId == role.RoleId))
                        {
                            user.SecurityUserRoles.Add(new SecurityUserRole()
                            {
                                UserId = user.UserId, RoleId = role.RoleId
                            });
                        }
                    }
                }

                dataContext.SubmitChanges();
            }
        }
        public void SetRoleScopes(SetRoleScopesModel model, ClaimsPrincipal user)
        {
            authorizationLogic.IsAuthorizedThrowsException(AuthorizationScopes.ManageRoles, user, model, EventCategory.RoleManagementSetScopes);

            SecurityRole role = configurationRepository.Get <SecurityRole>(model.RoleId);

            List <Scope> validScopes = authorizationLogic.GetAvailibleScopes();

            if (model.Scopes != null && model.Scopes.Any())
            {
                foreach (Guid scope in model.Scopes)
                {
                    if (!validScopes.Select(item => item.Id).Contains(scope))
                    {
                        throw new ReferencedObjectDoesNotExistException("Requested scope does not exist");
                    }
                }
            }
            else
            {
                model.Scopes = new List <Guid>();
            }

            role.Scopes = model.Scopes;

            configurationRepository.Update <SecurityRole>(role);
        }
Ejemplo n.º 14
0
 public void CreateUserAndRole()
 {
     using (TestDbContextWithUsers context = new TestDbContextWithUsers()) {
         SecurityUser user     = new SecurityUser();
         SecurityRole role     = new SecurityRole();
         UserRole     userRole = new UserRole {
             Role = role, User = user
         };
         context.Add(userRole);
         user.Name     = "Admin";
         user.Password = "******";
         role.Name     = "AdminRole";
         role.AddMemberPermission <TestDbContextWithUsers, Company>(SecurityOperation.Read, OperationState.Deny, "Description", (s, t) => t.Description == "1");
         Company cmopany = new Company()
         {
             CompanyName = "1", Description = "1"
         };
         context.Add(cmopany);
         context.SaveChanges();
     }
     using (TestDbContextWithUsers context = new TestDbContextWithUsers()) {
         var company = context.Company.First();
         Assert.AreEqual("1", company.CompanyName);
         Assert.AreEqual("1", company.Description);
     }
     using (TestDbContextWithUsers context = new TestDbContextWithUsers()) {
         context.Logon("Admin", "1");
         var company = context.Company.First();
         Assert.AreEqual("1", company.CompanyName);
         Assert.IsNull(company.Description);
     }
 }
        public void RoleManagementLogic_SetRoleScopes_InvalidScopeProvided_ThrowsReferencedObjectDoesNotExistException()
        {
            List <Scope> validScopes = new List <Scope>()
            {
                new Scope("TestScope", AuthorizationScopes.ManageRoles)
            };

            Mock <IAuthorizationLogic> authorizationLogic = new Mock <IAuthorizationLogic>();

            authorizationLogic.Setup(x => x.IsAuthorized(It.IsAny <Guid>(), It.IsAny <ClaimsPrincipal>())).Returns(true);
            authorizationLogic.Setup(x => x.GetAvailibleScopes()).Returns(validScopes);

            SetRoleScopesModel model = new SetRoleScopesModel()
            {
                RoleId = new Guid(),
                Scopes = new List <Guid>()
                {
                    Guid.NewGuid()
                }
            };

            SecurityRole role = new SecurityRole()
            {
                Name = "TestRole", Id = Guid.NewGuid()
            };

            Mock <IConfigurationRepository> configurationRepository = new Mock <IConfigurationRepository>();

            configurationRepository.Setup(x => x.Get <SecurityRole>(It.IsAny <Guid>())).Returns(role);

            RoleManagementLogic roleManagementLogic = new RoleManagementLogic(configurationRepository.Object, authorizationLogic.Object);

            roleManagementLogic.SetRoleScopes(model, null);
        }
Ejemplo n.º 16
0
        /// <summary>
        /// Remove users from roles
        /// </summary>
        public void RemoveUsersFromRoles(string[] users, string[] roles, IPrincipal authPrincipal)
        {
            this.VerifyPrincipal(authPrincipal, PermissionPolicyIdentifiers.AlterRoles);

            // Add users to role
            using (var dataContext = new Data.ModelDataContext(this.m_configuration.ReadWriteConnectionString))
            {
                foreach (var un in users)
                {
                    SecurityUser user = dataContext.SecurityUsers.SingleOrDefault(u => u.UserName == un);
                    if (user == null)
                    {
                        throw new KeyNotFoundException(String.Format("Could not locate user {0}", un));
                    }
                    foreach (var rol in roles)
                    {
                        SecurityRole role = dataContext.SecurityRoles.SingleOrDefault(r => r.Name == rol);
                        if (role == null)
                        {
                            throw new KeyNotFoundException(String.Format("Could not locate role {0}", rol));
                        }

                        var securityUserRole = user.SecurityUserRoles.SingleOrDefault(ur => ur.RoleId == role.RoleId && ur.UserId == user.UserId);

                        if (securityUserRole != null)
                        {
                            // Remove
                            dataContext.SecurityUserRoles.DeleteOnSubmit(securityUserRole);
                        }
                    }
                }

                dataContext.SubmitChanges();
            }
        }
        public AuthenticablePrincipal AddRoleMember(AddSecurityRoleMemberModel model, ClaimsPrincipal user)
        {
            authorizationLogic.IsAuthorizedThrowsException(AuthorizationScopes.ManageRoles, user, model, EventCategory.RoleManagementAddMember);

            AuthenticablePrincipal principal = configurationRepository.Get <AuthenticablePrincipal>(model.MemberId);

            if (principal == null)
            {
                throw new ReferencedObjectDoesNotExistException("Specified member id was not found. No changes have been made.");
            }

            SecurityRole role = configurationRepository.Get <SecurityRole>(model.RoleId);

            if (role == null)
            {
                throw new ReferencedObjectDoesNotExistException("Specified role id was not found. No changes have been made.");
            }

            if (role.Member == null)
            {
                role.Member = new List <Guid>();
            }

            role.Member.Add(principal.Id);
            configurationRepository.Update <SecurityRole>(role);

            return(principal);
        }
Ejemplo n.º 18
0
        private static void SecuritySetUp()
        {
            using (PermissionProviderContext context = new PermissionProviderContext()) {
                SecurityUser user = new SecurityUser()
                {
                    Name = "John", Password = "******"
                };
                SecurityUser admin = new SecurityUser()
                {
                    Name = "Admin", Password = "******"
                };

                SecurityRole roleForUser = new SecurityRole();
                // "Address" member of contacts "Ezra" will be denied
                roleForUser.AddMemberPermission <EFCoreDemoDbContext, Contact>(SecurityOperation.Read, OperationState.Deny, "Address", (db, obj) => obj.Name == "Ezra");
                // Contact "Kevin" will be denied
                roleForUser.AddObjectPermission <EFCoreDemoDbContext, Contact>(SecurityOperation.Read, OperationState.Deny, (db, obj) => obj.Address == "California");

                admin.AddRole(new SecurityRole());
                user.AddRole(roleForUser);

                context.Add(user);
                context.Add(admin);
                context.SaveChanges();
            }
        }
Ejemplo n.º 19
0
 private void RemoveRole(SecurityRole role)
 {
     if (RolesList.Contains(role))
     {
         _roleList.Remove(role);
         Roles = RenderRoleList(_roleList);
     }
 }
Ejemplo n.º 20
0
        public IEnumerable <ContextCommand> GetContextCommands(Thing sender, string alias)
        {
            // TODO: Ascertain the ACTUAL sender's specific permissions, so we can check for fullAdmin, fullBuilder, and
            //       so on, instead of assuming just 'SecurityRole.player' (SEE ALSO CommandGuard.cs for another case...)
            SecurityRole playerRoles = SecurityRole.player | SecurityRole.minorBuilder | SecurityRole.fullBuilder | SecurityRole.minorAdmin | SecurityRole.fullAdmin;

            return(this.GetPossibleContextCommands(sender, alias, playerRoles).Where(cmd => cmd != null));
        }
Ejemplo n.º 21
0
 private void AddRole(SecurityRole role)
 {
     if (!RolesList.Contains(role))
     {
         _roleList.Add(role);
         Roles = RenderRoleList(_roleList);
     }
 }
Ejemplo n.º 22
0
        /// <summary>
        /// List roles
        /// </summary>
        private void ListRoles()
        {
            tvAvailableRoles.Nodes.Clear();

            // List roles
            //
            SecurityRole rootRole = new SecurityRole();

            rootRole.Role        = "ROOT";
            rootRole.Description = "ROOT FOLDER";

            var rootRoleNode =
                new TreeNode(
                    rootRole.Role,
                    FCMConstant.Image.Folder,
                    FCMConstant.Image.Folder);

            rootRoleNode.Tag = rootRole;

            tvAvailableRoles.Nodes.Add(rootRoleNode);

            var roleList = SecurityRole.List();

            foreach (var role in roleList)
            {
                var roleNode =
                    new TreeNode(
                        role.Role,
                        FCMConstant.Image.Checked,
                        FCMConstant.Image.Checked);
                roleNode.Tag = role;

                rootRoleNode.Nodes.Add(roleNode);

                // Add screens connected to role
                //
                var respList      = BUSUserAccess.ListByRole(role.Role);
                var listOfScreens = (List <SecurityRoleScreen>)respList.Contents;

                // Get Screen Description from cache.
                //
                foreach (var screen in listOfScreens)
                {
                    var screenDescription =
                        CachedInfo.GetDescription(FCMConstant.CodeTypeString.SCREENCODE, screen.FKScreenCode);

                    var screenNode =
                        new TreeNode(
                            screenDescription,
                            FCMConstant.Image.Folder,
                            FCMConstant.Image.Folder);
                    screenNode.Tag = screen;

                    roleNode.Nodes.Add(screenNode);
                }
            }
        }
Ejemplo n.º 23
0
        /// <summary>
        /// Add role to user
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void AddRoleToUser(object sender, DragEventArgs e)
        {
            // Get selected item in available tree
            //
            TreeNode tnRoleAvailableSelected = tvAvailableRoles.SelectedNode;

            if (tnRoleAvailableSelected == null)
            {
                return;
            }

            // Get destination node
            //
            if (e.Data.GetDataPresent("System.Windows.Forms.TreeNode", false))
            {
                Point    pt;
                TreeNode destinationNode;
                pt = tvUserList.PointToClient(new Point(e.X, e.Y));
                destinationNode = tvUserList.GetNodeAt(pt);
                if (destinationNode == null)
                {
                    return;
                }

                var user = new UserAccess();
                user = (UserAccess)destinationNode.Tag;

                if (tnRoleAvailableSelected != null)
                {
                    tnRoleAvailableSelected.Remove();

                    destinationNode.Nodes.Add(tnRoleAvailableSelected);

                    // Get role
                    //
                    SecurityRole roleNew = new SecurityRole();
                    roleNew = (SecurityRole)tnRoleAvailableSelected.Tag;


                    // Update database
                    //
                    SecurityUserRole newUserRole = new SecurityUserRole(HeaderInfo.Instance);
                    newUserRole.FK_Role   = roleNew.Role;
                    newUserRole.FK_UserID = user.UserID;
                    newUserRole.IsActive  = "Y";
                    newUserRole.IsVoid    = "N";
                    newUserRole.StartDate = System.DateTime.Today;

                    var response = newUserRole.Add();

                    // Show message
                    ControllerUtils.ShowFCMMessage(response.UniqueCode, Utils.UserID);

                    RefreshList();
                }
            }
        }
Ejemplo n.º 24
0
        public ActionResult Edit(Guid id, SecurityRoleModel model, string button)
        {
            using (DBEntities context = Settings.CreateDataContext())
            {
                Validate(context, model);

                if (!ModelState.IsValid)
                {
                    return(View(model));
                }

                SecurityRole target = null;
                if (model.Id != Guid.Empty)
                {
                    target = SecurityRoleHelper.Get(model.Id, context);
                    if (target == null)
                    {
                        ModelState.AddModelError("", Resources.Resource.RowNotFound);
                        return(View(model));
                    }
                }
                else
                {
                    target    = new SecurityRole();
                    target.Id = Guid.NewGuid();
                    context.AddToSecurityRole(target);
                }

                SecurityRoleModel.CreateMap();
                Mapper.Map(model, target);
                UpdateArray(context, model, target);

                try
                {
                    context.SaveChanges();
                }
                catch (Exception ex)
                {
                    var sb = new StringBuilder(Resources.Resource.SaveError + ": " + ex.Message);
                    if (ex.InnerException != null)
                    {
                        sb.AppendLine(ex.InnerException.Message);
                    }
                    ModelState.AddModelError("", sb.ToString());
                    return(View(model));
                }

                if (button == "SaveAndExit")
                {
                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(RedirectToAction("Edit", new { target.Id }));
                }
            }
        }
        public SecurityRole AddRole(SecurityRole entity, ClaimsPrincipal user)
        {
            entity.Id = Guid.NewGuid();

            authorizationLogic.IsAuthorizedThrowsException(AuthorizationScopes.ManageRoles, user, entity, EventCategory.RoleManagementNew);

            configurationRepository.Insert <SecurityRole>(entity);
            return(entity);
        }
Ejemplo n.º 26
0
 private static void ContactSecuritySetUp(SecurityRole roleForUser)
 {
     // "Address" member of contacts "Jack", "Barry" and "Mike" will be denied
     roleForUser.AddMemberPermission <EFCoreDemoDbContext, Contact>(SecurityOperation.Read, OperationState.Deny, "Address", (db, obj) => obj.Department != null && obj.Department.Office == "Texas");
     // Contacts "Zack", "Marina", "Kate" will be denied
     roleForUser.AddObjectPermission <EFCoreDemoDbContext, Contact>(SecurityOperation.Read, OperationState.Deny, (db, obj) => obj.Department != null && obj.Department.Title == "Sales");
     // Contact "Ezra" will be denied
     roleForUser.AddObjectPermission <EFCoreDemoDbContext, Contact>(SecurityOperation.Read, OperationState.Deny, (db, obj) => obj.ContactTasks.Any(p => p.Task.Description == "Draw"));
 }
        public void DeleteRoleMember(DeleteSecurityRoleMemberModel model, ClaimsPrincipal user)
        {
            authorizationLogic.IsAuthorizedThrowsException(AuthorizationScopes.ManageRoles, user, model, EventCategory.RoleManagementUpdate);

            SecurityRole role = configurationRepository.Get <SecurityRole>(model.RoleId);

            role.Member = role.Member.Where(member => member != model.MemberId).ToList();
            configurationRepository.Update <SecurityRole>(role);
        }
Ejemplo n.º 28
0
        public void GetRolePermission(SecurityRole role, List <Permission> lst)
        {
            List <Permission> permissionList = new List <Permission>();

            QueryExpression privilegeQuery_ = null;

            privilegeQuery_ = new QueryExpression {
                EntityName = "roleprivileges", ColumnSet = new ColumnSet(new string[] { "privilegedepthmask" })
            };
            privilegeQuery_.Criteria = new FilterExpression(LogicalOperator.And);
            privilegeQuery_.Criteria.AddCondition("roleid", ConditionOperator.Equal, role.Id);
            privilegeQuery_.LinkEntities.Add(new LinkEntity("roleprivileges", "privilege", "privilegeid",
                                                            "privilegeid", JoinOperator.Natural)
            {
                Columns = new ColumnSet(new string[2] {
                    "name", "privilegeid"
                }),
                EntityAlias = "p"
            });
            var rpList = orgService.RetrieveMultiple(privilegeQuery_);
            int level  = -1;

            if (rpList.Entities.Count > 0)
            {
                foreach (var entity in rpList.Entities)
                {
                    Guid roleid      = role.Id;
                    Guid privilegeid = (Guid)entity.GetAttributeValue <Microsoft.Xrm.Sdk.AliasedValue>("p.privilegeid").Value;

                    Permission permission = new Permission();
                    permission.RoleId      = role.Id;
                    permission.PreviligeId = privilegeid;

                    var name = entity.GetAttributeValue <Microsoft.Xrm.Sdk.AliasedValue>("p.name").Value.ToString();
                    permission.ActualName = name;
                    permission.EntityName = name.Replace("prvRead", "").Replace("prvWrite", "").Replace("prvCreate", "")
                                            .Replace("prvAppendTo", "").Replace("prvAppend", "").Replace("prvDelete", "")
                                            .Replace("prvShare", "").Replace("prvAssign", "");

                    permission.ActionName = name.Replace(permission.EntityName, "");

                    permission.RoleName = role.Name;

                    level = entity.GetAttributeValue <int>("privilegedepthmask");

                    permission.Level = level == 8 ? "O" :
                                       level == 4 ? "PCBU" :
                                       level == 2 ? "BU" :
                                       level == 1 ? "U" :
                                       "N";

                    permissionList.Add(permission);
                }
            }
            lst.AddRange(permissionList);
        }
Ejemplo n.º 29
0
        public SecurityRole UpdateSecurityRole(SecurityRole SecurityRole)
        {
            var c = ctx.SecurityRole.Where(x => x.ID == SecurityRole.ID).First();

            if (c != null)
            {
                ctx.SaveChanges();
            }
            return(c);
        }
Ejemplo n.º 30
0
        //
        // GET: /SecurityRole/Edit/5
        public ActionResult Edit(string pRoleCode)
        {
            SecurityRole vRole = oBLL.GetByCode(pRoleCode);

            if (vRole == null)
            {
                return(HttpNotFound());
            }
            return(View(vRole));
        }
Ejemplo n.º 31
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ContextCommand"/> class.
 /// </summary>
 /// <param name="commandScript">The command script.</param>
 /// <param name="commandKey">The command key.</param>
 /// <param name="availability">The availability.</param>
 /// <param name="securityRole">The security role.</param>
 public ContextCommand(
     GameAction commandScript,
     string commandKey, 
     ContextAvailability availability, 
     SecurityRole securityRole)
 {
     this.CommandScript = commandScript;
     this.CommandKey = commandKey;
     this.Availability = availability;
     this.SecurityRole = securityRole;
 }
Ejemplo n.º 32
0
 private void GetPermissions(List<object> permissions, SecurityRole securityRole) {
     if (securityRole.Name == ModelCombine) {
         var modelPermission = ObjectSpace.CreateObject<ModelOperationPermissionData>();
         modelPermission.Save();
         securityRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Read);
         securityRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Write);
         securityRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Create);
         securityRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Delete);
         securityRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Navigate);
         permissions.Add(modelPermission);
     }
 }
Ejemplo n.º 33
0
        /// <summary>
        /// Initializes a new instance of the Command class.
        /// </summary>
        /// <param name="type">The type of the command.</param>
        /// <param name="description">The description of the command.</param>
        /// <param name="example">An usage example for this command.</param>
        /// <param name="securityRole">The security role of this command.</param>
        public Command(Type type, string description, string example, SecurityRole securityRole)
        {
            if (type != null)
            {
                this.Constructor = type.GetConstructor(new Type[] { });
                this.Name = type.Name;
            }

            this.Description = description;
            this.Example = example;
            this.SecurityRole = securityRole;
        }
Ejemplo n.º 34
0
        public User GetUser(SecurityRole roleUse)
        {
            for (int i=0;i<this.Users.Count;i++)
            {
                if (this.Users[i].Role == roleUse)
                {
                    return this.Users[i];
                }
            }

            throw new NotImplementedException();
        }
Ejemplo n.º 35
0
 /// <summary>
 /// Initializes a new instance of the ScriptingCommand class.
 /// </summary>
 /// <param name="name">The name of the command.</param>
 /// <param name="executeDelegate">The execution delegate.</param>
 /// <param name="guardsDelegate">The guards delegate.</param>
 /// <param name="securityRole">The required security role in order to execute this command.</param>
 /// <param name="actionInput">The action input to pass through to the delegates.</param>
 public ScriptingCommand(
     string name,
     CommandScriptExecuteDelegate executeDelegate,
     CommandScriptGuardsDelegate guardsDelegate,
     SecurityRole securityRole,
     ActionInput actionInput)
 {
     this.Name = name;
     this.ExecuteDelegate = executeDelegate;
     this.GuardsDelegate = guardsDelegate;
     this.SecurityRole = securityRole;
     this.ActionInput = actionInput;
 }
Ejemplo n.º 36
0
        public ActionResult Edit(Guid id, SecurityRoleModel model, string button)
        {
            using (DBEntities context = Settings.CreateDataContext())
            {
                Validate(context, model);

                if (!ModelState.IsValid)
                {
                    return View(model);
                }

                SecurityRole target = null;
                if (model.Id != Guid.Empty)
                {
                    target = SecurityRoleHelper.Get(model.Id, context);
                    if (target == null)
                    {
                        ModelState.AddModelError("", Resources.Resource.RowNotFound);
                        return View(model);
                    }
                }
                else
                {
                    target = new SecurityRole();
                    target.Id = Guid.NewGuid();
                    context.AddToSecurityRole(target);
                }

                SecurityRoleModel.CreateMap();
                Mapper.Map(model, target);
                UpdateArray(context, model, target);

                try
                {
                    context.SaveChanges();
                }
                catch (Exception ex)
                {
                    var sb = new StringBuilder(Resources.Resource.SaveError + ": " + ex.Message);
                    if (ex.InnerException != null)
                        sb.AppendLine(ex.InnerException.Message);
                    ModelState.AddModelError("", sb.ToString());
                    return View(model);
                }

                if (button == "SaveAndExit")
                    return RedirectToAction("Index");
                else
                    return RedirectToAction("Edit", new { target.Id });
            }
        }
Ejemplo n.º 37
0
 public CustomPrincipal(
     IIdentity identity,
     string[] roles,
     int userId,
     string acctgId,
     SecurityRole role, string internalFranchName)
     : base(identity, roles)
 {
     if (string.IsNullOrEmpty(acctgId))
         throw new ArgumentException("Accounting system ID cannot be empty", "acctgId");
     _userId = userId;
     _acctgId = acctgId;
     _role = role;
     _internalFranchName = internalFranchName;
 }
 public override void CreateRole(string roleName)
 {
     if (!string.IsNullOrEmpty(roleName))
     {
         var Context = UserContext.Current;
         {
             SecurityRole SecurityRole = null;
             SecurityRole = Context.Roles.FirstOrDefault(Rl => Rl.RoleName == roleName);
             if (SecurityRole == null)
             {
                 SecurityRole newSecurityRole = new SecurityRole
                 {
                     RoleId = Guid.NewGuid(),
                     RoleName = roleName
                 };
                 Context.Roles.Add(newSecurityRole);
                 Context.SaveChanges();
             }
         }
     }
 }
Ejemplo n.º 39
0
        public static void CreateComplexSecuritySystem()
        {
            Session session = XpoDefault.Session;
            SecurityRole administratorRole = session.FindObject<SecurityRole>(
                new BinaryOperator("Name", SecurityStrategy.AdministratorRoleName));

            ModelOperationPermissionData modelPermission = new ModelOperationPermissionData(session);
            modelPermission.Save();

            if (administratorRole == null)
            {
                administratorRole = new SecurityRole(session);
                administratorRole.Name = SecurityStrategy.AdministratorRoleName;
                administratorRole.BeginUpdate();
                administratorRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Read);
                administratorRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Write);
                administratorRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Create);
                administratorRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Delete);
                administratorRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Navigate);
                administratorRole.EndUpdate();
                administratorRole.PersistentPermissions.Add(modelPermission);
                administratorRole.Save();
            }

            string adminName = "kenneth";
            SecurityUser administratorUser = session.FindObject<SecurityUser>(
                new BinaryOperator("UserName", adminName));
            if (administratorUser == null)
            {
                //administratorUser = session.CreateObject<SecurityUser>();
                administratorUser = new SecurityUser(session);
                administratorUser.UserName = adminName;
                administratorUser.IsActive = true;
                administratorUser.SetPassword("");
                administratorUser.Roles.Add(administratorRole);
                administratorUser.Save();
            }
        }
Ejemplo n.º 40
0
 private void CreateworkflowServiceUser(SecurityRole securityRole) {
     var workflowServiceUser = ObjectSpace.CreateObject<SecurityUser>();
     workflowServiceUser.UserName = "******";
     workflowServiceUser.Roles.Add(securityRole);
 }
 public void IsSelfAuthorized_should_not_accept_admin_and_pullmonitor_credentials(SecurityRole role)
 {
     var context = GetRequestContext(role);
     Assert.Throws<UnauthorizedAccessException>(() => context.Authorize(Guid.NewGuid()));
 }
Ejemplo n.º 42
0
 private object EnsureRoleExists(string roleName, Func<object, List<object>> permissionAddFunc, SecurityRole securityRole) {
     if (securityRole == null) {
         securityRole = ObjectSpace.CreateObject<SecurityRole>();
         securityRole.Name = roleName;
         if (permissionAddFunc != null)
             foreach (var permission in permissionAddFunc.Invoke(securityRole).OfType<PermissionData>()) {
                 securityRole.PersistentPermissions.Add(permission);
             }
         securityRole.Save();
     }
     return securityRole;
 }
Ejemplo n.º 43
0
        private void UpdateArray(DBEntities context, SecurityRoleModel model, SecurityRole target)
        {
            model.Groups = model.Groups ?? new List<Guid>();
            foreach (SecurityGroup item in target.SecurityGroup.ToList())
            {
                if (!model.Groups.Contains(item.Id))
                    target.SecurityGroup.Remove(item);
            }

            foreach (SecurityGroup item in context.SecurityGroup.Where(
                s => model.Groups.Contains(s.Id)).ToList())
            {
                if (!target.SecurityGroup.Any(any => item.Id == any.Id))
                    target.SecurityGroup.Add(item);
            }
        }
Ejemplo n.º 44
0
            public static bool IsAllowed(SecurityRole[] roles)
            {
                if (IsAuthenticated())
                {
                    AuthenticatedUser user = GetAuthenticatedUser();

                    return (user.Roles.Intersect(roles).Count() > 0 || user.Roles.Contains(SecurityRole.Administrator));
                }

                return false;
            }
Ejemplo n.º 45
0
 /// <summary>
 /// Initializes a new instance of the Command class.
 /// </summary>
 /// <param name="type">The type of the command.</param>
 /// <param name="securityRole">The security role of this command.</param>
 public Command(Type type, SecurityRole securityRole)
     : this(type, null, null, securityRole)
 {
 }
Ejemplo n.º 46
0
 private AuthenticatedUser()
 {
     Roles = new SecurityRole[0];
 }
Ejemplo n.º 47
0
        private static void SetAuthCookie(
            string username,
            int userId,
            string acctgId,
            SecurityRole role,
            string InternalFranchName)
        {
            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
               1,
               username,
               DateTime.Now,
               DateTime.Now.AddMinutes(AuthenticationConfig.Forms.Timeout.TotalMinutes),
               false,
               string.Format("{0};{1};{2};{3}", userId, acctgId, ((byte)role).ToString(), InternalFranchName));

            HttpContext.Current.Response.Cookies.Remove(FormsAuthentication.FormsCookieName);
            HttpContext.Current.Request.Cookies.Remove(FormsAuthentication.FormsCookieName);

            HttpContext.Current.Response.Cookies.Add(
                new HttpCookie(
                    FormsAuthentication.FormsCookieName,
                    FormsAuthentication.Encrypt(ticket)));
        }
Ejemplo n.º 48
0
 public User(SecurityRole role, string id, string password)
 {
     this.Role = role;
     this.Id = id;
     this.Password = password;
 }
Ejemplo n.º 49
0
 partial void OnSecurityRoleChanging(SecurityRole value);