Recupere, crie, atualize e exclua funções personalizadas de usuário com permissões granulares.


Funções Personalizadas

As funções personalizadas no Blue permitem que você defina conjuntos de permissões precisos adaptados às necessidades da sua equipe. Além dos níveis de acesso padrão (PROPRIETÁRIO, ADMINISTRADOR, MEMBRO, etc.), as funções personalizadas fornecem controle granular sobre o que os usuários podem ver e fazer dentro dos projetos.

Exemplo Básico - Listar Funções Personalizadas

Recupere todas as funções personalizadas para um projeto:

query GetProjectRoles {
  projectUserRoles(filter: { projectId: "web-redesign" }) {
    id
    name
    description
    allowInviteOthers
    canDeleteRecords
  }
}

Exemplo Avançado - Criar Função Personalizada

Crie uma função de contratante com permissões específicas:

mutation CreateContractorRole {
  createProjectUserRole(
    input: {
      projectId: "web-redesign"
      name: "External Contractor"
      description: "Limited access for external contractors"
      allowInviteOthers: false
      allowMarkRecordsAsDone: true
      canDeleteRecords: false
      showOnlyAssignedTodos: true
      isActivityEnabled: true
      isFormsEnabled: false
      isWikiEnabled: true
      isChatEnabled: false
      isDocsEnabled: true
      isFilesEnabled: true
      isRecordsEnabled: true
      isPeopleEnabled: false
    }
  ) {
    id
    name
  }
}

Operações Disponíveis

Consulta: projectUserRoles

Recupere todas as funções personalizadas para um projeto.

Parâmetros de Entrada

Parâmetro Tipo Obrigatório Descrição
filter.projectId String Não ID ou slug do projeto (se não fornecido, retorna funções para todos os projetos acessíveis)

Mutação: createProjectUserRole

Crie uma nova função personalizada com permissões específicas.

Parâmetros de Entrada

Parâmetro Tipo Obrigatório Descrição
projectId String! ✅ Sim ID ou slug do projeto
name String! ✅ Sim Nome da função
description String Não Descrição da função
Permission Flags
allowInviteOthers Boolean Não Pode convidar novos usuários (padrão: falso)
allowMarkRecordsAsDone Boolean Não Pode completar tarefas (padrão: falso)
canDeleteRecords Boolean Não Pode excluir registros (padrão: verdadeiro)
Feature Access
isActivityEnabled Boolean Não Acesso à seção de Atividade (padrão: verdadeiro)
isChatEnabled Boolean Não Acesso ao Chat (padrão: verdadeiro)
isDocsEnabled Boolean Não Acesso a Docs (padrão: verdadeiro)
isFilesEnabled Boolean Não Acesso a Arquivos (padrão: verdadeiro)
isFormsEnabled Boolean Não Acesso a Formulários (padrão: verdadeiro)
isWikiEnabled Boolean Não Acesso ao Wiki (padrão: verdadeiro)
isRecordsEnabled Boolean Não Acesso a Registros (padrão: verdadeiro)
isPeopleEnabled Boolean Não Acesso à seção de Pessoas (padrão: verdadeiro)
Visibility Settings
showOnlyAssignedTodos Boolean Não Somente ver tarefas atribuídas (padrão: falso)
showOnlyMentionedComments Boolean Não Somente ver comentários mencionados (padrão: falso)

Mutação: updateProjectUserRole

Atualize uma função personalizada existente.

Parâmetros de Entrada

Mesmos que createProjectUserRole, além de:

Parâmetro Tipo Obrigatório Descrição
roleId String! ✅ Sim ID da função a ser atualizada

Mutação: deleteProjectUserRole

Exclua uma função personalizada.

Parâmetros de Entrada

Parâmetro Tipo Obrigatório Descrição
roleId String! ✅ Sim ID da função a ser excluída
projectId String! ✅ Sim ID ou slug do projeto

Campos de Resposta

Objeto ProjectUserRole

Campo Tipo Descrição
id String! Identificador único da função
name String! Nome da função
description String Descrição da função
createdAt DateTime! Timestamp de criação
updatedAt DateTime! Timestamp da última atualização
Permissions
allowInviteOthers Boolean! Pode convidar usuários
allowMarkRecordsAsDone Boolean! Pode completar tarefas
canDeleteRecords Boolean! Pode excluir registros
Feature Flags
isActivityEnabled Boolean! Acesso à seção de Atividade
isChatEnabled Boolean! Acesso ao Chat
isDocsEnabled Boolean! Acesso a Docs
isFilesEnabled Boolean! Acesso a Arquivos
isFormsEnabled Boolean! Acesso a Formulários
isWikiEnabled Boolean! Acesso ao Wiki
isRecordsEnabled Boolean! Acesso a Registros
isPeopleEnabled Boolean! Acesso à seção de Pessoas
Visibility
showOnlyAssignedTodos Boolean! Filtro de visibilidade de tarefas
showOnlyMentionedComments Boolean! Filtro de visibilidade de comentários

Permissões Necessárias

Operação Permissão Necessária
projectUserRoles Any project member
createProjectUserRole Project OWNER or ADMIN
updateProjectUserRole Project OWNER or ADMIN
deleteProjectUserRole Project OWNER or ADMIN

Respostas de Erro

Permissões Insuficientes

{
  "errors": [{
    "message": "You don't have permission to manage custom roles",
    "extensions": {
      "code": "UNAUTHORIZED"
    }
  }]
}

Função Não Encontrada

{
  "errors": [{
    "message": "Custom role not found",
    "extensions": {
      "code": "PROJECT_USER_ROLE_NOT_FOUND"
    }
  }]
}

Limite de Funções Atingido

{
  "errors": [{
    "message": "Project user role limit reached.",
    "extensions": {
      "code": "PROJECT_USER_ROLE_LIMIT"
    }
  }]
}

Notas Importantes

  • Permissões Padrão: Ao criar funções, permissões booleanas não especificadas têm como padrão o valor falso, exceto para canDeleteRecords, que tem como padrão o valor verdadeiro.
  • Atribuição de Funções: Atribua funções personalizadas definindo accessLevel: MEMBER e fornecendo roleId na mutação inviteUser.
  • Hierarquia: Funções personalizadas são tratadas como nível de MEMBRO para fins de hierarquia.
  • Limites de Funções: Cada projeto pode ter um máximo de 20 funções personalizadas.
  • Acesso a Recursos: As flags de recursos controlam o acesso a seções inteiras da aplicação.

Casos de Uso

Função de Contratante

{
  name: "Contractor",
  allowInviteOthers: false,
  canDeleteRecords: false,
  showOnlyAssignedTodos: true,
  isActivityEnabled: true,
  isChatEnabled: false,
  isPeopleEnabled: false
}

Líder de Departamento

{
  name: "Department Lead",
  allowInviteOthers: true,
  allowMarkRecordsAsDone: true,
  canDeleteRecords: true,
  isActivityEnabled: true,
  isWikiEnabled: true,
  isPeopleEnabled: true
}

Observador Somente Leitura

{
  name: "Observer",
  allowMarkRecordsAsDone: false,
  canDeleteRecords: false,
  allowInviteOthers: false,
  showOnlyMentionedComments: true,
  isFormsEnabled: false
}

Operações Relacionadas

Assistente de IA

As respostas são geradas usando IA e podem conter erros.

Como posso ajudá-lo?

Pergunte-me qualquer coisa sobre o Blue ou esta documentação.

Digite para enviar • Shift+Enter para nova linha • ⌘I para abrir