use custom function to generate a very basic random string
authorDan Marsden <dan@danmarsden.com>
Fri, 28 Apr 2017 04:17:09 +0000 (16:17 +1200)
committerDan Marsden <dan@danmarsden.com>
Fri, 28 Apr 2017 04:19:02 +0000 (16:19 +1200)
to use as password.

locallib.php
sessions.php

index 5bf963d..b78fd45 100644 (file)
@@ -354,4 +354,24 @@ function attendance_update_status($status, $acronym, $description, $grade, $visi
     }
     $event->add_record_snapshot('attendance_statuses', $status);
     $event->trigger();
+}
+
+/**
+ * Similar to core random_string function but only lowercase letters.
+ * designed to make it relatively easy to provide a simple password in class.
+ *
+ * @param int $length The length of the string to be created.
+ * @return string
+ */
+function attendance_random_string($length=6) {
+    $randombytes = random_bytes_emulate($length);
+    $pool = 'abcdefghijklmnopqrstuvwxyz';
+    $pool .= '0123456789';
+    $poollen = strlen($pool);
+    $string = '';
+    for ($i = 0; $i < $length; $i++) {
+        $rand = ord($randombytes[$i]);
+        $string .= substr($pool, ($rand%($poollen)), 1);
+    }
+    return $string;
 }
\ No newline at end of file
index 6208b40..836dc50 100644 (file)
@@ -273,7 +273,7 @@ function construct_sessions_data_for_add($formdata) {
                     if (isset($formdata->studentscanmark)) { // Students will be able to mark their own attendance.
                         $sess->studentscanmark = 1;
                         if (!empty($formdata->randompassword)) {
-                            $sess->studentpassword = random_string(5);
+                            $sess->studentpassword = attendance_random_string();
                         } else {
                             $sess->studentpassword = $formdata->studentpassword;
                         }
@@ -305,7 +305,7 @@ function construct_sessions_data_for_add($formdata) {
             // Students will be able to mark their own attendance.
             $sess->studentscanmark = 1;
             if (!empty($formdata->randompassword)) {
-                $sess->studentpassword = random_string(5);
+                $sess->studentpassword = attendance_random_string();
             } else {
                 $sess->studentpassword = $formdata->studentpassword;
             }