2013-07-29 4 views
3

기본적으로 사용자 권한이 필요합니다.Laravel 4에서 사용자 권한을 구현하는 방법은 무엇입니까?

데이터베이스에 'accounts'라는 테이블이 있습니다. 'group_id'라는 열이 있습니다. 'group_id'= 3이면 사용자를 설정하고 사용자는 admin입니다. 그런 다음 특수 사이트, 버튼 등을 볼 수 있습니다.

public function ($roleName) { 
    $role = $this->roles; 

    if ($role->name == $roleName) { 
     return true; 
    } 

    return false; 
} 

은 또한, 나는 내가 그와 같은 새로운 물건을 필요하고 모델이 필요 어떻게 할 모르겠어요 : 나는 그런 일을 구현하기 위해 노력했습니다.

+0

난 정말 당신이 원하는 것을 얻을하지 않습니다. 또한 함수에 이름이 있어야한다는 것을 알고 있습니까? – rmobis

+0

@Raphael_ 예, 방금 수행해야하는 간단한 예를 복사했습니다. 또한 'group_id'(데이터베이스의 열)가 3 일 때 관리자 권한이 있습니다 (보기 및 관리자 대시 보드 등). – dinomuharemagic

+0

기본적으로'users' 테이블과'groups' 테이블이 있습니다. 당신은 그들 사이의 관계를 어떻게 구축하고 있는지 궁금합니다. – rmobis

답변

1

개인적으로 사용자 관리를 위해 Verify 패키지를 사용합니다.

+1

고마워요.하지만 많은 코드가 필요 없다고 생각합니다. 나는 특정 사물을 볼 수있는 역할 하나가 필요합니다. – dinomuharemagic

+0

Ahh 알겠습니다 ... 전에 그러한 기능을 구현했습니다. 내가 한 것은 특정 역할이 특정 작업이나 전체 컨트롤러 자체에 액세스 할 수 있는지 확인하는 사용자 정의 '이전'필터를 만든 것입니다. 어쩌면 당신도 똑같이 할 수 있습니다. – Melvin

+0

나는 네가 무슨 뜻인지 안다. 그러나 나에게 새로운 것이 야. 어떻게해야하는지 모든 암시 야? – dinomuharemagic

4

나는 Laravel 4

+1

우연히이 패키지에 대한 훌륭한 자습서를 알고 있습니까? github 문서는 기껏해야 약합니다. 역할을 만들거나 역할에 권한을 첨부하는 방법을 보여주지 않습니다. – Chris

6

오래된 게시물에 대한 Authority을 제안,하지만 어쩌면 다른 사람이 유용

사용자가 관리자 인 경우 true를 반환하여 사용자 모델에 메서드를 추가 찾을 수 있습니다. 여기서 우리의 경우 group_id가 3입니까?

// models/User.php 
class User extends Eloquent 
{ 
    ... 
    public function isAdmin() 
    { 
     return $this->group_id == 3; 
    } 

} 

다음 노선

// filters.php 
Route::filter('admin', function($route, $request) 
{ 
    if (! Auth::user()->isAdmin()) 
    { 
     return App::abort(401, 'You are not authorized.'); 
    } 
}); 

마지막 경로 그룹을 보호하기위한 필터를 사용

을 보호하기 위해 사용될 수있는 필터를 추가한다. 나는이 간단한 경우 만 관리자 사용자가

// routes.php 
Route::group(array('before' => array('auth|admin')), function() 
{ 
    Route::get('/admin', function() 
    { 
     return Response::make("You're an admin!"); 
    } 
}); 

/admin이 게시물을 기반으로 액세스 할 수 있습니다 : http://laravelsnippets.com/snippets/admin-route-filter

관련 문제