def SaveRoleModuleScope(request):
    try:
        targetRoleId = request.POST['targetRoleId']
    except:
        targetRoleId = None

    try:
        moduleIds = request.POST['moduleIds']
    except:
        moduleIds = None

    response = HttpResponse()

    if not targetRoleId:
        response.content = json.dumps({'Success': True, 'Data': '-1', 'Message': '角色主键为空!'})
        return response

    try:
        tmpModuleIds = RolePermission.GetScopeModuleIdsByRoleId(None, targetRoleId, "Resource.ManagePermission")

        if not moduleIds:
            if tmpModuleIds and len(tmpModuleIds) > 0:
                RolePermission.RevokeRoleModuleScope(None, targetRoleId, "Resource.ManagePermission", tmpModuleIds)
        else:

            #revokeIds = list(set(tmpRoleIds) ^ set(str(roleIds).split(',')))
            revokeIds = []
            for r in tmpModuleIds:
                if r not in moduleIds:
                    revokeIds.append(r)

            #grantIds = list(set(str(roleIds).split(',')) ^ set(tmpRoleIds))
            grantIds = []
            for g in str(moduleIds).split(','):
                if g not in tmpModuleIds:
                    grantIds.append(g)

            if len(grantIds) > 0:
                RolePermission.GrantRoleModuleScope(CommonUtils.Current(response, request), targetRoleId, "Resource.ManagePermission", grantIds)

            if len(revokeIds) > 0:
                RolePermission.RevokeRoleModuleScope(None, targetRoleId, "Resource.ManagePermission", revokeIds)
        response.content = json.dumps({'Success': True, 'Data': '1', 'Message': "授权成功!"})
        return response
    except:
        response.content = json.dumps({'Success': False, 'Data': '-2', 'Message': '操作失败!'})
        return response
def SetRoleModulePermission(request):

    try:
        roleId = request.POST['roleId']
    except:
        roleId = None

    try:
        grantIds = request.POST['grantIds']
    except:
        grantIds = None

    try:
        revokeIds = request.POST['revokeIds']
    except:
        revokeIds = None

    response = HttpResponse()
    vUser = CommonUtils.Current(response, request)

    if not roleId:
        response.content = json.dumps({
            'Success': False,
            'Data': '0',
            'Message': '请选择相应的角色!'
        })
        return response

    successFlag = 0

    if grantIds and (grantIds != ','):
        arrayGrantIds = str(grantIds).strip(',').split(',')
        if len(arrayGrantIds) > 0:
            successFlag = successFlag + RolePermission.GrantRoleModuleScope(
                vUser, roleId, "Resource.AccessPermission", arrayGrantIds)
        else:
            successFlag = 1

    if revokeIds and (revokeIds != ','):
        arrayRevokeIds = str(revokeIds).strip(',').split(',')
        if len(arrayRevokeIds) > 0:
            successFlag = successFlag + RolePermission.RevokeRoleModuleScope(
                None, roleId, "Resource.AccessPermission", arrayRevokeIds)
        else:
            successFlag = 1

    if successFlag > 0:
        successFlag = 1
        response.content = json.dumps({
            'Success': True,
            'Data': '1',
            'Message': '操作成功!'
        })
        return response
    else:
        response.content = json.dumps({
            'Success': False,
            'Data': '0',
            'Message': '操作失败!'
        })
        return response