1

Sitepoint ウィザードの皆さん、こんにちは。

複数のユーザーとさまざまなオブジェクトを持つ管理アプリケーションがあるとします。私がやりたいのは、オブジェクト自体の内部でアクセスを制御することです。つまり、あるタイプのユーザーに対しては 1 つの方法で動作し、他のユーザーに対しては別の方法で動作します。例えば...

Director Mike は、Reception ユーザー Sally の登録日を上書きできます。マイクが過去または未来の日付を設定できると想定する人もいるでしょう。次に、Sally の登録日を変更できる Payroll ユーザーの Steve がいますが、これは (たとえば) 1 年前までの過去の日付のみです。話を盛り上げるために、HR マネージャーの Mary がいて、Sally の登録日を修正することもできますが、2007 年 6 月 23 日から 1 か月後までの日付に限られます...

アクセス制限をプログラムして、フロントエンドでフォーム コントロールが最小日付と最大日付で制限され、バックエンドでバリデータが入力された日付をチェックして、それらの日付の間に収まるようにするにはどうすればよいですか? 明らかに、各ユーザー タイプの最小日付と最大日付を微調整できる必要があります。他のオブジェクトには、割引フィールドの最大金額や残業の曜日など、異なるパラメーターがある場合があります。

私はさまざまな方法でこの質問をしましたが、そのたびに実装に行き詰まります。私は現在、php/MySQL Web ベースのアプリケーションとして開発していますが、他のプラットフォームからの考えやコメントは大歓迎です! 今回は第一原理を見ていきますので、バックグラウンドは問いません、何かアイデアがあれば教えてください!このタイプのアクセス制御を何と呼んでいますか?

4

2 に答える 2

1

アプリケーションがどのように基づいているかによって、アプリケーションの開始時に資格情報を要求することができ、アクセスを必要としている人に応じて、さまざまな設定を含む別の xml ファイルを読み込むことができます。

セキュリティの問題に関しては、ユーザーがさまざまな xml ファイルにアクセスできないようにしてください。

編集:
MySQL を使用しているので、このようなことができます。
これらのフィールドを持つユーザーのテーブルがあるとします: UserId、UserName、RestrictionId。
また、RestrictionId、FieldName、FieldCondition のような制限テーブルを使用します。

このようにして、php アプリでユーザーが認証されると、フィールドの正しい「制限」を取得してコードに適用できます。異なるルールを必要とする複数のフィールドがある場合は、正しい RestrictionId を使用して単純に追加できます。

この DB 設計は完璧とは言えません。もっとうまくやれると確信しています。

于 2010-02-23T13:06:47.217 に答える
0

Since, you are already using MySql db. You can maintain the UserRole Master table details in DB itself. Load the user role data based on login, then you can easily validate the changes made by the user accordingly.

于 2010-02-24T04:06:41.377 に答える