Xataface的參數定義在 Dataface/Application.php 的 $prefs array 包含
'show_jump_menu'=>1, // The drop-down menu that allows you to "jump" to any record in the found set.
'show_result_controller'=>1, // Next, previous, page number .. links...
'show_table_tabs'=>1, // Details, List, Find, etc...
'show_actions_menu'=>1, // New record, Show all, delete, etc...
'show_logo'=>1, // Show logo at top right of app
'show_tables_menu'=>1, // The tabs to select a table.
'show_search'=>1, // Show search field in upper right.
'show_record_actions'=>1, // Show actions related to particular record
'show_recent_records_menu'=>1
'show_bread_crumbs' => 1, // Bread crumbs at top of page to show where you are
'show_record_tabs' => 1, // View, Edit, Translate, History, etc...
'show_record_tree' => 1, // Tree to navigate the relationships of this record.
'list_view_scroll_horizontal'=>1, // Whether to scroll list horizontal if it exceeds page width
'list_view_scroll_vertical'=>1
自訂的方式
一、在conf.ini中使用
[_prefs]
show_search = 1
二、在delegate中使用 function getPreferences()
這個部落格僅作為個人工作上遇到的問題和解決方案紀錄,相關步驟未經完整驗證,不一定適用於您所遭遇的狀況,系統如有問題建議您諮詢專業人士,不要自行操作不熟悉的指令或動作,以免造成更嚴重的損害。文中所提各軟體屬各軟體所有權人所有,軟體之異常情形大多為本人操作錯誤所造成,並非軟體原始設計之問題,且大多數問題都在軟體版本更新後獲得解決,本人因所知有限未能即時更新相關資訊,謹此致歉。
星期五, 4月 25, 2008
Xataface-依使用者不同限制紀錄權限
目的:利用setSecurityFilter讓使用者只能改自己的紀錄,不能改別人的紀錄
一、在ApplicationDelegate.php新增函數如下
function getPreferences(){
$mytable =& Dataface_Table::loadTable('Users') ; // load the table named 'my_table'
$auth =& Dataface_AuthenticationTool::getInstance();
$user =& $auth->getLoggedInUser();
$app =& Dataface_Application::getInstance();
$tables =& $app->conf['_tables'];
if ( $user && $user->val('Role') != 'ADMIN' ){
unset($tables['Users']);
$mytable->setSecurityFilter(array('UserID'=>$user->val('UserID')));
}
return array(); // Mandatory!! getPreferences() must return array.
}
一、在ApplicationDelegate.php新增函數如下
function getPreferences(){
$mytable =& Dataface_Table::loadTable('Users') ; // load the table named 'my_table'
$auth =& Dataface_AuthenticationTool::getInstance();
$user =& $auth->getLoggedInUser();
$app =& Dataface_Application::getInstance();
$tables =& $app->conf['_tables'];
if ( $user && $user->val('Role') != 'ADMIN' ){
unset($tables['Users']);
$mytable->setSecurityFilter(array('UserID'=>$user->val('UserID')));
}
return array(); // Mandatory!! getPreferences() must return array.
}
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);
}
例如:管理者可以變更使用者的角色,而使用者不能改變角色,可以將表單中的角色欄位隱藏
注意:這個隱藏法只能防一般使用者,進階使用者有可能繞過這個限制,必須再依步驟四設定欄位權限
一、在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);
}
星期四, 4月 24, 2008
利用bind9的view功能將某台電腦瀏覽網頁導向固定頁面
有時因為電腦中毒或其它原因,不希望某台電腦上網而又無法通知該使用者,可以設法讓該電腦只要打開瀏覽器,不管瀏覽任何網站都會導向同一個警告頁面。
一、找一台網站伺服器製作警告頁面當作網站首頁。
二、設定網站伺服器的"404找不到網頁"的錯誤訊息也指到上一步的警告頁面。
三、在bind 9的dns伺服器中建立block view
view "blocked" {
match-clients { 192.168.0.aaa; 192.168.0.bbb; };
recursion no;
zone "." {
type master;
file "named.err";
};
}; //End of blocked
view "normal" {
match-clients { any; };
recursion no;
zone "." {
type hint;
file "named.root";
};
};
四、建立named.err 只要一筆A紀錄 [ * A 192.168.0.WEB_SERVER_IP ]
◎三、四步也可以考慮改用firewall的dnat功能實作。
一、找一台網站伺服器製作警告頁面當作網站首頁。
二、設定網站伺服器的"404找不到網頁"的錯誤訊息也指到上一步的警告頁面。
三、在bind 9的dns伺服器中建立block view
view "blocked" {
match-clients { 192.168.0.aaa; 192.168.0.bbb; };
recursion no;
zone "." {
type master;
file "named.err";
};
}; //End of blocked
view "normal" {
match-clients { any; };
recursion no;
zone "." {
type hint;
file "named.root";
};
};
四、建立named.err 只要一筆A紀錄 [ * A 192.168.0.WEB_SERVER_IP ]
◎三、四步也可以考慮改用firewall的dnat功能實作。
星期二, 4月 15, 2008
我的Ubuntu一直無法休眠
我的Ubuntu一直無法休眠,參考了網路上這一篇文章修改了/etc/initramfs-tools/conf.d/resume檔案裡的uuid為正確的uuid,後執行update-initramfs -u更新initrd.img。
仍有問題,最後發現是連線中的iscsi設備造成無法休眠。
仍有問題,最後發現是連線中的iscsi設備造成無法休眠。
Ubuntu 8.04 安裝 vmware server
Ubuntu: 8.04
kernel: 2.6.24-16-generic
Vmware server: 1.0.5
vmware-any-any-update-116
1.下載 vmware server 及 vmwar-any-any
2. alien -i VMware-server-1.0.5-80187.i386.rpm
3. cp /lib/libgcc_s.so.1 /usr/lib/vmware/lib/libgcc_s.so.1/
4. cp /usr/lib/libpng12.so.0 /usr/lib/vmware/lib/libpng12.so.0/
5. tar xvf vmware-any-any-update-116.tgz
5. vmware-any-any-update116/runme.pl
kernel: 2.6.24-16-generic
Vmware server: 1.0.5
vmware-any-any-update-116
1.下載 vmware server 及 vmwar-any-any
2. alien -i VMware-server-1.0.5-80187.i386.rpm
3. cp /lib/libgcc_s.so.1 /usr/lib/vmware/lib/libgcc_s.so.1/
4. cp /usr/lib/libpng12.so.0 /usr/lib/vmware/lib/libpng12.so.0/
5. tar xvf vmware-any-any-update-116.tgz
5. vmware-any-any-update116/runme.pl
星期四, 4月 10, 2008
備份windows user profile
---------這裡開始,以下內容貼到backup.cmd中----------------
cd "\Documents and Settings\"
echo ntuser > tmp.txt
echo usrclass >> tmp.txt
echo tmp >> tmp.txt
echo temp >> tmp.txt
echo Cookies >> tmp.txt
echo History >> tmp.txt
xcopy /ehrkcy /exclude:tmp.txt user1\* user1_backup\
del tmp.txt
--------到這裡結束-----------------------------------------------------------
說明:
/exclude 排除tmp.txt內所列之檔案
tmp.txt 為臨時的檔案,內容為要排除的檔案清單,只要目錄檔名中有部份符合的字串就會排除
/ehrkcy 等於 /e /h /r /k /c /y
/e 子目錄含空目錄
/h 含系統檔、隱藏檔
/r 覆蓋唯讀檔
/k 還原唯讀檔的唯讀屬性
/c 遇到錯誤後繼續不要中斷
/y 覆蓋檔案前不詢問
cd "\Documents and Settings\"
echo ntuser > tmp.txt
echo usrclass >> tmp.txt
echo tmp >> tmp.txt
echo temp >> tmp.txt
echo Cookies >> tmp.txt
echo History >> tmp.txt
xcopy /ehrkcy /exclude:tmp.txt user1\* user1_backup\
del tmp.txt
--------到這裡結束-----------------------------------------------------------
說明:
/exclude 排除tmp.txt內所列之檔案
tmp.txt 為臨時的檔案,內容為要排除的檔案清單,只要目錄檔名中有部份符合的字串就會排除
/ehrkcy 等於 /e /h /r /k /c /y
/e 子目錄含空目錄
/h 含系統檔、隱藏檔
/r 覆蓋唯讀檔
/k 還原唯讀檔的唯讀屬性
/c 遇到錯誤後繼續不要中斷
/y 覆蓋檔案前不詢問
訂閱:
文章 (Atom)