MDL-59496 registration: display unregistered warning consistently
authorMarina Glancy <marina@moodle.com>
Fri, 23 Jun 2017 03:25:58 +0000 (11:25 +0800)
committerMarina Glancy <marina@moodle.com>
Mon, 31 Jul 2017 06:29:58 +0000 (14:29 +0800)
admin/registration/index.php
admin/registration/register.php
admin/renderer.php
admin/search.php
lang/en/admin.php
lang/en/deprecated.txt
lang/en/hub.php
message/output/airnotifier/requestaccesskey.php

index 8b33014..b9aeb18 100644 (file)
@@ -181,13 +181,8 @@ if (empty($cancel) and $unregistration and !$confirm) {
     echo $OUTPUT->header();
 
     //check if the site is registered on Moodle.org and display a message about registering on MOOCH
-    $registered = $DB->count_records('registration_hubs', array('huburl' => HUB_MOODLEORGHUBURL, 'confirmed' => 1));
-    if (empty($registered)) {
-        $warningmsg = get_string('registermoochtips', 'hub');
-        $warningmsg .= $renderer->single_button(new moodle_url('register.php', array('huburl' => HUB_MOODLEORGHUBURL
-                    , 'hubname' => 'Moodle.org')), get_string('register', 'admin'));
-        echo $renderer->box($warningmsg, 'buttons mdl-align generalbox adminwarning');
-    }
+    $adminrenderer = $PAGE->get_renderer('core', 'admin');
+    echo $adminrenderer->warn_if_not_registered();
 
     //do not check sesskey if confirm = false because this script is linked into email message
     if (!empty($errormessage)) {
index 895ae5c..43d2e42 100644 (file)
@@ -189,17 +189,19 @@ if (!empty($error)) {
 
 // Some Moodle.org registration explanation.
 if ($huburl == HUB_MOODLEORGHUBURL) {
+    $notificationtype = \core\output\notification::NOTIFY_ERROR;
     if (!empty($registeredhub->token)) {
         if ($registeredhub->timemodified == 0) {
             $registrationmessage = get_string('pleaserefreshregistrationunknown', 'admin');
         } else {
             $lastupdated = userdate($registeredhub->timemodified, get_string('strftimedate', 'langconfig'));
             $registrationmessage = get_string('pleaserefreshregistration', 'admin', $lastupdated);
+            $notificationtype = \core\output\notification::NOTIFY_INFO;
         }
     } else {
         $registrationmessage = get_string('registrationwarning', 'admin');
     }
-    echo $OUTPUT->notification($registrationmessage);
+    echo $OUTPUT->notification($registrationmessage, $notificationtype);
 
     echo $OUTPUT->heading(get_string('registerwithmoodleorg', 'admin'));
     $renderer = $PAGE->get_renderer('core', 'register');
index 2d6c362..f7d1516 100644 (file)
@@ -782,17 +782,36 @@ class core_admin_renderer extends plugin_renderer_base {
 
         if (!$registered) {
 
-            $registerbutton = $this->single_button(new moodle_url('/admin/registration/register.php',
+            if (has_capability('moodle/site:config', context_system::instance())) {
+                $registerbutton = $this->single_button(new moodle_url('/admin/registration/register.php',
                     array('huburl' =>  HUB_MOODLEORGHUBURL, 'hubname' => 'Moodle.org')),
                     get_string('register', 'admin'));
+                $str = 'registrationwarning';
+            } else {
+                $registerbutton = '';
+                $str = 'registrationwarningcontactadmin';
+            }
 
-            return $this->warning( get_string('registrationwarning', 'admin')
-                    . '&nbsp;' . $this->help_icon('registration', 'admin') . $registerbutton );
+            return $this->warning( get_string($str, 'admin')
+                    . '&nbsp;' . $this->help_icon('registration', 'admin') . $registerbutton ,
+                'error alert alert-danger');
         }
 
         return '';
     }
 
+    /**
+     * Return an admin page warning if site is not registered with moodle.org
+     *
+     * @return string
+     */
+    public function warn_if_not_registered() {
+        global $CFG;
+        require_once($CFG->dirroot . '/' . $CFG->admin . '/registration/lib.php');
+        $registrationmanager = new registration_manager();
+        return $this->registration_warning($registrationmanager->get_registeredhub(HUB_MOODLEORGHUBURL) ? true : false);
+    }
+
     /**
      * Helper method to render the information about the available Moodle update
      *
index 7dd8e2c..fb38431 100644 (file)
@@ -38,6 +38,12 @@ if ($data = data_submitted() and confirm_sesskey() and isset($data->action) and
 // to modify them
 echo $OUTPUT->header($focus);
 
+// Display a warning if site is not registered.
+if (empty($query)) {
+    $adminrenderer = $PAGE->get_renderer('core', 'admin');
+    echo $adminrenderer->warn_if_not_registered();
+}
+
 echo $OUTPUT->heading(get_string('administrationsite'));
 
 if ($errormsg !== '') {
index 84e3c02..13267b8 100644 (file)
@@ -944,6 +944,7 @@ $string['registerwithmoodleorg'] = 'Register your site';
 $string['registration'] = 'Registration';
 $string['registration_help'] = 'It is recommended that you register your site in order to receive security alerts and access to Moodle.net, our course sharing platform.';
 $string['registrationwarning'] = 'Your site is not yet registered.';
+$string['registrationwarningcontactadmin'] = 'Your site is not yet registered. Please notify your administrator.';
 $string['releasenoteslink'] = 'For information about this version of Moodle, please see the online <a target="_blank" href="{$a}">Release Notes</a>';
 $string['rememberusername'] = 'Remember username';
 $string['rememberusername_desc'] = 'Enable if you want to store permanent cookies with usernames during user login. Permanent cookies may be considered a privacy issue if used without consent.';
index bbdb91a..55a0e70 100644 (file)
@@ -60,3 +60,4 @@ error:badjson,core_badges
 error:backpackloginfailed,core_badges
 signinwithyouremail,core_badges
 sectionusedefaultname,core
+registermoochtips,core_hub
index 3bf13d5..0d168b8 100644 (file)
@@ -164,7 +164,6 @@ $string['registeredmoodleorg'] = 'Moodle ({$a})';
 $string['registeredon'] = 'Where your site is registered';
 $string['registereduserdevices'] = 'Number of users with registered mobile devices ({$a})';
 $string['registeredactiveuserdevices'] = 'Number of active users with registered mobile devices which are receiving notifications ({$a})';
-$string['registermoochtips'] = 'Register your site with Moodle to get security alerts and access to Moodle.net, our course sharing platform.';
 $string['registersite'] = 'Register with {$a}';
 $string['registerwith'] = 'Register with a hub';
 $string['registrationconfirmed'] = 'Site registration confirmed';
@@ -268,3 +267,6 @@ $string['wrongurlformat'] = 'Bad URL format';
 $string['xmlrpcdisabledcommunity'] = 'The XML-RPC extension is not enabled on the server. You can not search and download courses.';
 $string['xmlrpcdisabledpublish'] = 'The XML-RPC extension is not enabled on the server. You can not publish courses or manage published courses.';
 $string['xmlrpcdisabledregistration'] = 'The XML-RPC extension is not enabled on the server. You will not be able to unregister or update your registration until you enable it.';
+
+// Deprecated since Moodle 3.4.
+$string['registermoochtips'] = 'Register your site with Moodle to get security alerts and access to Moodle.net, our course sharing platform.';
index 0b5ff28..3d1991f 100644 (file)
@@ -23,7 +23,6 @@
  */
 
 require('../../../config.php');
-require_once($CFG->dirroot . '/' . $CFG->admin . '/registration/lib.php');
 
 define('AIRNOTIFIER_PUBLICURL', 'https://messages.moodle.net');
 
@@ -50,10 +49,10 @@ $msg = "";
 // If we are requesting a key to the official message system, verify first that this site is registered.
 // This check is also done in Airnotifier.
 if (strpos($CFG->airnotifierurl, AIRNOTIFIER_PUBLICURL) !== false ) {
-    $registrationmanager = new registration_manager();
-    if (!$registrationmanager->get_registeredhub(HUB_MOODLEORGHUBURL)) {
-        $msg = get_string('sitemustberegistered', 'message_airnotifier');
-        $msg .= $OUTPUT->continue_button($returl);
+    $adminrenderer = $PAGE->get_renderer('core', 'admin');
+    $msg = $adminrenderer->warn_if_not_registered();
+    if ($msg) {
+        $msg .= html_writer::div(get_string('sitemustberegistered', 'message_airnotifier'));
 
         echo $OUTPUT->header();
         echo $OUTPUT->box($msg, 'generalbox');