ခွင့်ပြုချက်ထိန်းချုပ်မှုသည်ဝက်ဘ်လျှောက်လွှာဖွံ့ဖြိုးတိုးတက်မှုတွင်မရှိမဖြစ်လိုအပ်သောလက်ခဏာဖြစ်သည်။ Cakepho ၏စီမံခန့်ခွဲမှုစီမံခန့်ခွဲမှုစီမံခန့်ခွဲမှုစီမံခန့်ခွဲမှုစီမံခန့်ခွဲမှုစီမံခန့်ခွဲမှုယန္တရားသည် developer များကခွင့်ပြုချက်ထိန်းချုပ်ရေးလုပ်ငန်းစဉ်ကိုအကောင်အထည်ဖော်မှုလုပ်ငန်းစဉ်ကိုရိုးရှင်းစေနိုင်သည်။ ခွင့်ပြုချက်ထိန်းချုပ်မှုကိုအကောင်အထည်ဖော်ရန် CakephoT Framework ကိုမည်သို့အသုံးပြုရမည်ကိုဤဆောင်းပါးသည်တဖြည်းဖြည်းမိတ်ဆက်ပေးလိမ့်မည်။
ပထမ ဦး စွာ, သငျသညျဖွံ့ဖြိုးရေးပတ် 0 န်းကျင်ရှိ CakephoP မူဘောင်ကို install လုပ်ရန်လိုအပ်သည်။ ၎င်းကို composer မှတဆင့် install လုပ်နိုင်သည်သို့မဟုတ် source code ကိုတရားဝင်ဝက်ဘ်ဆိုက်မှကူးယူနိုင်သည်။ ထည့်သွင်းပြီးပြီးပါကခွင့်ပြုချက်ထိန်းချုပ်ရေး configuration ကိုစတင်ရန် Cakepho application အသစ်တစ်ခုကိုဖန်တီးပါ။
Cakepho တွင်ခွင့်ပြုချက်ထိန်းချုပ်မှုသည်အဓိကအားဖြင့် MASTCHOCTONE အစိတ်အပိုင်းအပေါ်အဓိကထားသည်။ application controller တွင်ဤအစိတ်အပိုင်းကိုတင်ခြင်းအားဖြင့်ခွင့်ပြုချက်စစ်ဆေးခြင်းနှင့်မည်သူမည်ဝါဒီမှုကိုအလွယ်တကူသတ်မှတ်နိုင်သည်။
// တည်နေAppController.phpဖိုင်ထဲမှာ
public function initialize()
{
parent::initialize();
$this->loadComponent('Auth', [
'authorize' => 'Controller',
'authenticate' => [
'Form' => [
'fields' => [
'username' => 'email',
'password' => 'password'
]
]
],
'loginAction' => [
'controller' => 'Users',
'action' => 'login'
],
'unauthorizedRedirect' => $this->referer()
]);
}
Code တွင် loadcomprent method သည် Authentication Method ကိုဖွင့်ပြီး 'Authorize' parameter သည်ခွင့်ပြုချက်စနစ်ကိုသတ်မှတ်ပြီး Controller အဆင့်ကိုသတ်မှတ်သည်။ Form authentication အတွက်လိုအပ်သောကွက်လပ်များကို 'authenticate' configries 'loginaction' သည်ခွင့်ပြုချက်မရသော 0 င်ရောက်ခွင့်မပြုသည့်အခါ "ခွင့်ပြုချက်မရသော 0 င်ရောက်မှုကို" ခွင့်ပြုချက်မရပါ။
ခွင့်ပြုချက်စည်းမျဉ်းများကို Controller ရှိ Isauthorized နည်းလမ်းဖြင့်သတ်မှတ်သည်။ ဤနည်းလမ်းသည်လက်ရှိအသုံးပြုသူသည်တောင်းဆိုထားသောစစ်ဆင်ရေးကိုလုပ်ဆောင်ရန်အခွင့်အရေးရှိ / မရှိကိုဆုံးဖြတ်သည်။
// တည်နေUsersController.phpဖိုင်ထဲမှာ
public function isAuthorized($user)
{
$action = $this->request->getParam('action');
if (in_array($action, ['edit', 'delete'])) {
$userId = $this->request->getParam('pass.0');
if ($userId == $user['id']) {
return true;
}
}
return parent::isAuthorized($user);
}
ဤတွင်, ပထမ ဦး စွာတောင်းဆိုထားသောစစ်ဆင်ရေးအမည်ကိုရယူပါ။ ခွင့်ပြုချက်လိုအပ်သည့်တည်းဖြတ်ခြင်းနှင့်ဖျက်ခြင်းလုပ်ငန်းများအတွက်သုံးစွဲသူ ID ကိုခွဲစိတ်ကုသမှု parameters များနှင့်လက်ရှိ log in ဝင်သော User ID တွင်ထပ်မံနှိုင်းယှဉ်ပါ။ ပွဲပြီးပြီဆိုရင်ခွင့်ပြုပါ။ ဒီလိုမှမဟုတ်ရင်မိဘအတန်းအစားနည်းလမ်းကိုပုံမှန်ခွင့်ပြုချက်တရားစီရင်ချက်အတွက်တောင်းဆိုလိမ့်မည်။
အသုံးပြုသူ 0 င်ရောက်မှုကိုတိုးတက်စေရန်အသုံးပြုသူသည်လော့ဂ်အင်ဝင်ရန်,
// တည်နေ视图ဖိုင်ထဲမှာ
if ($this->Auth->user()) {
echo $this->Html->link('Logout', ['controller' => 'Users', 'action' => 'logout']);
} else {
echo $this->Html->link('Login', ['controller' => 'Users', 'action' => 'login']);
}
အသုံးပြုသူ၏ login status ကိုဆုံးဖြတ်ရန် Auth Component ၏အသုံးပြုသူ၏နည်းလမ်းကိုအသုံးပြုပါ။ login လုပ်သည့်အခါ "Logout" link ကိုဖွင့်ပြီး login လုပ်သည့်အခါ login "link ကိုပြသထားပြီးအသုံးပြုသူများသည်လည်ပတ်ရန်အဆင်ပြေသည်။
Cakepp မူဘောင်ကို install လုပ်ခြင်းအားဖြင့် Auth Components များကို configure လုပ်ခြင်းဖြင့်ခွင့်ပြုချက်စည်းမျဉ်းများကိုသတ်မှတ်ခြင်း, အထက်ပါနမူနာကုဒ်သည်သင်၏လျှောက်လွှာ၏လုံခြုံရေးနှင့်ပြောင်းလွယ်ပြင်လွယ်မှုကိုသေချာစေရန် Cakephp အခြေပြုခွင့်ပြုချက်စီမံခန့်ခွဲမှုဖြေရှင်းချက်ကိုနားလည်သဘောပေါက်ရန်နှင့်အကောင်အထည်ဖော်ရန်ကူညီသည်။