Exemple #1
0
        public void Delete()
        {
            Role role = Role.Create();
            role.Name = "test-role-add";
            role.Save();

            Operation targetoperation = new Operation();
            targetoperation.Code = StringFactory.NewGuid();
            targetoperation.AppId = StringFactory.NewGuid();
            targetoperation.TargetId = StringFactory.NewGuid();
            targetoperation.Name = "test-add-RoleTargetOperation";
            targetoperation.Save();

            role.GivePermission(targetoperation);

            Role role1 = Role.GetRoleById(role.Id);
            var roletarget = role1.OperationList;
            Assert.IsNotNull(roletarget);

            Operation operation1 = Operation.GetOperationById(targetoperation.Id);
            operation1.Delete();

            Operation operation2 = Operation.GetOperationById(targetoperation.Id);
            Assert.IsNull(operation2);

            Role role2 = Role.GetRoleById(role.Id);
            var roletarget1 = role2.OperationList;
            Assert.AreEqual(0, roletarget1.Count);

            role.Delete();
        }
Exemple #2
0
 public Operation AddOperation(Operation operation)
 {
     operation.AppId    = this.AppId;
     operation.TargetId = this.Id;
     operation.Save();
     return(operation);
 }
Exemple #3
0
        public void Delete()
        {
            App app = App.Create();
            app.Save();

            //验证Target是否存在
            Target target = Target.Create();
            target.Code = StringFactory.NewGuid();

            app.AddTarget(target);

            App app1 = App.GetApp(app.Key);
            Assert.IsNotNull(app1);
            Assert.AreEqual(1, app1.TargetList.Count);

            Role role = Role.Create();
            role.Name = "test-role-add";
            role.Save();

            Operation targetoperation = new Operation();
            targetoperation.Code = StringFactory.NewGuid();
            targetoperation.AppId = StringFactory.NewGuid();
            targetoperation.TargetId = StringFactory.NewGuid();
            targetoperation.Name = "test-add-RoleTargetOperation";
            targetoperation.Save();

            target.AddOperation(targetoperation);

            Target target1 = Target.GetTargetById(target.Id);
            Assert.IsNotNull(target1.OperationList);

            App app2 = App.GetApp(app1.Key);
            Assert.IsNotNull(app2);

            app2.Delete();

            App app3 = App.GetApp(app1.Key);
            Assert.IsNull(app3);

            Target target2 = Target.GetTargetById(target.Id);
            Assert.IsNull(target2);

            app.Delete();
            app.RemoveTarget(target);
            target.RemoveOperation(targetoperation);
            role.Delete();
            targetoperation.Delete();
        }
Exemple #4
0
        public void TargetOperationList()
        {
            User user = new User();
            user.Name = "test-add-user";
            user.Account = StringFactory.NewGuid();
            user.Save();

            Operation operation = new Operation();
            operation.Code = StringFactory.NewGuid();
            operation.AppId = StringFactory.NewGuid();
            operation.TargetId = StringFactory.NewGuid();
            operation.Name = "test-add-RoleTargetOperation";
            operation.Save();

            User user1 = new User();
            user1.Name = "test-add-user";
            user1.Account = StringFactory.NewGuid();
            user1.Save();

            Role role = Role.Create();
            role.Name = "test-giverole-role";
            role.Save();

            role.GivePermission(operation);
            user.GiveRole(role);

            User user2 = User.GetUser(user.Account);
            Assert.AreEqual(1, user2.OperationList.Count);

            role.Delete();
            user1.CancelRole(role);
            role.CancelPermission(operation);
            operation.Delete();
            user.Delete();
            user1.Delete();
        }
Exemple #5
0
 public Operation AddOperation(Operation operation)
 {
     operation.AppId = this.AppId;
     operation.TargetId = this.Id;
     operation.Save();
     return operation;
 }
Exemple #6
0
 public void Save()
 {
     Operation operation = new Operation();
     operation.Code = StringFactory.NewGuid();
     operation.Save();
     Operation operation1 = Operation.GetOperationById(operation.Id);
     Assert.IsNotNull(operation1);
     operation.Delete();
 }
Exemple #7
0
        /// <summary>
        /// 导入权限清单
        /// </summary>
        /// <param name="targetPettyList">清单对象列表</param>
        public void ImportManifest(List <TargetPetty> targetPettyList)
        {
            lock (ImportLocker)
            {
                //清除数据库中有且清单中没有的 Target
                List <Target> targetList = this.TargetList;
                if (targetList != null)
                {
                    foreach (Target target in targetList)
                    {
                        if (!targetPettyList.Exists(tag => tag.Code == target.Code))
                        {
                            target.Delete();//会级联清除 Operation
                        }
                    }
                }
                //更新或添加清单中的 Target
                foreach (TargetPetty targetPetty in targetPettyList)
                {
                    //保存或更新 Target
                    Target target = Target.GetTarget(this.Key, targetPetty.Code) ?? new Target();
                    Mapper.Clone <TargetPetty, Target>(targetPetty, ref target, new List <string> {
                        "OperationList", "Id", "AppKey"
                    });
                    target.AppId = this.Id;
                    target.Sort  = targetPettyList.Count() - 1 - targetPettyList.IndexOf(targetPetty);
                    target.Save();

                    #region 处理单个 Target 下的 Operation
                    //清除数据库中有且清单中没有的 Operation
                    List <Operation> operationList = target.OperationList;
                    if (operationList != null)
                    {
                        foreach (Operation operation in operationList)
                        {
                            if (!targetPetty.OperationList.Exists(op => op.Code == operation.Code))
                            {
                                operation.AppId    = this.Id;
                                operation.TargetId = target.Id;
                                operation.Delete();
                            }
                        }
                    }
                    //更新或添加清单中的 Operation
                    if (targetPetty.OperationList != null)
                    {
                        foreach (OperationPetty operationPetty in targetPetty.OperationList)
                        {
                            Operation operation = Operation.GetOperation(this.Key,
                                                                         targetPetty.Code,
                                                                         operationPetty.Code)
                                                  ?? new Operation();
                            Mapper.Clone <OperationPetty, Operation>(operationPetty, ref operation, new List <string> {
                                "Id", "AppKey", "TargetCode"
                            });
                            operation.AppId    = this.Id;
                            operation.TargetId = target.Id;
                            operation.Save();
                        }
                    }
                    #endregion
                }
            }
        }
Exemple #8
0
        public void OperationList()
        {
            Role role = Role.Create();
            role.Name = "test-role-add";
            role.IsActive = true;
            role.Save();

            Organization org = Organization.Create();
            org.Code = StringFactory.NewGuid();
            org.Name = "org-test-name";
            org.FullName = "org-test-fullname";
            org.Save();

            Position position = Position.Create();
            position.Code = StringFactory.NewGuid();
            position.OrganizationId = org.Id;
            position.Name = "test-add-Postion";
            position.Save();

            position.GiveRole(role);

            Operation operation = new Operation();
            operation.AppId = StringFactory.NewGuid();
            operation.Code = StringFactory.NewGuid();
            operation.TargetId = StringFactory.NewGuid();
            operation.Save();
            role.GivePermission(operation);

            var position1 = Position.GetPosition(org.Code, position.Code);
            Assert.AreEqual(1, position1.OperationList.Where(op => op.Id == operation.Id).ToList().Count);

            role.CancelPermission(operation);
            operation.Delete();
            position.CancelRole(role);
            position.Delete();
            role.Delete();
            org.Delete();
        }