User:
Pass:
Keep:   
Xoops Cube Project
XOOPS Cube Project Site
Powered by Google


Powered by XOOPS Cube Legacy 2.1.8
PukiWikiMod 1.5.1
WordPress Module 0.6.0 Alpha
複数ユーザの投稿記事にて _MD_YYBBS_POSTER: Sa・Ga _MD_YYBBS_POSTDATE:2004/10/25(Mon) 14:12 No.806  
 初めまして。これからXOOPSを自分のサイトに導入しようとしている初心者です。
 Weblogの機能が欲しく、WordPress MEモジュールに目を付けております。

 テスト運用で、管理者ユーザと一般の登録ユーザ(2名)を用意し、ある一般ユーザでWordPressに記事を投稿したあとログアウトし、もう一方の一般ユーザに切り替えたところ、最初の一般ユーザが投稿した記事を何の警告もなしに編集できてしまいます。
#  いずれの場合も、管理者ユーザの記事は編集できませんでした。

 実は登録ユーザに対してWeblogの機能を開放しようと考えているのですが、上記のようなことができてしまうと非常に困ったことになります。

 一般登録ユーザに対しては自分が投稿した記事以外の記事を編集できなくさせる方法はありますでしょうか?
#  一応こちらの記事を検索したところ、それらしい情報にたどり着けませんでした。
# もし、記事が存在していた場合はご容赦願います。


Re: 複数ユーザの投稿記事にて _MD_YYBBS_POSTER: のぶのぶ _MD_YYBBS_POSTDATE:2004/10/26(Tue) 14:37 No.814  

Sa・Gaさん、ようこそ!
Quote:

 一般登録ユーザに対しては自分が投稿した記事以外の記事を編集できなくさせる方法はありますでしょうか?

残念ながら、現在のスペックでは同一ユーザーレベル権限を持つユーザの投稿はお互いに編集出来てしまうというのがWordPressの仕様となっています。
と書きながら少し調べてみると、「編集」の一覧表示時に編集用リンクが表示されるのは、投稿者か投稿者よりもユーザレベルの高いユーザというロジックになっています
修正するとすれば、まだ完全に検証は終わっていませんが、
wp-admin/post.phpとwp-includes/template-functions-links.phpに、

if ($user_level < $authordata->user_level)

という判定箇所が合計5カ所あるのですが、これらをすべて

if (($user_level <= $authordata->user_level) && ($user_login != $authordata->user_login))

に変更すれば良いと思います。
(もし試される場合には、バックアップをとっておいて下さいね
いずれにせよ現在の中途半端な不整合は次リリースでは解消したいと考えます。


Re[2]: 複数ユーザの投稿記事にて _MD_YYBBS_POSTER: Sa・Ga _MD_YYBBS_POSTDATE:2004/10/26(Tue) 15:12 No.817  

Quote:

のぶのぶさんは書きました:
Sa・Gaさん、ようこそ!

 返信ありがとうございます。
Quote:

修正するとすれば、まだ完全に検証は終わっていませんが、
wp-admin/post.phpとwp-includes/template-functions-links.phpに、

if ($user_level < $authordata->user_level)

という判定箇所が合計5カ所あるのですが、これらをすべて

if (($user_level <= $authordata->user_level) && ($user_login != $authordata->user_login))

に変更すれば良いと思います。

 仰るとおりの方法で、希望通りのことを実現できました。

 初め、本文のヘッダ部(?)にでていた「記事編集」が、投稿したユーザそのものの場合でも出てこなくなりましたので、「アレ?」と思ったのですが、「メインメニュー」の「Blogを書く」から開く「Create New Post」の画面で「編集」を選択すれば、一般ユーザの場合、自分以外の記事には「Edit」や「Delete」がでなくなっています。
 これで、当初の目的を満たすことができそうです。

 ありがとうございました。


NO: PASS:

_MD_YYBBS_SIG
_MD_YYBBS_SIG_LINK