
рдХреЛрд╣рди рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдореЙрдбреНрдпреВрд▓ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рднреВрдорд┐рдХрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реНрдкреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдлрд╡рд╛рд╣ рдлреИрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдпрд╣ рдирд╣реАрдВ рдкрд╛рдпрд╛ рдХрд┐ рдПрдХреНрд╕реЗрд╕ рд░рд╛рдЗрдЯреНрд╕ рднреЗрджрднрд╛рд╡ рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реВрдВред
рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ
рдореБрдЭреЗ рд╕рднреА рдХреЙрдордирд░реНрд╕ рдХреЛ рдПрдХ рдХреЙрдорди рдХреЙрдорди рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИред рдПрдлрдкреАред рдореИрдВ рдЗрд╕рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдмреЗрд╕рд┐рдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдкреНрд░рд┐рд╕реНрдХреНрд░рд╛рдЗрдм рдХрд░рддрд╛ рд╣реВрдВ: рд╕реАрдПрд╕рдПрд╕, рдЬреЗрдПрд╕, рд╣реЗрдбрд░, рдХрдВрдЯреЗрдВрдЯ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛, рд╕рднреА рдХреЙрдиреНрдлрд┐рдЧ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛, рдЖрджрд┐ред рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрди рд╕рднреА рдЪреАрдЬреЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЕрдиреНрдп рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдВрдЧреАред
<?php defined('SYSPATH') or die('No direct script access.'); class Controller_Common extends Controller_Template { public $sys_mes, $auth, $session, $user, $class_id; public $user_roles = array(); public $security = array(); public $template = 'v_common'; public $layout = 'v_column_12'; public $css = array('bootstrap.min', 'style'); public $js = array('jquery-2.0.0.min', 'bootstrap.min'); public $configs = array('order_control', 'payment_method'); }
рдЕрдЧрд▓рд╛, рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдирд┐рдпрдВрддреНрд░рдХ рджреНрд╡рд╛рд░рд╛ рдХрд┐рд╕реА рднреА рдкреГрд╖реНрда рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдЧ рд▓рдЧрд╛рддрд╛ рд╣реИред рдХреЗрд╡рд▓ рдЙрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред рд╕рддреНрд░реЛрдВ рдореЗрдВ рднреВрдорд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рджрд░реНрдЬ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
рд╕рдорд╛рд░реЛрд╣ рдЬреЛ рднреЗрдж рдмрдирд╛рддрд╛ рд╣реИ рд╡рд╣ рд╣реИ _check_permission ()
public function before() { parent::before();
рднреВрдорд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбрд▓ред рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред
class Model_User extends Model_Auth_User { public function user_roles($user_id) { $result = array(); $db = DB::select(array('roles.name', 'name'));
рдлрд╝рдВрдХреНрд╢рди рд╣реА рдЬреЛ рдкрд╣реБрдВрдЪ рдХреЛ рдкрд░рд┐рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИред рдирд┐рдпрдВрддреНрд░рдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
private function _check_permission() { $check_permission = FALSE; $config_security = Kohana::$config->load('security')->as_array(); $action = Request::current()->action(); if(isset($config_security[$this->class_id][$action])) { foreach($config_security[$this->class_id][$action] as $users_role) if(in_array($users_role, $this->user_roles) || in_array($users_role, array('public'))) $check_permission = TRUE; } if(isset($config_security[$this->class_id]['all_actions'])) { foreach($config_security[$this->class_id]['all_actions'] as $users_role) if(in_array($users_role, $this->user_roles)) $check_permission = TRUE; } if($check_permission != TRUE) exit('Access deny - 403 '); }
рдХреЙрдиреНтАНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдпрд╣рд╛рдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдХреЙрдиреНтАНрдлрд╝рд┐рдЧрд░ / рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА рд╣реИ
рдЗрд╕рдореЗрдВ рд╣рдо рдХрд╛рд░реНрд░рд╡рд╛рдИ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЕрдиреНрдпрдерд╛ 403 рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
<?php defined('SYSPATH') or die('No direct script access.'); return array(
рдирд┐рдпрдВрддреНрд░рдХ_рдСрд░реНрдбрд░реНрд╕ - рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдирд╛рдоред
рд╕реВрдЪрдХрд╛рдВрдХ - рдПрдХ рдХреНрд░рд┐рдпрд╛ рдЬреЛ рдХрд╛рдо рдХрд░рддреА рд╣реИ (рдпрджрд┐ рдЖрдк рд╕рднреА рдХреЗ рд▓рд┐рдП рдкрд╣реБрдБрдЪ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'all_actions' рд▓рд┐рдЦреЗрдВ)
рд╕рд░рдгреА ('рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ', 'рдкреНрд░рдмрдВрдзрдХ') - рдЙрди рднреВрдорд┐рдХрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА, рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХреНрд╕реЗрд╕ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред
рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдЗрд╕ рддрд░реАрдХреЗ рдкрд░ рдЖрдкрдХреА рд░рд╛рдп рдЬрд╛рдирдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред