CakePHPред ACL рдШрдЯрдХ рдХреЗ рдмрд┐рдирд╛ рдкрд╣реБрдБрдЪ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ред

рдлрд┐рд▓рд╣рд╛рд▓ рдореИрдВ CakePHP рдФрд░ MS SQL рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкреНрд░рдгрд╛рд▓реА рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдорд╛рдирдХ ACL рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ CakePHP MS SQL (рдЗрд╕ рдШрдЯрдХ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо) рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рд╕рд╛рдЭрд╛рдХрд░рдг рдХреА рдирд┐рдореНрди рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдЖрдирд╛ рдкрдбрд╝рд╛ред



рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЙрдбрд▓ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ is_admin рдлрд╝реАрд▓реНрдб рд╣реИ рдЬреЛ рдкреНрд░рд╢рд╛рд╕рдХреЛрдВ рдХреЗ рд╕рдореВрд╣ рдореЗрдВ рдЙрдирдХреА рд╕рджрд╕реНрдпрддрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рддреАрди рд╕рдореВрд╣ рд╣реИрдВ: рдореЗрд╣рдорд╛рди, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХред

рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ app_controller.php рдкрд░ рдХреЛрдб рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛



<? php

рдХреНрд▓рд╛рд╕ AppController рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ

{

рд╕рдорд╛рд░реЛрд╣ рд╕реЗ рдкрд╣рд▓реЗ ()

{

$ allowToUsers = isset ($ this-> рдЕрдиреБрдорддрдЯреЙрдЧрд░)? $ рдпрд╣-> рдЕрдиреБрдорддрдЯреБрдЕрд░: рд╕рд░рдгреА ();

$ allowToGuests = isset ($ рдпрд╣-> рдЕрдиреБрдорддToGuests)? $ рдпрд╣-> рдЕрдиреБрдорддрдЯреЙрдЯреНрд╕: рд╕рд░рдгреА ();



$ рд╕рдореВрд╣ = $ рдпрд╣-> userGroup ();



рд╕реНрд╡рд┐рдЪ ($ рд╕рдореВрд╣)

{

рдорд╛рдорд▓рд╛ 'рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛':

рдЕрдЧрд░ (in_array ($ рдпрд╣-> рдХрд╛рд░реНрд░рд╡рд╛рдИ, $ рдЕрдиреБрдорддрд┐)

{

$ рдпрд╣-> рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд ('/ рдкреГрд╖реНрда / рдиреЙрдЯреНрд╕');

}

рддреЛрдбрд╝;

рдорд╛рдорд▓рд╛ 'рдЕрддрд┐рдерд┐':

рдЕрдЧрд░ (in_array ($ рдпрд╣-> рдХрд╛рд░реНрд░рд╡рд╛рдИ, $ рдЕрдиреБрдорддрдЯреБрд╕реНрдЯ))

{

$ рдпрд╣-> рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд ('/ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ / рд▓реЙрдЧрд┐рди');

}

рддреЛрдбрд╝;

}

}

рдлрд╝рдВрдХреНрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореВрд╣ ()

{

$ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ = $ рдпрд╣-> рд╕рддреНрд░-> рдкрдврд╝рд╛ ('рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛');

$ рд░рд┐рдЯ = '';

рдЕрдЧрд░ (рдЦрд╛рд▓реА ($ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ['рдирд╛рдо'))

{

$ рд░рд┐рдЯ = 'рдЕрддрд┐рдерд┐';

}

рдФрд░ рдЕрдЧрд░ (рдЕрдВрддреНрдпреЗрд╖реНрдЯрд┐ ($ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ['is_admin'] == 1)

{

$ рд░рд┐рдЯ = 'рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ';

}

рдЕрдиреНрдпрдерд╛

{

$ рд░рд┐рдЯ = 'рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛';

}

$ рд░рд┐рдЯрд╛рдпрд░ рд╡рд╛рдкрд╕реА;

}



}

?>



рдпрд╣ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдореЗрдВ рдкреНрд░рддрд┐рдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, $ allowToUsers рдФрд░ $ allowToGuests рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдРрд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдореВрд╣реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ (рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╢рд╛рд╕рдХреЛрдВ рдХреЛ рд╕рдм рдХреБрдЫ рдЕрдиреБрдордд рд╣реИ)ред

рдХреНрд▓рд╛рд╕ рд╕реНрдЯреВрдбреЗрдВрдЯреНрд╕рдХрдВрдЯреНрд░реЛрд▓рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ AppController {



var $ рдирд╛рдо = 'рдЫрд╛рддреНрд░';

var $ рд╕рд╣рд╛рдпрдХреЛрдВ = array ('Html', 'Form', 'Time');



var $ allowToUsers = array ('index', 'view', 'add', 'edit', 'delete');

var $ allowToGuests = array ();



рд╣реЛ рдЧрдпрд╛ред



All Articles