рдлрд┐рд▓рд╣рд╛рд▓ рдореИрдВ 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 ();
рд╣реЛ рдЧрдпрд╛ред