[Hiki-dev:01056] 非管理者によるページの削除

Back to archive index

hadai hadai****@hadai*****
2005年 10月 27日 (木) 01:26:24 JST


ご無沙汰しております。hadai です。

現在の実装では、管理者用パスワードが設定されている場合に
非管理者によるページ削除ができませんが、削除の可否を選択するようにした
パッチを作りました。
#とりあえず日本語にしか対応していません。

ニーズがあれば使って頂きたいと思います。
よろしくお願いします。

RCS file: /cvsroot/hiki/hiki/hikiconf.rb.sample,v
retrieving revision 1.12
diff -u -r1.12 hikiconf.rb.sample
--- hikiconf.rb.sample  28 Jul 2005 15:05:30 -0000      1.12
+++ hikiconf.rb.sample  26 Oct 2005 16:06:58 -0000
@@ -47,6 +47,10 @@
 #   更新内容を送信するメールアドレス
 @mail            = 'hoge****@examp*****'

+# 非管理者によるページの削除
+# trueにすると非管理者でもページが削除できるようになります。
+ @ non_admin_remove = false
+
 # テーマ
 #   使用するテーマ
 @theme           = 'hiki'

RCS file: /cvsroot/hiki/hiki/hiki/command.rb,v
retrieving revision 1.75
diff -u -r1.75 command.rb
--- hiki/command.rb     13 Sep 2005 08:57:46 -0000      1.75
+++ hiki/command.rb     26 Oct 2005 15:57:22 -0000
@@ -340,7 +340,7 @@
     def cmd_save( page, text, md5hex, update_timestamp = true )
       raise PermissionError if @session_id && @session_id !=
@cgi.params['session_id'][0]
       subject = ''
-      if text.size == 0 && @plugin.admin?
+      if text.size == 0 && (@plugin.admin? || @conf.non_admin_remove)
         @db.delete( page )
         @plugin.delete_proc
         data             = get_common_data( @db, @plugin, @conf )

RCS file: /cvsroot/hiki/hiki/hiki/config.rb,v
retrieving revision 1.97
diff -u -r1.97 config.rb
--- hiki/config.rb      25 Oct 2005 02:51:48 -0000      1.97
+++ hiki/config.rb      26 Oct 2005 15:57:22 -0000
@@ -134,6 +134,7 @@
       @site_name     ||= 'Hiki'
       @author_name   ||= ''
       @mail_on_update||= false
+      @non_admin_remove||= false
       @mail          ||= ''
       @theme         ||= 'hiki'
       @theme_url     ||= 'theme'
@@ -200,7 +201,7 @@

       variables = [:site_name, :author_name, :mail, :theme, :password,
                    :theme_url, :sidebar_class, :main_class, :theme_path,
-                   :mail_on_update, :use_sidebar, :auto_link,
:use_wikiname,
+                   :mail_on_update, :non_admin_remove, :use_sidebar,
:auto_link, :use_wikiname,
                    :xmlrpc_enabled, :options2]
       begin
         cgi_conf = File::open( @config_file ){|f| f.read }.untaint

RCS file: /cvsroot/hiki/hiki/plugin/00default.rb,v
retrieving revision 1.52
diff -u -r1.52 00default.rb
--- plugin/00default.rb 30 Sep 2005 11:45:49 -0000      1.52
+++ plugin/00default.rb 26 Oct 2005 15:57:22 -0000
@@ -229,6 +229,7 @@
     @conf.author_name =****@cgi*****['author_name'][0]
     @conf.mail =****@cgi*****['mail'][0]
     @conf.mail_on_update =****@cgi*****['mail_on_update'][0] == "true"
+    @conf.non_admin_remove =****@cgi*****['non_admin_remove'][0] == "true"
   end
 end

RCS file: /cvsroot/hiki/hiki/plugin/ja/00default.rb,v
retrieving revision 1.9
diff -u -r1.9 00default.rb
--- plugin/ja/00default.rb      28 Jul 2005 15:05:31 -0000      1.9
+++ plugin/ja/00default.rb      26 Oct 2005 15:57:22 -0000
@@ -19,6 +19,12 @@
          <option value="true"#{@conf.mail_on_update ? ' selected' :
''}>メール で通知</option>
          <option value="false"#{@conf.mail_on_update ? '' : '
selected'}>非通知</option>
          </select></p>
+      <h3 class="subtitle">非管理者によるページの削除</h3>
+      <p>管理者用パスワードが設定されている場合に非管理者によるページの
削除が行なえるか指定します。</p>
+      <p><select name="non_admin_remove">
+         <option value="false"#{@conf.non_admin_remove ? '' : '
selected'}>削除不可能</option>
+         <option value="true"#{@conf.non_admin_remove ? ' selected' :
''}>削除可能</option>
+         </select></p>
   HTML
 end

RCS file: /cvsroot/hiki/hiki/template/hiki.conf,v
retrieving revision 1.4
diff -u -r1.4 hiki.conf
--- template/hiki.conf  28 Jul 2005 15:05:31 -0000      1.4
+++ template/hiki.conf  26 Oct 2005 15:57:22 -0000
@@ -9,6 +9,7 @@
 author_name = <%= @author_name.dump %>
 mail = <%= (@mail || '').dump %>
 mail_on_update = <%= @mail_on_update.inspect %>
+non_admin_remove = <%= @non_admin_remove.inspect %>

 #
 # password

-- 
hadai <hadai [at] hadai.net>
http://www.hadai.net/



Hiki-dev メーリングリストの案内
Back to archive index