From c1314cef340f99fa8b19e776b08df7d1f72c96ae Mon Sep 17 00:00:00 2001
From: Thomas Fradet <t.fradet8@gmail.com>
Date: Thu, 14 Feb 2019 18:31:47 +0100
Subject: [PATCH] maj 19-02-19

---
 CHANGELOG.md                           |  7 +++++++
 README.md                              |  4 +++-
 block_mahara_iena.php                  |  3 ++-
 entity/block_mahara_iena_connexion.php |  2 +-
 mahara_iena_link.php                   | 12 ++++++++++--
 5 files changed, 23 insertions(+), 5 deletions(-)
 create mode 100644 CHANGELOG.md

diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..f905088
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,7 @@
+# 19/02/19
+
+## Création du groupe
+
+Le création d'un groupe Mahara n'envoie plus vers une page Mahara de type "groupe non trouvé".
+
+Le bouton de création manuelle de tous les groupes qui y inscrit également l'enseignenant a maintenant une fenêtre de confirmation afin d'éviter des usages accidentels. Ce bouton était et reste réservé aux enseignants, et pas aux enseignants non éditeurs. 
diff --git a/README.md b/README.md
index bf50ab3..7916341 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@ This plugin is a block that provide a link between a Moodle course and a Mahara
 
 ## Compatibility
 
-MOODLE 3.5
+MOODLE 3.5.4+
 
 Stabilité : expérimental. 
 
@@ -30,6 +30,8 @@ Other : <iena-contact@univ-lorraine.fr>.
 
 ## Activation et paramétrage
 
+Application folder : `mahara_iena`.
+
 __Documentation à préciser :__
 - création du user mahara avec les bons droits pour l'api
 - paramétrage du plugin dans moodle
diff --git a/block_mahara_iena.php b/block_mahara_iena.php
index f450f05..265b64e 100644
--- a/block_mahara_iena.php
+++ b/block_mahara_iena.php
@@ -171,7 +171,8 @@ class block_mahara_iena extends block_base
 			}
 			/* permet à l'enseignant de créer tous les groupes mahara en fonction des groupes moodle existant à un temps t. Ca n'inscrit pas les utilisateurs à part lui. */
 			if ( $has_groups && has_capability('moodle/course:update', $context = context_course::instance($COURSE->id), $USER->id) ) {
-				$this->content->text .= '<a href="'.$CFG->wwwroot . '/blocks/mahara_iena/mahara_iena_groups_all.php?courseid=' . $COURSE->id . '&create_all_groups=1" class="btn btn-block btn-warning iena-btn-big">Créer tous les groupes</a><p class="text-muted">Créer manuellement tous les groupes sur '.$CFG->mahara_alias.' liés à ce cours et s\'y inscrire en tant qu\'enseignant.</p>';
+				$this->content->text .= '<a id="create_all_groups" href="'.$CFG->wwwroot . '/blocks/mahara_iena/mahara_iena_groups_all.php?courseid=' . $COURSE->id . '&create_all_groups=1" class="btn btn-block btn-warning iena-btn-big">Créer tous les groupes</a><p class="text-muted">Créer manuellement tous les groupes sur '.$CFG->mahara_alias.' liés à ce cours et s\'y inscrire en tant qu\'enseignant.</p>';
+				$this->content->text .= "<script>document.getElementById('create_all_groups').onclick = function (e) {e.preventDefault(); var confirm_cr_gr = confirm('ATTENTION ! Voulez-vous vraiment créer manuellement tous les groupes liés à ce cours ET VOUS Y INSCRIRE ? Attention, vous serez inscrit dans tous les groupes. Si vous ne créez pas les groupes, ils seront créé automatiquement la première fois que un des membres de chaque groupe y accèdera. '); if (confirm_cr_gr) { window.location.href = e.target.href; } };</script>";
 				// $this->content->text .= '<a href="'.$CFG->wwwroot . '/blocks/mahara_iena/mahara_iena_groups_all.php?courseid=' . $COURSE->id . '" class="btn btn-block btn-warning iena-btn-big">S\'inscrire dans tous les groupes</a><p class="text-muted">S\'inscrire en tant qu\'enseignant dans tous les groupes '.$CFG->mahara_alias.' liés à ce cours.</p>';
 
 				/* POUR PLUS TARD : liste les groupes moodle liés à mahara qui n'existent plus dans moodle */
diff --git a/entity/block_mahara_iena_connexion.php b/entity/block_mahara_iena_connexion.php
index 232ef1d..5798180 100644
--- a/entity/block_mahara_iena_connexion.php
+++ b/entity/block_mahara_iena_connexion.php
@@ -365,7 +365,7 @@ class block_mahara_iena_connexion
 				$record->mahara_group_id = $res[0]->id;
 				$record->moodle_group_id = $mo_user_group_id;
 				$DB->insert_records('block_mahara_iena', array( 0 => $record ), false);
-				return true;
+				return $res[0]->id;
 			}
 
 		} else {
diff --git a/mahara_iena_link.php b/mahara_iena_link.php
index d6be944..6b491f3 100644
--- a/mahara_iena_link.php
+++ b/mahara_iena_link.php
@@ -34,12 +34,20 @@ if ( $_GET['connect_mahara'] == true ) {
 	
 	$all_right = $connexion->ensure_user_is_mahara_group_member_new($USER, $_GET['mahara_group'], $_GET['moodle_group']);
 
-	if ( ! $all_right ) {
+	if ( $all_right === false  ) {
 		$content .= '<div class="alert alert-danger">Erreur d\'ajout au groupe sur <a href="'.$CFG->base_mahara.'" target="_blank">'.$CFG->base_mahara.'</a>. </div>';
 	} else {	
 		/* connect to mahara and redirect to the mahara group */
 		$mnetauth = get_auth_plugin('mnet');
-		$group_url = "/group/view.php?id=".$_GET['mahara_group'];
+		$ma_group = $_GET['mahara_group'];
+		if ( $ma_group == "" || $ma_group == NULL ) {
+			if ( gettype($all_right) == "integer" ) {
+				$ma_group = $all_right;
+			} else {
+				$content .= '<div class="alert alert-warning">La redirection vers le groupe a échouée, veuillez réessayer. </div>';
+			}
+		}
+		$group_url = "/group/view.php?id=".$ma_group;
 		$url      = $mnetauth->start_jump_session($CFG->iena_mahara, $group_url);
 		if (empty($url)) {
 			$content .= '<div class="alert alert-danger">La connexion a échouée.</div>';
-- 
GitLab