0

$_POST['action'].. に基づいて適切なクエリを実行するクラスを使用しています。例:

class data {     //>pseudocode
 __constructor(){
   if ($_POST['action']=='insert')
      mysql_query("INSERT ..");
   else if ($_POST['action']=='edit') 
      mysql_query("UPDATE ..");
 }
}

もちろん、ユーザーができないことをするのを防ぎたいと思います。たとえば、他の人の投稿を編集したり、まだ公開されていない場合にのみ投稿を編集できるなど、より複雑なことをしたりします。投稿が公開されると、彼はもう編集できなくなります (または、時間に基づいたものかもしれません)。

このチェックを my にどのように追加しますclass dataか? Zend_ACL について聞いたことがありますが、これはこの場合に有効ですか?

編集:特権を保存するためにデータベースを使用することは避けます

Edit2: 私はこれをしたいと思います: すべてのユーザーには「レベル」があります。レベル = 1 はあなたが管理者であることを意味し、レベル = 2 はあなたが編集者であることを意味し、レベル 3 = あなたが単純なユーザーであることを意味します。

そのため、各レベルでいくつかの権限が対応しています。これらの情報をどこに置くべきですか?

タイ

4

2 に答える 2

0

テーブルに設定flagし、そのフラグを確認する必要があります..そして、それに従って、アクセスレイヤーを開発できます

主に、テーブルにはこれらのフィールドが必要です

post_id(PK) | post_by(user_id of the post owner) |is_published(ENUM (Y,N))

その投稿の編集時に以下を確認してください

  • 最初に、現在ログに記録されているユーザー ID と post_by ID が同じかどうか

    • はいの場合は、is_published がYまたはに設定されていることを確認しますN
      • N編集を許可しない場合
      • Y編集を許可する場合
于 2011-03-28T10:08:06.013 に答える
-1

あなたの疑似コードは私には単純すぎるように見えます。コンストラクターですべてを実行しますか? もしくはどう訳す?

IMO まず、ニーズを定義する必要があります。許可されているタスクと許可されていないタスクは? アウトラインがあれば、ソリューションも得られます。

于 2011-03-28T10:09:51.053 に答える