예제 #1
0
        public Status delete(List <int> roleIDs)
        {
            if (roleIDs.Count == 0)
            {
                return(Status.SUCCESS);
            }

            RoleDAO roleDao = Factory.getInstance <RoleDAO>();

            Role_PermissionDAO          role_PermissionDao = Factory.getInstance <Role_PermissionDAO>();
            Dictionary <string, object> wherelist          = new Dictionary <string, object>();

            foreach (int roleID in roleIDs)
            {
                //获取角色信息
                RoleVO roleVo = roleDao.getOne <RoleVO>(roleID);
                if (roleVo.isIntegrant)//禁止删除系统角色
                {
                    return(Status.PERMISSION_DENIED);
                }
                wherelist.Clear();
                wherelist.Add("roleID", roleID);
                role_PermissionDao.delete(wherelist);
            }

            return(Status.SUCCESS);
        }
예제 #2
0
        /// <summary>
        /// 创建角色
        /// </summary>
        /// <param name="role"></param>
        /// <returns></returns>
        public Status create(CreateRole role)
        {
            if (string.IsNullOrWhiteSpace(role.roleName))
            {
                return(Status.ARGUMENT_ERROR);
            }
            //修正字符串
            role.roleName = role.roleName.Trim();
            //检查长度规范
            if (!checkFormat(role.roleName))
            {
                return(Status.FORMAT_ERROR);
            }

            RoleDAO            roleDao            = Factory.getInstance <RoleDAO>();
            Role_PermissionDAO role_PermissionDao = Factory.getInstance <Role_PermissionDAO>();

            //不允许添加无权限角色
            if (role.permissionIDs == null || role.permissionIDs.Count == 0)
            {
                return(Status.ARGUMENT_ERROR);
            }

            //插入角色
            int roleID = RoleDAO.getID();

            if (roleDao.insert <RoleVO>(
                    new RoleVO {
                roleID = roleID,
                roleName = role.roleName
            }) < 0)
            {
                return(Status.NAME_EXIST);
            }
            //插入角色、权限关联
            Queue <int> role_permissionIDs = new Queue <int>();

            for (int i = 0; i < role.permissionIDs.Count; i++)
            {
                int id = Role_PermissionDAO.getID();
                if (role_PermissionDao.insert <Role_PermissionVO>(
                        new Role_PermissionVO
                {
                    role_permissionID = id,
                    roleID = roleID,
                    permissionID = role.permissionIDs[i]
                }) != 1)
                { //如果失败,,回退
                    while (role_permissionIDs.Count != 0)
                    {
                        id = role_permissionIDs.Dequeue();
                        role_PermissionDao.delete(id);
                    }
                    roleDao.delete(roleID);

                    return(Status.FAILURE);
                }
                role_permissionIDs.Enqueue(id);
            }

            return(Status.SUCCESS);
        }