2

私はPHPとmySQLでウェブサイトを構築しています。フロントエンドとバックエンドの機能があります。管理者のみがユーザー名とパスワードを使用してバックエンドを入力できます。これで、管理者が他のサブ管理者をWebサイトに追加したい場合は、そうすることができます。この方法により、サブ管理者はログインして、元の管理者が実行できるすべてのアクションを実行できるようになります。

私がやりたいこと:

自分で選択したサブ管理者のアクセスを制限し、管理パネルの特定の部分にのみアクセスできるように権限を割り当てたいと思います。

私が話している機能の例:

元の管理者がアクセスできる次のリンクがあると考えてください。1.記事の追加2.記事の承認3.記事の削除4.ユーザーの追加5.ユーザーの編集6.ユーザーの削除7.サイト設定の変更8.財務情報の表示9.メールセンター

権限を設定しないと、すべてのサブ管理者が上記のすべてのリンクにアクセスできるようになります。2つのサブ管理者「David」と「Bob」を作成するとします。

ここで、Davidがバックエンドの次の必要なセクションにのみアクセスできるようにします。

  1. 記事の追加、4。ユーザーの追加、7。サイト設定の変更

ここで、ボブがバックエンドの次の必要なセクションにのみアクセスできるようにします。

  1. 記事の追加、2。記事の承認、3。記事の削除、4。ユーザーの追加、9。メールセンター

元の管理者である私はすべてのセクションにアクセスできる必要がありますが、DavidとBobは、割り当てられているリンクとページ(または機能)のみを表示およびアクセスできる必要があります。これを行う方法についての手がかりがありません。また、たとえば、サブ管理者が「記事の追加」ページのみにアクセスするように制限したい場合は、サブ管理者が投稿先のページにもアクセスできるようにします(入力が記事の追加ページにあることを考慮して)add_articles_next.phpページ。また、「add_articles_next.phpページ」はリンクのリストのどこにも表示されないことに注意してください。これは、サブ管理者がアクセスできるページから投稿されるページにすぎません。

明示的に指定しない限り、システムがそれを知る方法はないことを理解していますが、そうです、それが私の質問です。どうやってするの?私はオブジェクト指向の人間ではないので、関数を使用したPHPコードは私にとって素晴らしいものになるでしょう。

私が話している機能の他の生きた例:

このトピックを調査しているときに、ある機能に出くわしました。ここをクリックしてアクセスしてください。これはやや似た機能のように見えます。

あなたが私に与えることができるどんなコードでも前もってすべてに感謝します。

4

1 に答える 1

5

これは、SOで以前に何度も尋ねられました。検索するキーワードは、アクセス制御リスト(ACL)です。ACLの最も有名なPHPソリューションの1つは、Zend_ACLです。これは非常に一般的であり、ニーズに合わせてカスタマイズできるはずです。

オブジェクト指向ライブラリに関するコメントについて編集します。

市場に出回っているPHP用の優れたACLは非常に少なく(Zendは私が知っている唯一のものです)、ほとんどの最新のアプリケーションはより多くのまたはオブジェクト指向のアプローチが少ない。しかし、心配しないでください、チュートリアルをチェックしてください。関数指向のアプリでZend_Aclを使用しても問題はないと思います。OOPを介してACLと通信する必要がありますが、それは簡単です。アプリをあまり変更する必要はないと思います。試してみてください。一般的に、基本的なOOPを学ぶのは難しくありません。PHPマニュアルの「クラスとオブジェクト」の章をよく読んでください。

于 2009-12-27T20:34:21.370 に答える