मैं अपने ऐप के लिए एक कुशल और लचीला आरबीएसी समाधान के साथ आने की कोशिश कर रहा हूं। मैंने थोड़ा सा शोध किया है और लगता है कि मैंने निम्नलिखित बनाया है।लार्वेल 5 भूमिका आधारित अभिगम नियंत्रण
मेरे उपयोगकर्ता मॉडल में मेरे पास है:
...
public function role() {
return $this->belongsToMany('App\Models\Role', 'user_roles');
}
public function hasRole($role) {
if($this->role->where('name', $role)->first())
return true;
}
...
और उपयोग का एक उदाहरण:
Route::group(['middleware' => 'auth'], function() {
Route::get('/dashboard', function() {
if (Auth::user()->hasRole('Sales')) {
return view('dashboards/sales');
} else {
return 'Don\'t know where to send you :(';
}
});
});
अनुमतियां भूमिकाओं के लिए आवंटित कर रहे हैं, लेकिन अनुमतियाँ ऊपर के उदाहरण में जाँच नहीं कर रहे हैं। भूमिकाओं को तब उपयोगकर्ताओं को सौंपा जाता है और उपयोगकर्ता के पास कई भूमिकाएं हो सकती हैं।
क्या मैंने जिस तरह से स्केल करने योग्य और प्रभावी आरबीएसी समाधान किया है?
5.1.11 प्राधिकरण ने क्षमताओं और नीतियों का उपयोग कर में दी गई है। क्या वे आपकी आवश्यकताओं को पूरा कर सकते हैं? http://laravel.com/docs/5.1/authorization .. आप ENTRUST को आजमा सकते हैं हालांकि https://github.com/Zizaco/entrust – e4rthdog
धन्यवाद, केवल एक चीज यह नहीं बताती है कि कैसे करना है यह कैसे करना है डेटाबेस का उपयोग कर कुछ उपयोगकर्ताओं को क्षमताओं। – imperium2335
इसके बजाय आप उपयोगकर्ता मॉडल के माध्यम से क्षमता की जांच करते हैं ... http: //laravel.com/docs/5.1/authorization#defining-abilities – e4rthdog