0
Tải bản đầy đủ (.docx) (67 trang)

Tùy biến trong mã nguồn

Một phần của tài liệu XÂY DỰNG ỨNG DỤNG TRA CỨU THÔNG TIN CÁC KHÓA HỌC CHO MẠNG XÃ HỘI NGUỒN MỞ (Trang 56 -61 )

Chương 8: PHÂN QUYỀN TRUY CẬP TRONG DOLPHIN

8.2. Tùy biến trong mã nguồn

- Sau khi cài đặt mô-đun vào hệ thống, những câu truy vấn trên sẽ được thực thi và thêm vào cơ sở dữ liệu. Khi đó, trong bảng điều khiển của Admin, trong phần Setting\Membership Levels, trong các quyền của Center sẽ xuất hiện các dòng sau:

Hình - Các quyền trong bảng điều khiển của Admin

- Tiếp theo trong tập tin XXXModule.php trong thư mục “class” của mô-đun thêm hàm _defineActions() định nghĩa lại những quyền đã thêm vào cơ sở dữ liệu, theo như 2 quyền trên thì hàm _defineActions() viết lại như sau:

function _defineActions () {

defineMembershipActions(array ('course post search', 'course post add'));

}

- Hàm defineMembershipActions($aActions, $sPrefix) được định nghĩa trong tập tin “dolphin\inc\membership_levels.inc.php” như sau:

Chương 7: Phân quyền truy cập trong Dolphin

function defineMembershipActions ($aActions, $sPrefix = 'BX_') {

if (defined($sPrefix . strtoupper(str_replace(' ', '_', $aActions[0]))))

return;

$sActions = implode("','", $aActions);

$res = db_res("SELECT `ID`, `Name` FROM `sys_acl_actions` WHERE `Name` IN('$sActions')");

while ($r = mysql_fetch_array($res)) {

define ($sPrefix . strtoupper(str_replace(' ', '_', $r['Name'])), $r['ID']);

} }

- Hàm defineMembershipActions($aActions, $sPrefix) này sẽ định nghĩa lại các quyền theo cấu trúc của Dolphin. Ví dụ:

o Quyền “course post add” sẽ được định nghĩa lại là “BX_COURSE_POST_ADD”.

o Quyền “course 'course post search'” sẽ được định nghĩa lại là “BX_COURSE_POST_SEARCH”.

- Tiếp theo viết các hàm tương ứng để kiểm tra thành viên hiện tại có được sử dụng các quyền đó hay không, ứng với quyền “course post add” ta có hàm tương ứng là isAllowedPostAdd():

function isAllowedPostAdd($isPerformAction = false) { if ($this->isAdmin()) return true;

$this->_defineActions(); $aCheck = checkAction($this->_iVisitorID, BX_COURSE_POST_ADD, $isPerformAction); return $aCheck[CHECK_ACTION_RESULT] == CHECK_ACTION_RESULT_ALLOWED; }

- Tương tự, ứng với quyền “course post search” là hàm

isAllowedPostSearch():

function isAllowedPostSearch($isPerformAction = false) { if ($this->isAdmin()) return true;

$this->_defineActions(); $aCheck = checkAction($this->_iVisitorID, BX_COURSE_POST_SEARCH, $isPerformAction); return $aCheck[CHECK_ACTION_RESULT] == CHECK_ACTION_RESULT_ALLOWED; }

- Khi đã tạo xong các hàm kiểm tra thành viên có được phép sử dụng quyền hay không, bước tiếp theo là khi thực hiện chức năng, phải kèm theo một bước kiểm tra.

Chương 7: Phân quyền truy cập trong Dolphin

if (!$this->isAllowedPostAdd()) {

return $this->_oTemplate->displayAccessDenied(); }

o Nếu thành viên là Center thì cho phép thực hiện chức năng. - Tương tự như vậy cho chức năng tìm kiếm khóa học.

Một phần của tài liệu XÂY DỰNG ỨNG DỤNG TRA CỨU THÔNG TIN CÁC KHÓA HỌC CHO MẠNG XÃ HỘI NGUỒN MỞ (Trang 56 -61 )

×