2011-12-14 2 views
0

나는 우리 회사의 백엔드를 만드는 중입니다. 나는 기본적으로 3 개의 사용자 그룹을 갖고 싶습니다 ... ADMIN은 모든 기능, ADMIN 이외의 모든 기능에 액세스 할 수있는 관리자, 가장 제한된 기능을 가진 USER ...MYSQL PHP 사용자 권한

MySQL이 사용자를 처리하는 방법을 살펴 보았습니다. 꽤 좋은 시스템이지만 뭔가 유사한 코딩에 꽤 많은 오버 헤드가있는 것처럼 보입니다.

다른 사람들이 제안을했는지 궁금합니다. 나는 그룹 경영을 동적으로 만들고 싶다. 그러나 우리가 중소기업 이래로 그 가치가 있는지 궁금해하고있다. ...

기본적으로 나는 이것과 비슷한 표를 만들 것이다. ..). GROUPID 1 GROUPID이 ADMIN이고 가정하는 것은 사용자입니다 :

PRIVILEGE  GroupID Grant 
USER_ADD  1   "Y" 
USER_ADD  2   "N" 
EDIT_LISTING 1   "Y" 
EDIT_LISTING 2   "Y" 

등등 ... 여기 내가보고하고있는 3 가지 옵션은 다음과 같습니다

  1. 는 사용자 클래스를 구축 어디에 사용자가 로그인 , 클래스가 인스턴스화되고 속성이 설정됩니다. 사용자가 이동할 때마다 새 인스턴스를 생성해야하기 때문에이 방법이 좋지 않습니다.
  2. 쿼리 결과 (SELECT * FROM priveleges WHERE GroupID = : userGroup)를 전역 배열로 저장
  3. 값을 $ _SESSION 변수. 이걸 사용하기에 충분한가요?

누군가 입력이나 다른 아이디어가 있다면 크게 감사하겠습니다.

+0

이렇게하면 사용자 ID \ name을 사용하여 세션에서 사용자 수준을 유지합니다. –

+0

@ 대각선, 고맙습니다. 젠드 아이디어가 효과가 없다면 아마 갈 수있을 것입니다. – guyfromfl

답변

0

나는 당신이 그것에서 배우고 싶지 않는 한 나는 바퀴를 재발 명하려고 노력하지 않을 것이다. Zend Framework을 보았습니까? AuthenticationAuthorization -Module이 포함되어 있습니까?

+0

저는 CodeIgnitor에 더 기대고 있었지만 지금까지이 프로젝트에 참여하고 있습니다. 제가해야 할 사이트를 얼마나 재 작업했는지 궁금합니다. 이 프로젝트는 이미 예상했던 것보다 더 많은 사업을 벌였습니다. 나는 바퀴를 다시 발명하는 것에 동의한다. tha – guyfromfl

+0

모든 것을 다시 쓸 필요는 없다. 젠드 프레임 워크 모듈은 느슨하게 결합되어 있으므로 실제로 필요한 두 개의 모듈 만 사용하고 현재의 나머지 홈 페이지는 유지할 수 있습니다. – Lars

+0

그래, 나는 그 문서를 체크 아웃하는 중이다. 나는 그것을 구현하려고 할지도 모른다. 나는 젠드 밑에서 모든 일을해야 할까 봐 걱정했지만, 생각만큼 무서운 것은 아니다. – guyfromfl

0

이것은 내가이 상황을 처리하는 방법입니다.

  1. 는, 권한/그룹
  2. 사용자가 로그인을 포함하여 사용자 정보를 모두와 함께 사용자 클래스를 작성 세션 변수로 자신의 사용자 개체를 저장하고 당신의 사이트의 모든 전반에 걸쳐 세션 변수를 참조합니다.
  3. 현재 사용자의 권한 수준에 허용되는 옵션/기능 만 표시되도록 페이지를 만듭니다. 예를 들어

:

<?php 
    $Me = new User(user parameters); 
    $_SESSION['currentUser'] = $Me; 

    ... 

    if($_SESSION['currentUser']->GetValue(Permission) == 'Admin') 
    { 
     echo 'You're an admin'; 
    } 
?> 

가 변경/자신의 정보를 업데이트하지 않는 한 번만 사용자 쿼리를 할 그런 식으로. 또한 서버 오버 헤드 및 시간을 절약하는 권한과 관련된 쿼리를 수행 할 필요가 없습니다.

+0

나는 수업을 시작했지만 누군가가 뭔가를했을 때마다 DB를 묻지 않고 어떻게 작동하게하는지 혼란스러워했다. – guyfromfl