"рддреЛ" рдореБрдЭреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рднреВрдорд┐рдХрд╛, рдФрд░ рд╢рд╛рдпрдж рд╕рдВрдкрд╛рджрдХ / рдореЙрдбрд░реЗрдЯрд░ рдХреА рднреВрдорд┐рдХрд╛ред рдЕрдм рдЗрд╕реЗ google рдХрд░реЗрдВред рдУрд╣! рд▓рд╛рд░реНрд╡рд╛ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рдкреИрдХреЗрдЬ рд╣реИрдВ!
zizaco / рд╕реМрдВрдкрдирд╛ ,
рд╕реНрдкрд╛рдЯреА / рд▓рд╛рд░реНрд╡рд╛-рдЕрдиреБрдорддрд┐ рдФрд░ рдЕрдиреНрдп! рдЪрд▓реЛ рдХреБрдЫ рдЪреБрдиреЗрдВ! тАЭ
рдпрд╣ рд╕рдм рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ рдлрд┐рд░ рдкреИрдХреЗрдЬ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рднреВрдорд┐рдХрд╛рдПрдВ, рдЕрдиреБрдорддрд┐рдпрд╛рдВ рдФрд░ рдЙрдирдХреЗ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 5 рд▓реЗрдмрд▓ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╕рднреА рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдирд┐рдпрдо, рдЬреИрд╕реЗ рдХрд┐ рднреВрдорд┐рдХрд╛рдПрдВ
'рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ' рдФрд░
'рд╕рдВрдкрд╛рджрдХ' рдкреЛрд╕реНрдЯ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВред рдЖрдорддреМрд░ рдкрд░, рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдХрдИ рдкреНрд░рддрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдкреНрд░рддрд┐рдпрд╛рдВ, рдкрд░реАрдХреНрд╖рдг рдЖрдзрд╛рд░ (рдПрд╕) рдФрд░ рдЙрддреНрдкрд╛рджрдиред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЗрди рд╕рднреА рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдирд┐рдпрдореЛрдВ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдмреАрдЪ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВ рдЙрди рдХреБрдЫ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рд╕реЗ рдорд┐рд▓рд╛ рдЬрд╣рд╛рдБ рдЙрддреНрдкрд╛рджрди рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирд┐рдпрдореЛрдВ рдХреА рдПрдХ рдореБрдЦреНрдп рдкреНрд░рддрд┐ рдереА рдФрд░ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рд╡рд╣рд╛рдБ рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдерд╛ред
рд╕реАрдбрд░ рд╡рд░реНрдЧ (
рдЙрджрд╛рд╣рд░рдг ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдЪрд▓рд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ
php artisan db:seed AuthSeeder
рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирд┐рдпрдореЛрдВ рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрд╣ рдмреАрдЬрдХ рд╡рд░реНрдЧ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рддреНрдп рдХрд╛ рд╕реНрд░реЛрдд рдмрди рдЬрд╛рддрд╛ рд╣реИред рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдЕрднреА рднреА рдХрдИ рдЕрд╕реБрд╡рд┐рдзрд╛рдПрдВ рд╣реИрдВ:
- рд╕реАрдбрд░ рдХреЛ рдЗрддрдирд╛ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡рд╣ рди рдХреЗрд╡рд▓ рднреВрдорд┐рдХрд╛ рдФрд░ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдмрдирд╛рдП, рдмрд▓реНрдХрд┐ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рднреА рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░реЗрдВред рдпрд╛рдиреА рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рднреВрдорд┐рдХрд╛рдУрдВ рдФрд░ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд▓рд┐рдВрдХ рдирд┐рдХрд╛рд▓реЗрдВ рдпрд╛ рдмрдирд╛рдПрдВред
- рдирд┐рдпрдо рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рдирд┐рд░рдВрддрд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдкреНрд░рдкрддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рд╡рд░реНрддрди "рд╕рдВрдкрд╛рджрдХреЛрдВ рдХреЛ рдЕрдм рдкрджреЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреЗрд╡рд▓ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ" рдмреАрдЬрдХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдХреЛрдб рдпрд╛ рдХреБрдЫ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдбрдмреЗрд╕ рдХрд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди, рдФрд░ "рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреВрд▓ рдирд╣реАрдВ рд╣реИ!"
- рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдирд┐рдпрдо рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреНрд░рдХрд╛рд╢рди рдХреЛ рди рдХреЗрд╡рд▓ рд╕рдВрдкрд╛рджрдХреЛрдВ рдпрд╛ рдкреНрд░рд╢рд╛рд╕рдХреЛрдВ рджреНрд╡рд╛рд░рд╛, рдмрд▓реНрдХрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ рднреА рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЗ рдмрдЬрд╛рдп:
['middleware' => ['permission:edit posts']]
рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдорд╛рдирдХ рд▓рд╛рд░реНрд╡рд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
class PostPolicy { public function edit(User $user, Post $post) { return $user->id == $post->owner_id || $user->hasPermissionTo('edit posts'); } }
рддреЛ рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ?
рдпрд╣ рд╕рд┐рд░реНрдл рд╕рд░рд▓ рджрд┐рдЦрддрд╛ рд╣реИ: рдкреИрдХреЗрдЬ рд░рдЦреЛ, рд╕рдорд╛рдкреНрдд рдкреНрд░рд╡рд╛рд╕ рдЪрд▓рд╛рдПрдВ рдФрд░ рдЬрд╛рдПрдВред рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдорд░реНрдерди рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред
рдЖрдЗрдП рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП? рд╕рд┐рдВрдкрд▓ рд░реЛрд▓-рдкреНрд▓реЗрдЗрдВрдЧ рд╕рд┐рд╕реНрдЯрдоред рдкреНрд░рддрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдПрдХ рднреВрдорд┐рдХрд╛ред рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХред рдЦреИрд░, рд╢рд╛рдпрдж рдПрдХ рдФрд░ рд╕рдВрдкрд╛рджрдХ рдпрд╛ рдореЙрдбрд░реЗрдЯрд░ред рдФрд░ рдЗрди рднреВрдорд┐рдХрд╛рдУрдВ рдореЗрдВ рдХреБрдЫ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╣реИрдВред рд╕рдмрд╕реЗ рд╕реАрдзрд╛ рд░рд╛рд╕реНрддрд╛ рдЪрд▓реЛ! рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдирдпрд╛ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝реЗрдВ!
is_admin рдпрд╛
рднреВрдорд┐рдХрд╛ ред рдлрд┐рд░
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд░реНрдЧ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рдЬреЛрдбрд╝реЗ:
class User { public function isAdmin(): bool {...} public function isEditor(): bool {...} }
рдЕрдм рдкрд░рдореАрд╢рдиред рд▓рд╛рд░рд╡реЗрд▓ рдЙрдиреНрд╣реЗрдВ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдмреБрдирд┐рдпрд╛рджреА рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
рдЧреЗрдЯреНрд╕ рдФрд░
рдиреАрддрд┐рдпрд╛рдВ ред рдореИрдВ рдЧреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдБрдЧрд╛ (рдПрдХ рдЪрд░ рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЕрднреА рднреА рдПрдХ рдЫреЛрдЯреА рд╕реА рдЪрд╛рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдкреНрд░реЗрдорд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЪрд╛рд▓ рдирд╣реАрдВ рд╣реИ):
$isAdmin = function (User $user) { return $user->isAdmin(); } $isEditorOrAdmin = function (User $user) { return $user->isAdmin() || $user->isEditor(); } Gate::define('foo-permission', $isAdmin); Gate::define('bar-permission', $isAdmin); Gate::define('editor-permission', $isEditorOrAdmin);
рдпрджрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкреНрд░рддрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрдИ рднреВрдорд┐рдХрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдмрд╕
user_roles рддрд╛рд▓рд┐рдХрд╛ рдЬреЛрдбрд╝реЗрдВ рдФрд░
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд░реНрдЧ рдХреЗ рд╕рд╣рд╛рдпрдХреЛрдВ рдХреЛ рдмрджрд▓ рджреЗрдВред рдмреАрдЬрдХ рд╡рд░реНрдЧ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП * рдЯреНрд░рд╕реНрдЯ рдкреИрдХреЗрдЬ рдФрд░ рдпрд╣ рдХреЛрдб-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИрдВ! рд▓реЗрдХрд┐рди рдирд┐рдпрдо рдЕрдм рдХреЗрд╡рд▓ рдХреЛрдб рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд▓рдЧрд╛рддрд╛рд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рдХрд┐ рдпреЗ рдкреИрдХреЗрдЬ рдмреЗрдХрд╛рд░ рд╣реИрдВред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдПрдХ рдЬрдЯрд┐рд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ, рдЬрд╣рд╛рдВ рдЧреНрд░рд╛рд╣рдХ рдЦреБрдж рднреВрдорд┐рдХрд╛рдУрдВ рдХреЛ рдмрд╛рдж рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдЧрддрд┐рд╢реАрд▓ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рднреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг: рд╕рдмрдлрд╝реЛрд░рдореНрд╕ рд╡рд╛рд▓рд╛ рдлрд╝реЛрд░рдоред рдкреНрд░рддреНрдпреЗрдХ рдЙрдк-рдордВрдЪ рдХреЗ рдЕрдкрдиреЗ рдордзреНрдпрд╕реНрде рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдордзреНрдпрд╕реНрде рдХреЗ рдкрд╛рд╕ рдЗрд╕ рдЙрдк-рдордВрдЪ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЕрдзрд┐рдХрд╛рд░ рд╣реИрдВред рдПрдХ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдФрд░ рдЙрд╕рдХреЗ рд╕рдореВрд╣ рд╣реИрдВред рдПрдХ рд╣реА рдмрд╛рдд рд╣реИред рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЬрдЯрд┐рд▓, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдЕрдкрдиреА рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреНрдп рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рдбреЗрд▓реНрдлреА рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рдбреЗрд▓реНрдлреА рдХреЗ рд▓рд┐рдП рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рдорд╛рди рд╣реЛ рдЬрд╛рддреА рд╣реИ (рдкреБрд░рд╛рдиреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╛рдж рд╣реИ)ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╣рд┐рдЪрдХрд┐рдЪрд╛рд╣рдЯ рдХреЗ рдкреИрдХреЗрдЬ рд▓рдЧрд╛рдП - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд░реВрд░рдд рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ $ + $ b рдХреА рдЧрдгрдирд╛ рдпрд╣рд╛рдБ рдХрд░рдиреА рд╣реЛрдЧреАред рдХреНрдпрд╛ рдХреЛрдИ рд▓рд╛рд░реНрд╡рд╛-рд╕рдо рдкреИрдХреЗрдЬ рд╣реИ?
PS рдореИрдВ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдорд╛рдБрдЧрддрд╛ рд╣реВрдБ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдЯреАрдХ рдЕрдиреБрд╡рд╛рдж рдирд╣реАрдВ рдорд┐рд▓рд╛ред