-
Notifications
You must be signed in to change notification settings - Fork 0
Precondition
فراخوانی هر متد از لایه نمایش نیازمند یک سری پیش شرطها است. با استفاده از این پیش شرطها میتوان امنیت را در لایه نمایش فراهم کرد.
هر پیش شرط با استفاده از یک رشته آدرس دهی میشود. این رشته به صورت زیر است:
{Class name}::{method name}
این پیش شرط در حقیقت یک رشته است که یک متد از یک کلاس را آدرس دهی میکند.
برای هر کنترل میتوان فهرستی از پیش شرطها را تعیین کرد:
array( // controller
'regex' => '#^/controller/path$#',
'model' => 'ControllerClass',
'method' => 'controllerMethod',
'precond' => 'precondition'
),
برای نمونه پیش شرط مدیریت سیستم به صورت زیر است:
array( // controller
'regex' => '#^/controller/path$#',
'model' => 'ControllerClass',
'method' => 'controllerMethod',
'precond' => 'Pluf_Precondition::adminRequired'
),
مقدار پیش شرط میتواند یک یا یک آرایه از پیش شرطها باشد.
array( // controller
'regex' => '#^/controller/path$#',
'model' => 'ControllerClass',
'method' => 'controllerMethod',
'precond' => array(
'Pluf_Precondition::adminRequired',
'Pluf_Precondition::ssl',
)
),
پیش شرط در حقیقت یک متد ایستا است که در یک کلاس تعریف شده است برای نمونه:
class Pluf_Precondition
{
static public function loginRequired ($request)
{
//check conditions
}
..
}
به صورت پیش فرض ساختار تقاضای کاربر برای پیش شرطها ارسال میشود.
برخی پیش شرطها پارامترهایی را نیاز دارند. در این حالت پیش شرط به صورت آرایه تعریف میشود که در ادامه آن پارامترهای آن آورده میشود:
array( // controller
'regex' => '#^/controller/path$#',
'model' => 'ControllerClass',
'method' => 'controllerMethod',
'precond' => array(
'Pluf_Precondition::adminRequired',
array(
'Pluf_Precondition::hasPerm',
'{permission id}'
),
)
),
دستهای از پیش شرطها در سیستم تعریف شده است:
- Pluf_Precondition::loginRequired
- Pluf_Precondition::staffRequired
- Pluf_Precondition::adminRequired
- Pluf_Precondition::hasPerm
- Pluf_Precondition::sslRequired
کاربر حتما باید لاگین کرده باشد در غیر این صورت یک خطا صادر میشود.
کاربر حتما باید کارمند سیستم باشد در غیر این صورت خطا صادر میشود.
باید کاربر مدیر سیستم باشد.
کابر باید یک مجوز خاص را داشته باشد.
این پیش شرط نیاز به یک پارامتر دارد
پروتکل SSL باید فعال شده باشد.