Moodlemoot Brasil – 2013

 

 

MoodleMoot Brasil 2013

 

23 a 25 de Maio de 2013

  • O MoodleMoot é uma conferência dedicada aos usuários, desenvolvedores e administradores deste ambiente virtual de aprendizagem, chamado Moodle.

    O Moodle é um dos ambientes de aprendizagem de maior aceitação mundial. Sua simplicidade de uso e, ao mesmo tempo, sua grande flexibilidade operacional e de configuração, além de sua capacidade de apresentação em um ambiente construtivista o consagraram em mais de 220 países em todo o mundo, em um total de mais de 72.000 sites, sendo mais de 5.000 somente no Brasil.

    • Patrocínio
      CE@D

.Inscrições: PERÍODO: de 01º/FEV a 23/MAIO/2013 (ou enquanto tiver vagas)

.VALOR: R$ 80,00 (até 14/abril) – R$ 120,00 (a partir de 15/abril)

FAÇA SUA INSCRIÇÃO AGORA !

Lista de participantes no curso Moodle

Lista de participantes no curso Moodle

Versão do Moodle: 2.2.3

Situação: Após criar uma nova função para usuários ( chamada de Role) no Moodle  e alocar usuários manualmente na mesma, a nova função não era exibida no menu de opções do link : Lista de participantes (../moodle/user/index.php?contextid=xx).

Mas se visualizassemos com o perfil de professor na opção : Usuários inscritos (../moodle/enrol/users.php?id=id_curso) o tutor a distância estava lá alocado.

Após verificar item por item das atribuições deste novo papel criado de nome “Tutor a distância” ( que foi herdado do papel : professor) , não identifiquei nada diferente que pudesse estar impedindo tal visualização.

Então parti para a verificação do código fonte exatamente na função : get_profile_roles(context $context)   no arquivo : /moodle/lib/accesslib.php onde pude perceber a seguinte verificação :

if (empty($CFG->profileroles)) {
return array();
}

EUREKA …. sim.. é uma variável global de nome profileroles que é armazenada no banco de dados na tabela mdl_config

A partir daí foi só digitar esta palavrinha mágica na área de busca do menu : Administração do site, conforme figura abaixo:


e verificar que esta configuração esta disponível na seção :

Políticas do site

opção : Papéis visíveis do perfil (profileroles) –  Lista dos papéis que ficarão visíveis nos perfis de usuário e na página de participação  conforme fig. abaixo


Agora já podemos visualizar na Lista de Participantes quem são os Tutores a Distância do curso

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 :