KaiRo bug 375 - Make branding a configuration option
[authserver.git] / app / authutils.php-class
index e76098c5a273d992297d0da07d42639d733e9d3a..d901669320cf86d946e673ee0b7ed43e03ca011a 100755 (executable)
@@ -123,6 +123,10 @@ class AuthUtils {
     $this->settings['piwik_site_id'] = intval(@$this->settings['piwik_site_id']);
     $this->settings['piwik_url'] = strlen(@$this->settings['piwik_url']) ? $this->settings['piwik_url'] : '/piwik/';
     $this->settings['piwik_tracker_path'] = strlen(@$this->settings['piwik_tracker_path']) ? $this->settings['piwik_tracker_path'] : '../vendor/piwik/piwik-php-tracker/';
+    $this->settings['skin'] = (@$this->settings['skin'] && is_dir('skin/'.$this->settings['skin'])) ? $this->settings['skin'] : 'default';
+    $this->settings['operator_name'] = (@$this->settings['operator_name']) ? $this->settings['operator_name'] : 'AuthServer';
+    $this->settings['operator_contact_url'] = (@$this->settings['operator_contact_url']) ? $this->settings['operator_contact_url'] : 'https://github.com/KaiRo_at/authserver/';
+    $this->settings['info_from_email'] = (@$this->settings['info_from_email']) ? $this->settings['info_from_email'] : 'noreply@example.com';
 
     // Initialize database.
     $config = new \Doctrine\DBAL\Configuration();
@@ -252,14 +256,16 @@ class AuthUtils {
       }
       else {
         $utils->log('create_session_failure', 'at login, prev session: '.$session['id'].', new user: '.$userid);
-        $errors[] = _('The session system is not working.').' '._('Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
+        $errors[] = _('The session system is not working.').' '
+                    .sprintf(_('Please <a href="%s">contact %s</a> and tell the team about this.'), $this->settings['operator_contact_url'], $this->settings['operator_name']);
       }
     }
     else {
       $result = $this->db->prepare('UPDATE `auth_sessions` SET `sesskey` = :sesskey, `user` = :userid, `logged_in` = TRUE, `time_expire` = :expire WHERE `id` = :sessid;');
       if (!$result->execute(array(':sesskey' => $sesskey, ':userid' => $userid, ':expire' => gmdate('Y-m-d H:i:s', strtotime('+1 day')), ':sessid' => $session['id']))) {
         $utils->log('login_failure', 'session: '.$session['id'].', user: '.$userid);
-        $errors[] = _('Login failed unexpectedly.').' '._('Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
+        $errors[] = _('Login failed unexpectedly.').' '
+                    .sprintf(_('Please <a href="%s">contact %s</a> and tell the team about this.'), $this->settings['operator_contact_url'], $this->settings['operator_name']);
       }
       else {
         // After update, actually fetch the session row from the DB so we have all values.
@@ -510,12 +516,19 @@ class AuthUtils {
     $style = $head->appendElement('link');
     $style->setAttribute('rel', 'stylesheet');
     $style->setAttribute('href', 'authsystem.css');
+    $style = $head->appendElement('link');
+    $style->setAttribute('rel', 'stylesheet');
+    $style->setAttribute('href', 'skin/'.$settings['skin'].'/authskin.css');
     $head->appendJSFile('authsystem.js');
     if ($settings['piwik_enabled']) {
       $head->setAttribute('data-piwiksite', $settings['piwik_site_id']);
       $head->setAttribute('data-piwikurl', $settings['piwik_url']);
       $head->appendJSFile('piwik.js', true, true);
     }
+    $icon = $head->appendElement('link');
+    $icon->setAttribute('rel', 'shortcut icon');
+    $icon->setAttribute('href', 'skin/'.$settings['skin'].'/icon32.png');
+    $icon->setAttribute('type', 'image/png');
     $title->appendText($titletext);
     $h1 = $body->appendElement('h1', $headlinetext);