ユーザー権限の設定がうまくいかない

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
きょうこ
アクティブユーザー
記事: 15
登録日時: 2006年11月08日(水) 17:20

ユーザー権限の設定がうまくいかない

投稿記事 by きょうこ » 2008年9月19日(金) 13:36

WebMaster様 いつもお世話になります。

「ユーザー権限」が追加されたとのことで、早速お客様のサイトで追加設定することになりました。

が、うまくいかず。。
同じような質問がないか探したのですが、見つかりませんでした。
重複している場合は、該当するトピを教えていただければ幸いです。

エラー等は出ないのですが、権限設定が反映されていないようです。

site.config.xmlの内容を(name等はダミーに変えています)
下記に載せましたので、おかしな点がないか教えてください。

コード: 全て選択

<?xml version="1.0" encoding="UTF-8"?>

<site>
  <entries>
	  <entry name="aaa" schema="aaa" caption="あああ" />
	  <entry name="bbb" schema="bbb" caption="いいい" />
	    		<permit users="user1" mine="all" others="none" />
	   <entry name="ccc" schema="ccc" caption="ううう" />
	  </entries>
</site>
上記はリファレンスマニュアル 4−7−3(P33)を見て記述しただけで、
本当は、admin,user1,user2のうち、user1にだけ次の権限を設定させたいと思っています。

その場合、次のような理解&記述方法でいいのかもあわせて教えてください。

user1だけは
(1)コンテンツ編集画面に表示される内容は「ccc」だけ
(2)cccのうち、全てのユーザーが書いた記事を閲覧可能
(3)cccのうち、自分の書いた記事のみ編集可能

このような場合、
<entry name="ccc" 〜の部分に、

コード: 全て選択

<permit users="user1" mine="all" others="list" />
と記述し、

<entry name="aaa" 〜
<entry name="bbb" 〜の部分には、何の権限も持たないという設定を下記のように記述する

コード: 全て選択

<permit users="user1" mine="none" others="none" />

間違って理解しているところはないでしょうか。

お忙しいところ恐縮ですが、よろしくお願いいたします。

きょうこ
アクティブユーザー
記事: 15
登録日時: 2006年11月08日(水) 17:20

投稿記事 by きょうこ » 2008年9月19日(金) 15:43

追記です

リファレンスマニュアルの4−7−2(32P)に<entry>の最後の部分に<entry〜caption="新着情報" />とスラッシュを入れるとエラーになるとありますが、逆にスラッシュを入れるとエラーになってしまいました。

これが正しいとマニュアルには書いていますが↓

コード: 全て選択

<entry name="news1" schema="news" caption="新着情報" >
<permit users="user1" />
</entry>
こう書かないとエラーになってしまいます↓

コード: 全て選択

<entry name="news1" schema="news" caption="新着情報" />
<permit users="user1" />
</entry>
エラー内容
Warning: domxml_open_file(): Opening and ending tag mismatch: entry line 7 and entries in /***/html/cmsdesigner/include/app.php.inc on line 605

Warning: domxml_open_file(): Opening and ending tag mismatch: entries line 4 and site in /***/html/cmsdesigner/include/app.php.inc on line 605

Warning: domxml_open_file(): Premature end of data in tag site line 3 in /***/html/cmsdesigner/include/app.php.inc on line 605
/***/html/cmsdesigner/config/site.config.xml の読み込みに失敗しました。ファイルが正しいXML形式ではない可能性があります。

きょうこ
アクティブユーザー
記事: 15
登録日時: 2006年11月08日(水) 17:20

自己解決しました

投稿記事 by きょうこ » 2008年9月20日(土) 12:49

自己解決しました。
下記のように書けばうまくいきました。
何度も試している中で、このように書いていたこともあるんですが、うまくいかずに色々試していたんですが……
ファイルを全部保存し直してみたら、ある瞬間からうまく反映されるようになりました。
記述方法ではなく、サーバのキャッシュとかも絡んでいたようです。。
お騒がせしました。

一応、正しく動作した記述を載せておきます。

コード: 全て選択

<?xml version="1.0" encoding="UTF-8"?>

<site>
  <entries>
     <entry name="aaa" schema="aaa" caption="あああ" />
     <entry name="bbb" schema="bbb" caption="いいい" />
             <permit users="user1" mine="all" others="none" />
  </entry>
      <entry name="ccc" schema="ccc" caption="ううう" />
     </entries>
</site>

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: 自己解決しました

投稿記事 by webmaster » 2008年9月24日(水) 18:46

 きょうこさん、ご質問ありがとうございます。
 また、お返事が遅れている間にいろいろ試行錯誤頂いたようで申し訳ありません。

 結論から申し上げますと、現状で期待通りの動作をしているのであればそのまま
で問題ないと思うのですが、その記述自体はやはり正しくありません。マニュアルが
正しい記述方法となります。

 一番最初の投稿分ですが、この記述ですと、「いいい」の分のentry記述が
1行で終わっており(「/>」で閉じられている為)、その後のpermit指定が
entry内に入っていません。
 この為、XMLの記述としては矛盾していないのですが、CMSDの設定として
正しくpermitが反映されていなかったものと思われます。

 その次の投稿の、「マニュアルではこう書くのが正しいが、それだとエラーに
なる」という件についてですが、これはやはりマニュアルの方が正しい記述に
なります。
 最後の投稿も含めて「うまくいった」という記述につきましては、XMLの記述
として矛盾がある(開始タグと終了タグがミスマッチになる)為、必ずエラーが
表示されるかと思います。

 例えば

コード: 全て選択

<entry name="news1" schema="news" caption="新着情報" />
<permit users="user1" />
</entry>
 は、1行目でentry要素の記述が終了しています。(「/>」によって)
 次にくるpermit要素もその行で終了しています(この要素はentry要素の中
ではなく、entry要素と並列して単独で存在しているので、効果がありません)。

 にも関わらず、次に「</entry>」のようにentry要素の閉じタグが出現して
います。entry要素は既に1行目で終了しているので、閉じタグが単独で存在
することになり、エラーになるはずなのですが…。

 キャッシュが関係しているとのことですので、手順上で何か混乱があった
可能性があります。タグや空白を全角文字で記述してしまったりすると、見た目は
正しく見えてもエラーになるケースもございます。また、文字コードが正しく
UTF-8になっていない場合も同様です。

 冒頭でも書かせて頂いたとおり、現状、意図どおりの動作をしているのであれば
問題ないとは思うのですが、記述に関してはマニュアルの方法が正しい方法と
なりますので、ご留意頂ければ幸いです。

返信