Contextos
Há 4 contextos aninhados no Moodle (com nomenclatura já ajustada para a realidade da UFSC):
- Sistema (o Moodle como um todo);
- Cursos UFSC (Categorias de Curso no Moodle);
- Disciplinas/Turmas (Cursos no Moodle);
- Blocos e Atividades.
Papéis
Um papel é uma coleção de permissões. Os papeis podem ser atribuídos a um usuário específico em um contexto específico.
Por exemplo, uma pessoa pode ter o papel "Professor" numa disciplina/turma, de forma que esta pessoa acaba tendo nesta disciplina/turma as permissões definidas por este papel. Se este papel de "Professor" fosse atribuído a esta pessoa no contexto de um Curso UFSC, ela teria as permissões correspondentes em todas as disciplinas/turmas deste Curso.
Permissões
Uma permissão é uma atribuição concedida para uma ação específica. São exemplos de ações:
- Iniciar novas discussões (Fórum)
- Enviar tarefa (Tarefa)
- Visualizar todos os blogs do usuário (Usuário)
- etc.
É possível permitir que um usuário execute uma ação num determinado contexto, mas evitar que ele a execute em um contexto interno. Por exemplo, no contexto de um Curso UFSC um usuário pode ter permissão para ver os participantes das disciplinas/turmas, mas pode-se evitar que este usuário veja os participantes de uma disciplina/turma em particular. Ou, ao contrário, no contexto de um Curso UFSC pode-se impedir um usuário de ver os participantes das disciplinas/turmas, mas permitir esta visualização numa disciplina/turma em particular.
São 4 os tipos de permissões possíveis:
- Herdar: Em geral, esta é a configuração padrão. É uma configuração neutra que significa "use a permissão que o usuário já tiver". Caso um papel que tenha uma permissão deste tipo seja associado a alguém (por exemplo, numa disciplina/turma), então a permissão real que ele terá será a mesma que lhe tenha sido atribuída num contexto de "maior" nível (por exemplo, num Curso UFSC ou no Sistema). Caso nenhuma permissão lhe seja atribuída em nenhum nível, então o usuário não terá a permissão em questão.
- Permitir: Escolhendo esta opção estar-se-á dando permissão explícita para as pessoas às quais o papel seja atribuído. Esta permissão aplica-se ao contexto ao qual o papel é atribuído, mas também a todos os contextos "menores" (internos). Por exemplo, caso seja atribuído o papel de Estudante a uma pessoa no contexto de uma disciplina/turma, então esta pessoa poderá "iniciar novas discussões" em todos fóruns daquela disciplina, exceto nos fóruns onde seja sobreescrita esta permissão por meio de uma nova atribuição de papel que contenha a opção Evitar ou Proibir para esta ação.
- Evitar: Ao escolher esta opção estar-se-á removendo a permissão, mesmo que esta pessoa tenha esta permissão num papel atribuído num contexto "maior".
- Proibir: Esta opção raramente é necessária, mas eventualmente pode-se querer negar completamente permissões de maneira tal que estas permissões não possam ser sobreescritas em qualquer contexto "menor". Um bom exemplo disto é quando se quer proibir uma pessoa de iniciar novas discussões em qualquer fórum em todo o Sistema. Nesse caso pode-se criar um papel com a opção de Proibir para esta ação e então associá-lo àquele usuário no contexto do Sistema.
Na figura ao lado, o "Papel 1" atribui uma permissão do tipo Permitir no contexto do Sistema. Esta permissão vale para todos os contextos "menores" (internos), exceto nos casos em que esta permissão é sobreescrita.
O "Papel 2", por sua vez, Proíbi (cancela) esta permissão no contexto de um curso (e nos contextos "internos") ao qual ele é atribuído. Nesta situação, o "Papel 3" (que procura Permitir a ação) não tem efeito pois a opção Proibir não pode ser sobreescrita.
Já o "Papel 4" visa Evitar a permissão no contexto de um curso. Mas esta ação é novamente Permitida para uma das disciplinas/turmas pelo "Papel 5", o qual, por sua vez, é sobreescrito pelo "Papel 6" que Evita a permissão no contexto de uma atividade ou bloco.
Resolução de Conflitos de permissões
Permissões atribuídas num contexto "menor" em geral sobreescrevem qualquer permissão atribuída num contexto "maior". A exceção é a opção Proibir que não pode ser sobreescrita em níveis "menores".
Se dois papeis distintos, um com a opção Permitir e outro a opção Evitar, são atribuídos a uma pessoa num mesmo contexto, qual ganha? Neste caso, o Moodle buscará nos contextos "acima" informações que lhe permitam decidir.
Por exemplo, suponha que um estudante tenha dois papeis numa disciplina/turma, um do tipo Permitir "iniciar uma discussão" e outro do tipo Evitar. Neste caso, serão analisados o Curso UFSC e o Sistema (os dois contextos "maiores"), com vistas a encontrar uma outra definição de permissão que permita decidir. Se não houver nenhuma definição explícita, então a permissão adotada é a de Evitar (porque as duas atribuições, são mutuamente exclusivas).