Add X.org settings to the blog.
authorFlorent Bruneau <florent.bruneau@polytechnique.org>
Sat, 31 May 2008 19:29:46 +0000 (21:29 +0200)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Sat, 31 May 2008 19:29:46 +0000 (21:29 +0200)
Signed-off-by: Florent Bruneau <florent.bruneau@polytechnique.org>
_admin.php
class.xorg.auth.php

index faf3d83..0da0d37 100644 (file)
@@ -14,4 +14,45 @@ $core->addBehavior('adminBeforePostUpdate', array('xorgPostPermsWidget', 'behavi
 /* Stuff to set user preferences about post permissions */
 $core->addBehavior('adminPreferencesForm', array('xorgPostPermsWidget', 'behavior_adminPreferencesForm'));
 $core->addBehavior('adminBeforeUserUpdate', array('xorgPostPermsWidget', 'behavior_adminBeforeUserUpdate'));
+
+
+/* Declare the form to assign the ownership of the blog */
+$core->addBehavior('adminBlogPreferencesForm', array('xorgBlogOwnerWidget', 'behavior_adminBlogPreferencesForm'));
+$core->addBehavior('adminBeforeBlogSettingsUpdate', array('xorgBlogOwnerWidget', 'behavior_adminBeforeBlogSettingsUpdate'));
+
+class xorgBlogOwnerWidget {
+  public static function behavior_adminBlogPreferencesForm(&$core) {
+    if ($core->auth->isSuperAdmin()) {
+      $types = array('user' => array('text' => 'Blog d\'utilisateur',
+                                     'selected' => false),
+                     'group-member' => array('text' => 'Blog de groupe, édition par les membres',
+                                      'selected' => false),
+                     'group-admin' => array('text' => 'Blog de groupe, édition par les administrateurs',
+                                            'selected' => false));
+      $type = $core->blog->settings->get('xorg_blog_type');
+      if (!$type) {
+        $type = 'user';
+      }
+      $types[$type]['selected'] = true;
+      echo '<fieldset><legend>Authentification X.org</legend><div class="two-cols"><div class="col">';
+      echo '<p><label>Type de blog&nbsp;:'
+         . '<select name="xorg_blog_type">';
+      foreach ($types as $key => $fields) {
+        echo '<option value="' . $key . '"' . ($fields['selected'] ? ' selected="selected"' : '') . '>'
+           . $fields['text'] . '</option>';
+      }
+      echo '</select></label></p></div>';
+      echo '<div class="col"><p><label>Propriétaire du blog (*)&nbsp;:<input type="text" name="xorg_blog_owner" value="' . $core->blog->settings->get('xorg_blog_owner') . '" /></label></p>';
+      echo '<p><label>(*) Dans le cas d\'un blog de groupe, le propriétaire est le diminutif X.net du groupe<br />(*) Dans le cas d\'un blog d\'utilisateur, le propriétaire est le forlife de l\'utilisateur</label></p></div></div></fieldset>';
+    }
+  }
+
+  public static function behavior_adminBeforeBlogSettingsUpdate(&$settings) {
+    global $core;
+    if ($core->auth->isSuperAdmin()) {
+      $settings->put('xorg_blog_type', $_POST['xorg_blog_type'], 'string', 'Type de blog X.org');
+      $settings->put('xorg_blog_owner', $_POST['xorg_blog_owner'], 'string', 'Propriétaire X.org du blog');
+    }
+  }
+}
 ?>
index e284f1a..a13bd5a 100644 (file)
@@ -170,11 +170,11 @@ class xorgAuth extends dcAuth {
     $this->buildFromSession();
     return parent::getOption($n);
   }
-/*
+
   public function isSuperAdmin() {
     return parent::isSuperAdmin() || ($this->user_id == 'florent.bruneau.2003');
   }
-*/
+
   public function getOptions() {
     $this->buildFromSession();
     return parent::getOptions();