Slide 1

Slide 1 text

Authorization no Laravel 5.1

Slide 2

Slide 2 text

Hello! Programador Desenvolvedor web WebDesigner wannabe Leroy Merlin (Laravel) Sempre mais http://zizaco.net Luiz Fernando / Zizaco

Slide 3

Slide 3 text

ACL

Slide 4

Slide 4 text

308 mil Instalações do Entrust

Slide 5

Slide 5 text

308 mil Instalações do Entrust 449 mil Instalações do Sentry 12% Do total de instalações do Laravel

Slide 6

Slide 6 text

Taylor Otwell

Slide 7

Slide 7 text

O que é Laravel? "A framework is a set of classes (code) that embodies an abstract design for solutions to a family of related problems." - Brian Foote

Slide 8

Slide 8 text

O que é Laravel? A B C

Slide 9

Slide 9 text

O que é Laravel? A B C

Slide 10

Slide 10 text

https://laravel-news.com/2015/08/laravel-5-1-11-released-now-with-authorization/

Slide 11

Slide 11 text

Laravel's (5.1.11) Authorization

Slide 12

Slide 12 text

Gate (Portão)

Slide 13

Slide 13 text

Gate::allows('edit-post', $post); // true | false @can('edit-post', $post) ... @else ... @endcan Gate::forUser($user)->denies('edit-post', $post); // true | false

Slide 14

Slide 14 text

$gate->allows('edit-post', $post); // true | false @can('edit-post', $post) ... @else ... @endcan $user->can('edit-post', $post); // true | false

Slide 15

Slide 15 text

Ability Gate Polices (Capacidade) (Política) (Portão)

Slide 16

Slide 16 text

( Live Coding )

Slide 17

Slide 17 text

Ability Gate Polices

Slide 18

Slide 18 text

( Live Coding )

Slide 19

Slide 19 text

... protected $abilities = []; protected $policies = []; function ($user, ...$params) { } Ability Gate class FooBarPolicy { public function ability($user, ...$params) Polices

Slide 20

Slide 20 text

Ability Gate Polices $gate->define('edit-post', function ($user, $post) { return $post->user_id === $user->id; }); $gate->policy('App\Post', 'App\Policies\PostPolicy'); class PostPolicy { public function edit($user, $post) { return $post->user_id === $user->id;

Slide 21

Slide 21 text

Gate Gate::allows('edit-post', $post); // true | false Gate::allows('edit', $post); // true | false @can('edit', $post); ... @can('edit-post', $post) ... @else ... @endcan

Slide 22

Slide 22 text

Mr. John Doe { Super Admin } [email protected]

Slide 23

Slide 23 text

Mr. John Doe { Super Admin } [email protected] Roles & Permissions ?

Slide 24

Slide 24 text

Mr. John Doe { Super Admin } [email protected] An Ability that check the Database

Slide 25

Slide 25 text

Ability Gate Polices Role (custom) Permission (custom) (Papel) (Permissão)

Slide 26

Slide 26 text

( Live Coding )

Slide 27

Slide 27 text

Ability Gate Polices Role (custom) Permission (custom)

Slide 28

Slide 28 text

Ability Gate Polices Role (package) Permission (package) Entrust v2.0?

Slide 29

Slide 29 text

Mr. John Doe { Super Admin } [email protected] Perguntas?