44
55use Blade ;
66use Illuminate \Support \ServiceProvider ;
7- use Illuminate \Support \Str ;
87
98class AclServiceProvider extends ServiceProvider
109{
@@ -24,15 +23,7 @@ public function boot()
2423 {
2524 $ this ->publishConfig ();
2625 $ this ->loadMigrationsFrom (__DIR__ . '/../../migrations ' );
27-
28- $ laravel = app ();
29- if ( substr ($ laravel ::VERSION , 0 , 2 ) === (string ) "5.0 " ) {
30- $ this ->registerBlade5_0 ();
31- } else if ( (substr ($ laravel ::VERSION , 0 , 2 ) === (string ) "5.1 " ) || (substr ($ laravel ::VERSION , 0 , 2 ) === (string ) "5.2 " ) ) {
32- $ this ->registerBlade5_1 ();
33- } else {
34- $ this ->registerBlade5_3 ();
35- }
26+ $ this ->registerBladeDirectives ();
3627 }
3728
3829 /**
@@ -57,7 +48,7 @@ public function publishConfig()
5748 ], 'config ' );
5849 }
5950
60- protected function registerBlade5_3 ()
51+ public function registerBladeDirectives ()
6152 {
6253 // role
6354 Blade::directive ('role ' , function ($ expression ) {
@@ -70,62 +61,11 @@ protected function registerBlade5_3()
7061
7162 // permission
7263 Blade::directive ('permission ' , function ($ expression ) {
73- return "<?php if (Auth::check() && Auth::user()->can( {$ expression })): ?> " ;
74- });
75-
76- Blade::directive ('endpermission ' , function () {
77- return "<?php endif; ?> " ;
78- });
79- }
80-
81- /**
82- * Register Blade Template Extensions for >= L5.1
83- */
84- protected function registerBlade5_1 ()
85- {
86- // role
87- Blade::directive ('role ' , function ($ expression ) {
88- return "<?php if (Auth::check() && Auth::user()->is {$ expression }): ?> " ;
89- });
90-
91- Blade::directive ('endrole ' , function () {
92- return "<?php endif; ?> " ;
93- });
94-
95- // permission
96- Blade::directive ('permission ' , function ($ expression ) {
97- return "<?php if (Auth::check() && Auth::user()->can {$ expression }): ?> " ;
64+ return "<?php if (Auth::check() && Auth::user()->hasPermission( {$ expression })): ?> " ;
9865 });
9966
10067 Blade::directive ('endpermission ' , function () {
10168 return "<?php endif; ?> " ;
10269 });
10370 }
104-
105- /**
106- * Register Blade Template Extensions for <= L5.0
107- */
108- protected function registerBlade5_0 ()
109- {
110- $ blade = $ this ->app ['view ' ]->getEngineResolver ()->resolve ('blade ' )->getCompiler ();
111- $ blade ->extend (function ($ view , $ compiler ) {
112- $ pattern = $ compiler ->createMatcher ('role ' );
113- return preg_replace ($ pattern , '<?php if (Auth::check() && Auth::user()->is$2): ?> ' , $ view );
114- });
115-
116- $ blade ->extend (function ($ view , $ compiler ) {
117- $ pattern = $ compiler ->createPlainMatcher ('endrole ' );
118- return preg_replace ($ pattern , '<?php endif; ?> ' , $ view );
119- });
120-
121- $ blade ->extend (function ($ view , $ compiler ) {
122- $ pattern = $ compiler ->createMatcher ('permission ' );
123- return preg_replace ($ pattern , '<?php if (Auth::check() && Auth::user()->can$2): ?> ' , $ view );
124- });
125-
126- $ blade ->extend (function ($ view , $ compiler ) {
127- $ pattern = $ compiler ->createPlainMatcher ('endpermission ' );
128- return preg_replace ($ pattern , '<?php endif; ?> ' , $ view );
129- });
130- }
13171}
0 commit comments