PHP ウェブサイト バックエンド管理管理者権限制御システム ソリューションを探しています
現在、記事アップロード モジュール、ダウンロード用ファイル アップロード、ユーザー メッセージ モジュールなどを含むウェブサイト バックエンドを作成しています。
問題: バックグラウンド管理者権限の割り当て
説明: 現在、システムにはすべての権限を持つスーパー管理者がいます。ここで理解したいのは、スーパー管理者は一般管理者を追加し、一般管理者の権限を制御できるということです。例えば、一般ユーザーが記事のみをアップロードし、画像はアップロードできないように制御するにはどうすればよいでしょうか。これはどのように実装すればよいでしょうか。アイデアを探すには、ソース コードのサンプルがあったほうがよいでしょう。
さらに、システムは他のモジュール (新しい画像アップロード モジュールなど) を追加する場合があります。新しいバックグラウンド モジュールを追加した後、新しいバックグラウンド モジュールで元の管理者アカウントの関連する権限を簡単に設定する方法。モジュール?
わかりにくいかもしれませんが、ご質問がございましたらお気軽に投稿してください。
最高点は 100 点までですが、さらに点を追加できるのではないかと思います。
-----解決策--------------------------
各権限にマークを付ける必要があります。
例:
投稿 1 を公開
管理者を追加 2
写真をアップロード 3
.... ...
ユーザーが上記の 3 つの権限を持っている場合
データベースは配列 (1;2;3) として保存されます。
ユーザーは公開する権限のみを持ちます。投稿権限 (2;)
写真の投稿とアップロードの権限を持っています (2;3;)
....
ヘルパーに権限がある場合は、それが含まれているかどうかを確認するだけです。 。
わかるかな? ?
------解決策---------
モジュールテーブルを作成します。モジュールを操作する権利がある場合、それは 1 です。さもないと。 0
1 0 1 1.非常に柔軟に使用できます
------解決策---------
admin_group_id を含むモジュール テーブルを作成し、その内容を記録します。たとえば、
ユーザー モジュール 1,3 --1 は最上位の管理者を意味し、3 はユーザー
アップロード モジュール 1 を意味します。 2 --1 はトップ管理者を表し、2 は一般管理者を表します
------解決策---------
admin_group_id を含むモジュール テーブルを作成し、その内容を記録します。たとえば、
ユーザー モジュール 1,3 --1 は最上位の管理者を意味し、3 はユーザー
アップロード モジュール 1 を意味します。 2 --1 はトップ管理者を表し、2 は一般管理者を表します
------解決策---------
phpgacl
------解決策---------
------解決策---------上記のほとんどは単純な権限です
複雑権限のロールモデルを確認するには、オンラインで検索してください。
------解決策---------グループを使うととても便利です
グループテーブル:
グループ ID/グループ名
1/グループ 1
2/グループ 2
…………
権限テーブル:
権限 ID/権限名前
1/権限 1
2/権限 2
3/権限 3
…………
グループ権限関連付けテーブル:
グループ ID/権限 ID
1 /1
1/2
2/2
2/4
…………
お好みに合わせてください。グループ 1 はあなたのスーパーマネージメントであり、グループは2 は一般的な管理者であり、新しいグループを作成します。 3 に一致すると、通常のユーザーになります。新しいグループ 4 を作成します。これは制限付きユーザーである可能性があります。
------解決策---------dedecmsの権限管理を見て真似してみますとても柔軟だと思います
------解決策---------
------解決策----------------------私も 2 日前にこの権限の問題を抱えていました。
zend auth で使用するためにいくつかのテーブル
を設計しました。
/*Character table
-- id
-- Username
-- パスワード
-- ワークグループ A、B、C...
*/
DROP TABLE IF EXISTS role_acl;
CREATE TABLE role_acl (
id int(11) NOT NULL) auto_increment,
ユーザー名 varchar(30) NOT NULL,
パスワード varchar(20) NOT NULL,
work_group char(1) NOT NULL,
主キー (`id` )
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
/*ワーキング グループ
-- ID
-- ワーキング グループ A、B、C...
-- テキスト説明
*/
DROP TABLE IF EXISTS group_acl;
CREATE TABLE group_acl (
id int(11) NOT NULL auto_increment,
work_group char(1) NOT NULL,
group_desc varchar(60) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
/* ロール リソース アクション マッピング テーブル
-- id
-- ワークグループ A、B、C。 .
-- リソース コード
*/
DROP TABLE IF EXISTS mapped_acl;
CREATE TABLE mapped_acl (
id int(11) NOT NULL auto_increment,
work_group varchar(1) NOT NULL、
リソース varchar(20) NOT NULL、
アクション varchar(20) NOT NULL、
主キー (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk; 🎜>