Quais são os níveis de contexto no Moodle?

Se você está programando para o Moodle, você provavelmente precisará entender o que são os context level.

Definido, a partir do Moodle 1.7, em  /moodle/lib/accesslib.php

// context definitions
define(‘CONTEXT_SYSTEM’, 10);
define(‘CONTEXT_USER’, 30);
define(‘CONTEXT_COURSECAT’, 40);
define(‘CONTEXT_COURSE’, 50);
define(‘CONTEXT_MODULE’, 70);
define(‘CONTEXT_BLOCK’, 80);

Por exemplo : na tabela mdl_course_categories temos as categorias de cursos que por sua vez se relaciona com a tabela mdl_context

sendo:

mdl_couse_categories.id = mdl_context.instancedid

onde todas as categorias de cursos encontradas na tabela mdl_context estão com o campo contextlevel=40 (CONTEXT_COURSECAT = contexto de categoria de curso)

Um exemplo de uma consulta que irá retornar todos os estudantes e professores de um curso chamado ‘Matematica’.

roleid = 5 => students  e

roleid =3  =>teachers

SELECT c.id AS id, c.fullname, u.username, u.firstname, u.lastname, u.email
FROM mdl_role_assignments ra, mdl_user u, mdl_course c, mdl_context cxt
WHERE ra.userid = u.id
AND ra.contextid = cxt.id
AND cxt.contextlevel =50
AND cxt.instanceid = c.id
AND c.shortname =’Matematica’
AND (roleid =5 OR roleid=3);

Vejam que neste caso : cxt.contextlevel =50 ou seja apenas contexto de CONTEXT_COURSE

PHP 5.3.1 + Ldap + SSL + Apache + Moodle

Após atualização das versões :

Apache: 2.2.11  para : 2.2.14

PHP : 5.2.8       para: 5.3.1

Moodle : 1.9.6  para: 1.9.7

SO : Windows 2008

A autenticação do Moodle no Ldap (Active Directory ) deixou de funcionar, ou seja, não se conseguia conectar ao servidor do Active Directory para autenticar os usuários.

O Active Directory estava rodando sobre conexão segura (ssl) na porta : 636

Para testar o motivo da não conexão ao Active Directory, fiz um script simples em PHP

<?php

$ip_ad = “ldaps://ip_do_servidor_do AD”;
$user_ad=”esquemauser@nome_dominio”;
$pass_ad = “senha_user_esquemauser”;
$port_ad=”636″;
$dn=”dc=nome_dominio”;

//Conecta ao AD
$ds=ldap_connect($ip_ad ,$port_ad) or die(ldap_error()).”Nâo foi possível conectar ao AD”;

ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
$r=ldap_bind($ds,$user_ad,$pass_ad);

if(!$r)
echo “ERROR”;
else
echo “OK”;

//mostra erros do ldap
ldap_get_option($ds,LDAP_OPT_ERROR_STRING,$error);
echo $error;
?>

onde era obtido o seguinte erro do Ldap :

error:14090086:SSL
routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

após várias consultas ao google consegui localizar o bug do PHP em

http://bugs.php.net/bug.php?id=48866

onde nos diz que temos que simplesmente alterar o caminho do arquivo : ldap.conf

anteriormente era : C:\OpenLDAP\sysconf\ldap.conf

e na versão 5.3 deverá ser em : c:\ldap.conf

e não se esquecer de restartar o Windows ( não basta apenas restartar o apache)

Indico a leitura dos seguintes artigos :

MoodleMoot 2009

Estaremos participando do Moodlemoot 2009 nos dias 13 e 14/11/2009 apresentando dois resumos intitulados :

Integração do Moodle com Sistemas de Gestão Acadêmica Utilizando Base de Dados Externa

Autora: Brugger, Gisele, R, especialista em Administração de Redes Linux, PUC Minas, giselebrugger@gmail.com
Co-autor: Gouveia, Ricardo F., Especialista em Eng. de Telecomunicações (UFMG), Gestor de TI do Colégio Magnum Agostiniano Cidade Nova, ricardogouveia@magnum.com.br.

O uso de plataformas digitais de Ensino a Distancia (EAD) nas Universidades e Escolas de ensino médio e fundamental é uma realidade cada vez mais presente na atualidade. Estas por sua vez já possuem na maioria das vezes um sistema de gestão acadêmica implantado, com todas as informações relativas a cursos, turmas, disciplinas, usuários e matrículas. Nesse contexto, um dos fatores primordiais para o sucesso da implantação do Moodle é a capacidade de importação automática de todas as informações necessárias do sistema de gestão acadêmica, mantendo assim uma sincronização das informações sem a necessidade de interferências manuais, como por exemplo, na criação de cursos e matrículas de alunos e professores. No Colégio Magnum Agostiniano (ensino infantil ao ensino médio), em Belo Horizonte, foi realizada a integração do Moodle com dois sistemas de gestão acadêmica diferentes, sendo que um utiliza a base de dados SQLServer e outro o Access. Para esta integração foi utilizada uma base de dados Mysql intermediária e foram desenvolvidos scripts na linguagem de programação PHP para auxiliarem nas atualizações. Através dos scripts em PHP, que são executados diariamente, criou-se os usuários no Active Directory (AD), onde é feita a autenticação dos mesmos. Utilizando o plugin do Moodle de autenticação para servidor LDAP, replicou-se todos os usuários do AD para o Moodle. Por outro lado, com o plugin do Moodle para inscrição “Base de dados externa”, foi possível controlar a criação dos cursos e as matrículas nos mesmos.

Avaliação de Modelos de Implantação do Moodle em Instituição de Ensino Básico de Minas Gerais

Autor: Gouveia, Ricardo F., Especialista em Eng. de Telecomunicações (UFMG), Gestor de TI do Colégio Magnum Agostiniano Cidade Nova, ricardogouveia@magnum.com.br.
Co-autora: Brugger, Gisele, Consultora de Implantação de Ambientes Virtuais de Aprendizagem, giselebrugger@gmail.com.

O Moodle foi selecionado como o ambiente virtual ideal para o projeto de integração professor-aluno do Colégio Magnum, instituição de ensino básico de renome localizada em Belo Horizonte (MG). Os quesitos que pesaram na escolha foram a sua plataforma em software livre, a base pedagógica de suas funcionalidades interativas, e sua robustez e escalabilidade, apropriadas a uma instituição do porte do Magnum, com mais de quatro mil alunos.
Após a seleção do Moodle para o apoio semipresencial às aulas, iniciou-se o estudo das opções de implantação e integração com os sistemas existentes. Além disso, foram analisadas as abordagens referentes à forma adequada de sensibilização e divulgação da nova opção para os docentes.
Nesta ocasião, a própria participação no MoodleMoot 2008 foi decisiva, bem como a visita em algumas instituições de ensino básico e superior que já utilizavam a plataforma em outros estados.
Os modelos avaliados foram, quanto à integração: totalmente isolado, parcialmente isolado, integrado ao sistema de autenticação de usuários, integrado ao sistema acadêmico, totalmente integrado. Quanto à sensibilização e divulgação: utilização em todas as disciplinas, opcional pela decisão da área pedagógica, opcional pela decisão do docente.
As soluções adequadas à realidade na nossa instituição de ensino foram: a integração total dos sistemas, e a disponibilização como uma plataforma opcional para a utilização do docente.
Este trabalho pretende relatar o detalhamento dos pontos positivos e negativos de cada modelo, bem como os motivos que nos levaram às nossas escolhas, como forma de orientar outras instituições.