좋아, 난 그냥 내 능력을 향상시키기 위해 PHP에서 더 느슨하게 결합 된 클래스 등을 만드는 데 더 노력하고 있습니다. 내 컴퓨터에 로컬 테스트 데이터베이스가 있고 사용자 테이블에 "role"이라는 열이 있습니다. 사용자에게 권한을 부여하는 일반적인 함수 인 함수를 작성하려고 시도하고 있으므로 사용자가 수행하려고하는 특정 작업에 의존하지 않습니다. 다차원 배열에 사용 권한을 저장 PHP
사용자는 내가 데이터베이스를 조회 할 등 새로운 포럼 주제를 만들고으로 뭔가를 시도
"역할은"특정 값, 다음과 같은 다차원 배열에 저장 권한 인 경우$permissions = array(
'forums' => array("create", "delete", "edit", "lock"),
'users' => array("edit", "lock")
);
은
그런 다음 사용자가 isset ($ var)을 검사하여 양식을 게시 한 후 모든 PHP 파일의 맨 위에 다음을 입력하지 않고 특정 사용 권한에 대해 해당 배열을 검색 할 수 있기를 원합니다. 사용자가 사용자를 편집하려고하면 그래서 가능하면 클래스의 방법을 통해 다음과 같은 일을 할 수 있도록하려면
if (Class::get_permissions($userID),array($permissionType=>$permission))) {
// do query
} else {
// return error message
}
것이다 체크 기능을 느슨하게 연결된 권한이 할 수있는 좋은 방법이 될 것입니다 방법 이런 식으로 할 수 있을까요? 정확히 이렇게 배치 할 필요는 없지만 느슨하게 결합하여 재사용 할 수 있고 특정 작업에 묶이지 않아도됩니다. 하지만 재사용을 위해 "admin", "user"등의 권한을 대신 사용할 수 있기를 원하며 따라서 내 옵션을 제한하지 않습니다. 때문에 지금은 내 PHP 스크립트 파일의 상단에 같은 코드 잔뜩 있습니다.
if (Class::get_permissions($userID) == "admin") {
// allow query
} else {
// return error
}
내가 입력 한 내용을 받아 들여 주셔서 감사합니다.
젠드의 ACL 섹션은 acl의 작동 방식에 대한 소개를 잘 받았습니다. http://framework.zend.com/manual/en/zend.acl.introduction.html –