星期五, 4月 25, 2008

Xataface-依使用者不同限制欄位權限

如果想讓xataface建置的網頁程式,依使用者的不同隱藏網頁部份元素,可以透過xataface提供的自訂css功能。
例如:管理者可以變更使用者的角色,而使用者不能改變角色,可以將表單中的角色欄位隱藏
注意:這個隱藏法只能防一般使用者,進階使用者有可能繞過這個限制,必須再依步驟四設定欄位權限
一、在Users table的 Users.php 新增函數
function block__custom_stylesheets(){
$auth =& Dataface_AuthenticationTool::getInstance();
$user =& $auth->getLoggedInUser();
$role = $user->val('Role');
if ( $role!='ADMIN' ){
echo '<link rel="stylesheet" type="text/css" href="tables/Users/custom.css">';
}
二、建立custom.css
#Users-UserName-label-wrapper, #Users-UserName-wrapper, #UserName, #Users-Role-label-wrapper,#Users- Role-wrapper, #table_tabs, #contentActionsWrapper, #record-tabs-history {
visibility: hidden;
}
四、設定欄位權限-在Users table的 Users.php 新增函數
function UserName__permissions(&$record) {
$auth =& Dataface_AuthenticationTool::getInstance();
$user =& $auth->getLoggedInUser();
$role = $user->val('Role');
if ( $role!='ADMIN') { return Dataface_PermissionsTool::READ_ONLY(); }
return Dataface_PermissionsTool::getRolePermissions($role);
}
function Role__permissions(&$record) {
if ( $role!='ADMIN') { return Dataface_PermissionsTool::READ_ONLY(); }
return Dataface_PermissionsTool::getRolePermissions($role);
}

沒有留言: