خوب دوستان شما این لینک رو مطالعه بفرمایید آقای مارک استوری تقریبا خوب توضیح داده:
http://www.mark-story.com/nodes/view...-tutorial-pt-1
اما بیاد داشته باشید که به چند روش مختلف میشه از ACL استفاده کرد.
فقط این توضیح رو بدم که ببینید وقتی شما می خواهید به طور مثال یک "پست خاص" یا یک "مقاله خاص" که خودش عضو مجموعه ای هستش رو به طور مثال:
تقی مجوز رایت کل اون مجموعه رو داره
شما می خواید به حسن مجوز ویرایش یا حذف فقط همون پست رو بدید.
یا هیچ کس نداره فقط حسن داشته باشه ( مثل همون پروفایل )
لازمه که شما در هنگام ایجاد اون رکورد در جدول ACO ها تون یعنی اشیائی که بر اون ها کنترل باید صورت بگیره ( اسمش روشه دیگه ) یه رکورد متناظر بزنید.
بعدا با دستور ACL->Allow می تونید خیلی راحت به حسن اجازه مجوز خاصی رو روش بدید
مثلا این تابع برای ذخیره یک پست یا مقاله رو ببینید:
function add() {
if (!empty($this->data)) {
$this->Post->create();
$current_user=$this->Auth->user() ;
$this->data['Post']['user_id']=$current_user['User']['id'] ;
if ($this->Post->save($this->data)) {
$parent = $this->Acl->Aco->findByAlias('Posts');
$this->Acl->Aco->create(array(
'alias' =>$this->data['Post']['title'].':'.$this->Post->id,
'model' => 'Post',
'foreign_key' => $this->Post->id,
'parent_id' => $parent['Aco']['id']
)
);
$this->Acl->Aco->Save() ;
$this->Session->setFlash(__('The Post has been saved', true));
$this->redirect(array('action'=>'index'));
} else {
$this->Session->setFlash(__('The Post could not be saved. Please, try again.', true));
}
}
}
تو این کد میایم به محض اینکه یک پست اضافه میشه یک رکورد متناظر در جدول ACOS می زنیم
خوب حالا خیلی راحت می تونید با دستور Allow مجوزها رو کنترل کنیم
اگر از Auth و ACL با هم استفاده کنید خیلی از مسائل راحت تر و سریع تر حل میشه هرچند اینها لازم و ملزوم یکدیگر نیستند و هرکدام به تنهایی کار خودش رو میکنه
اگر روشن نشد بگید من یک مقداری کد قبلا در این مورد نوشتم براتون میذارم اگر نه یه مقاله به صورت Tutorial بنویسم
موفق باشید