2013-08-03 6 views
1

PHP에서 "일을하는"응용 프로그램을 만들고 있습니다. 이제는 사용자간에 작업을 공유하기위한 기능을 구현하기 위해 이러한 작업은 기본적으로 폴더입니다. 어떻게하면 일부 사용자에게만 폴더에 대한 액세스 권한을 부여 할 수 있는지 알 수 있습니까? 데이터베이스를 사용하고 싶었지만 현재는 아이디어가 없습니다.사용자간에 폴더를 공유하는 알고리즘

+0

왜 데이터베이스를 사용하지 않습니까? 그리고 실제 폴더를 사용하고 싶습니까? – putvande

+1

폴더를 사용하여 데이터베이스를 사용하십시오. 끔찍한 생각입니다. –

답변

0

예를 들어 MySQL 데이터베이스에 모든 데이터를 저장하지 않는 이유는 무엇입니까? 액세스 규칙을 위임하는 것이 훨씬 쉽습니다.

다른 경우에는이 폴더에만 물마루 PHP 스크립트에 대한 액세스를 허용 할 수 있으며이 PHP 스크립트에서는 사용자가 해당 폴더에 액세스 할 수있는 충분한 권한이 있는지 확인합니다.

귀하의 질문은이 공식에서 매우 모호합니다.

+0

그게 내 생각 이었지만, 사용자가 하나의 작업을 생성 한 다음 다른 사용자를 위해이 작업에 대한 액세스 권한을 부여 할 수 있습니다. 이제 두 명의 사용자가이 작업에 액세스 할 수 있습니다. 그게 내 문제 야. 한 사용자가 다른 사용자의 작업에 대한 액세스 권한을 부여 할 수있는 기능을 구현하는 방법을 모르겠습니다. – Alen

1

데이터베이스를 사용하면 원래 작업 소유자가 다른 사용자를 작업에 할당 할 수 있습니다. 기본 예제로 작업 ID 필드가있는 'task_group'테이블을 만들 수 있습니다. 이것은 기본적으로 각 태스크가 데이터베이스에서 자체 그룹을 갖는 것으로 연결됩니다. 그런 다음 task_group_id 필드와 user_id 필드가있는 'task_group_users'테이블을 만듭니다. 그런 다음이 테이블을 점검하여 사용자가 task_group by user id의 일부인지 확인하십시오. 작업 소유자는 사용자 ID를 task_group_users에 추가하여 그룹에 사용자를 추가 할 수 있습니다.

이 예제는 task_group 테이블 내에 그룹 이름 필드와 권한 수준 필드를 추가하여 작업 당 여러 그룹을 지원하도록 더 확장 될 수 있습니다.

실제 시스템 폴더의 백엔드에 사용할 수 있지만 실제 시스템 그룹은 사용하지 않습니다. 이로 인해 보안 문제가 발생할 수 있으며 궁극적으로 제한 될 것입니다.

+0

감사합니다. 나는 유사한 생각을 가지고 있지만 데이터베이스는 적다. 그래서 'user_id'필드가있는 'users'테이블을 만든 다음 'task_id'필드가있는 'tasks'테이블을 만듭니다. 그런 다음 user_id 및 task_id를 저장하는 세 번째 테이블 'users_tasks'를 만듭니다. 이것은 mysql 표준화이므로 모든 사용자가 더 많은 작업을 가질 수 있으므로 하나의 작업을 두 명 이상의 사용자에게 할당 할 수 있습니다. 좋은 접근 방법인가요? – Alen

+1

죄송합니다. 데이터베이스가 아닌 테이블을 의미했습니다. 하나의 데이터베이스는 사용자 테이블, 작업 테이블, task_group 테이블 및 task_group_user 테이블을 포함합니다. 나는 그것이 가장 기본적인 형태 일 것이라고 확신합니다. 특히 작업 당 하나 이상의 그룹 (편집기 그룹, 개발자 그룹, 관리자 등)이 결국있을 수있는 경우 특히 그렇습니다. – JSON

관련 문제