From 9d4762c9b5a417580477dbf223beb060059e846c Mon Sep 17 00:00:00 2001
From: Frederic Massart <fred@moodle.com>
Date: Tue, 3 Jun 2014 15:53:57 +0800
Subject: [PATCH] MDL-45808 group: Observe the group key policy upon group
 creation

---
 group/group_form.php                    |    8 ++++++--
 group/tests/behat/create_groups.feature |    5 +++++
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/group/group_form.php b/group/group_form.php
index a7f1556..c29947a 100644
--- a/group/group_form.php
+++ b/group/group_form.php
@@ -132,8 +132,12 @@ class group_form extends moodleform {
         } else if (!empty($idnumber) && groups_get_group_by_idnumber($COURSE->id, $idnumber)) {
             $errors['idnumber']= get_string('idnumbertaken');
         } else if ($data['enrolmentkey'] != '') {
-            // Prevent the same enrolment key from being used multiple times in course groups.
-            if ($DB->record_exists('groups', array('courseid' => $COURSE->id, 'enrolmentkey' => $data['enrolmentkey']))) {
+            $errmsg = '';
+            if (!empty($CFG->groupenrolmentkeypolicy) && !check_password_policy($data['enrolmentkey'], $errmsg)) {
+                // Enforce password policy.
+                $errors['enrolmentkey'] = $errmsg;
+            } else if ($DB->record_exists('groups', array('courseid' => $COURSE->id, 'enrolmentkey' => $data['enrolmentkey']))) {
+                // Prevent the same enrolment key from being used multiple times in course groups.
                 $errors['enrolmentkey'] = get_string('enrolmentkeyalreadyinuse', 'group');
             }
         }
diff --git a/group/tests/behat/create_groups.feature b/group/tests/behat/create_groups.feature
index 505b597..466b7d4 100644
--- a/group/tests/behat/create_groups.feature
+++ b/group/tests/behat/create_groups.feature
@@ -102,6 +102,11 @@ Feature: Organize students into groups
     When I press "Create group"
     And I set the following fields to these values:
       | Group name | Group A |
+      | Enrolment key | badpasswd |
+    And I press "Save changes"
+    And I should see "Passwords must have at least 1 digit(s)"
+    And I set the following fields to these values:
+      | Group name | Group A |
       | Enrolment key | Abcdef-1 |
     And I press "Save changes"
     And I press "Create group"
-- 
1.7.9.5

