Relatorios personalizados desenvolvidos pela comunidade: Difference between revisions

From MoodleDocs
mNo edit summary
Line 21: Line 21:
PostgreSQL
PostgreSQL
<syntaxhighlight lang="sql">
<syntaxhighlight lang="sql">
SELECT DISTINCT LID.USERNAME AS "Usuário", CONCAT (LID.FIRSTNAME,' ',LID.LASTNAME) AS "Nome completo",
SELECT DISTINCT U.USERNAME AS "Usuário", CONCAT (U.FIRSTNAME,' ',U.LASTNAME) AS "Nome completo",
CONCAT('<a target="_new" href="%%WWWROOT%%/user/profile.php?id=',L.USERID,'">Acessar Perfil</a>') AS "Perfil",
CONCAT('<a target="_new" href="%%WWWROOT%%/user/profile.php?id=',L.USERID,'">Acessar Perfil</a>') AS "Perfil",
L.TARGET,
L.TARGET,
L.ACTION
L.ACTION
FROM PREFIX_LOGSTORE_STANDARD_LOG AS L
FROM PREFIX_LOGSTORE_STANDARD_LOG AS L
JOIN PREFIX_USER AS LID ON LID.ID = L.USERID
JOIN PREFIX_USER AS U ON U.ID = L.USERID
WHERE L.ACTION LIKE 'failed'
WHERE L.ACTION LIKE 'failed'
AND L.TARGET LIKE 'user_login'
AND L.TARGET LIKE 'user_login'
AND TO_TIMESTAMP(L.TIMECREATED) >= NOW() - interval '7 days'
AND TO_TIMESTAMP(L.TIMECREATED) >= NOW() - interval '7 days'
AND LID.LASTACCESS = 0
AND U.LASTACCESS = 0
</syntaxhighlight>
</syntaxhighlight>
==== Usuários criados: Contagem por autor do cadastro ====
==== Usuários criados: Contagem por autor do cadastro ====
PostgreSQL
PostgreSQL

Revision as of 11:14, 16 December 2022

Introdução

Relatórios

Relatórios Administrativos

Erros de acesso, motivo: usuário inexistente

O Moodle registra em seu log as tentativas de acesso malsucedidas e este relatório lista, dentro do intervalo de 30 dias, os acessos não concluídos devido a inexistência de cadastro ou erro de preenchimento dos dados de login.

PostgreSQL

SELECT JSON_EXTRACT_PATH_TEXT(OTHER :: JSON,'username') AS USERNAME,
	TO_CHAR(TO_TIMESTAMP(L.TIMECREATED),'DD/MM/YYYY HH:MM') AS DATA
FROM PREFIX_LOGSTORE_STANDARD_LOG AS L
WHERE L.ACTION = 'failed'
	AND L.TARGET = 'user_login'
	AND L.OTHER like '%reason":1%'
	AND TO_TIMESTAMP(L.TIMECREATED) >= NOW() - interval '30 days'
ORDER BY TIMECREATED DESC

Erros de acesso, motivo: senha inválida

Este relatório lista os usuários válidos, que nunca acessaram a plataforma devido a senha inválida. No início de semestre ou cadastro recém realizado, para ações proativas, o suporte poderá agir entrando em contato com o usuário.

PostgreSQL

SELECT DISTINCT U.USERNAME AS "Usuário", CONCAT (U.FIRSTNAME,' ',U.LASTNAME) AS "Nome completo",
	CONCAT('<a target="_new" href="%%WWWROOT%%/user/profile.php?id=',L.USERID,'">Acessar Perfil</a>') AS "Perfil",
	L.TARGET,
	L.ACTION
FROM PREFIX_LOGSTORE_STANDARD_LOG AS L
JOIN PREFIX_USER AS U ON U.ID = L.USERID
WHERE L.ACTION LIKE 'failed'
	AND L.TARGET LIKE 'user_login'
	AND TO_TIMESTAMP(L.TIMECREATED) >= NOW() - interval '7 days'
	AND U.LASTACCESS = 0

Usuários criados: Contagem por autor do cadastro

PostgreSQL

SELECT CONCAT(U2.FIRSTNAME,	' ', U2.LASTNAME) AS "Autor dos cadastros",
	COUNT(DISTINCT U.USERNAME) AS "Usuários criados"
FROM PREFIX_LOGSTORE_STANDARD_LOG AS L
JOIN PREFIX_USER AS U ON U.ID = L.RELATEDUSERID
JOIN PREFIX_USER AS U2 ON U2.ID = L.USERID
WHERE L.ACTION = 'created'
	AND L.TARGET = 'user'
GROUP BY "Autor dos cadastros"
ORDER BY "Usuários criados" DESC

Usuários criados: Últimos 30 dias

PostgreSQL

SELECT U.USERNAME,CONCAT(U.FIRSTNAME,' ',U.LASTNAME) AS "Usuário criado",
		CONCAT(U2.FIRSTNAME,' ',U2.LASTNAME) AS "Autor do cadastro",
		L.ORIGIN,
		TO_CHAR(TO_TIMESTAMP(L.TIMECREATED),'DD/MM/YYYY HH:MM') AS "Data de criação"
FROM PREFIX_LOGSTORE_STANDARD_LOG AS L
JOIN PREFIX_USER AS U ON U.ID = L.RELATEDUSERID
JOIN PREFIX_USER AS U2 ON U2.ID = L.USERID
WHERE L.ACTION = 'created'
	AND L.TARGET = 'user'
	AND TO_TIMESTAMP(L.TIMECREATED) >= NOW() - interval '30 days'
ORDER BY L.TIMECREATED DESC

Anexos: Dicas úteis