整合Mantis系統之技術文件
目錄
Mantis 開放 LDAP、local 登入
在 config_inc.php 中加入以下數行:
$g_login_method = LDAP; $g_ldap_server = 'tiger.cc.ncu.edu.tw'; $g_ldap_port = '389'; $g_ldap_root_dn = 'dc=cc,dc=ncu'; $g_ldap_organization = ; $g_ldap_uid_field = 'uid'; $g_ldap_bind_dn = 'dc=cc,dc=ncu'; $g_ldap_bind_passwd = ; $g_use_ldap_email = OFF;
在 core/authentication_api.php 中
修改 function auth_does_password_match() 將 $t_password = user_get_field( $p_user_id, 'password' ); 移到 if ( LDAP == $t_configured_login_method ) 這行前 並將 if ( LDAP == $t_configured_login_method ) { return ldap_authenticate( $p_user_id, $p_test_password ); } 修改成 if ( LDAP == $t_configured_login_method ) { if($t_password == NULL) return ldap_authenticate( $p_user_id, $p_test_password ); }
下一行 array 中加上 LDAP $t_login_methods = Array(MD5, CRYPT, PLAIN); 變成 $t_login_methods = Array(MD5, CRYPT, PLAIN, LDAP);
修改 function auth_process_plain_password case MD5: $t_processed_password = md5( $p_password ); 加上 case LDAP: case MD5: case LDAP: $t_processed_password = md5( $p_password );
在 core/user_api.php 中 修改 function user_create()
修改 $c_password = db_prepare_string( $t_password ); 為 $c_password = NULL;
在 account_page.php 中
修改 <?php if ( !helper_call_custom_function( 'auth_can_change_password', array() ) ) { ?> 為 <?php if(user_get_field($u_id,'password') == NULL){?>
設定完成後 將舊版 HelpDesk 的資料庫匯入需要更改 mantis_user_table 中的資料
將 password 那個欄位設為 NULL 使用 SQL UPDATE 指令
UPDATE `mantis_user_table` SET password= where username not in('administrator');
在 mantis 建立 local 帳號方式
依照正常步驟新增一個使用者之後
進資料庫
update users set password=md5('$newpass')
即可,
需要注意的是這個帳號是否與ldap帳號有重覆的問題
與 wiki 的連結
在 config_inc.php 中加入以下數行
# Wiki Integration Enabled? $g_wiki_enable = ON; # Wiki Engine $g_wiki_engine = 'mediawiki'; # Wiki namespace to be used as root for all pages relating to this mantis installation. $g_wiki_root_namespace = 'mantis'; # URL under which the wiki engine is hosted. Must be on the same server. $g_wiki_engine_url = $t_protocol . '://'.$t_host.'/%wiki_engine%/'; #計中目前設置為 $g_wiki_engine_url = $t_protocol.'://wiki.cc.ncu.edu.tw/wiki/';
將 core/wiki_mediawiki_api.php中
function wiki_mediawiki_get_url_for_page_id( $p_page_id ) { .... return $t_root_url . 'index.php/' . urlencode( $t_page_id ); }
return 中的 'index.php' 刪除 方可以正確的位置連接到 wiki 頁面 即
return $t_root_url . urlencode( $t_page_id );
從各回報的 bug 中點 wiki 的選項將之導到 mantis:project_name bug_category
修改 core/wiki_mediawiki_api.php
function wiki_mediawiki_get_page_id_for_issue( $p_issue_id ){ //return $c_issue_id; (將此行 刪除\註解 改為下面那行) return project_get_name(bug_get_field($c_issue_id,'project_id')) . '_' . bug_get_field($c_issue_id,'category'); }
連結 wiki 時開新視窗
在 bug_view_page.php 及 bug_view_advanced_page.php 中
找到 print_bracket_link( 'wiki.php?id='.$f_bug_id, lang_get( 'wiki' )) 加上第三個參數 true 變成 print_bracket_link( 'wiki.php?id='.$f_bug_id, lang_get( 'wiki' ), true )
在 core/html_api.php 中 找到
$t_menu_options[] = '<a href="wiki.php?type=project&id=' . $t_current_project . '">' . lang_get( 'wiki' ) . '</a>'; 加上 target="_blank" 變成 $t_menu_options[] = '<a href="wiki.php?type=project&id=' . $t_current_project . '" target="_blank">' . lang_get( 'wiki' ) . '</a>';
與現行 HelpDesk 的資料庫整合
將 mantis 更換為較新版本(version 1.1.1) 將舊版 mantis database 匯入後 若 admin 資料夾存在 登入頁面會出現 WARNING: The database structure may be out of date. Please upgrade here before logging in. 點選 here 更新資料庫即可
匯入後由於舊版 mantis 的 中文預設 是 big5 所以在 mantis_user_pref_table 這個 table 中存 chinese_traditional_utf8 新版則更名為 chinese_traditional 處理方法為在 mysql 下 update 指令
UPDATE `mantis_user_pref_table` SET language='chinese_traditional';
更改mantis寄件者的email
mantis安裝後預設寄件者是 noreply@example.com 將之更改為 noreply@cc.ncu.edu.tw 方法是
在 config_inc.php 中加入 $g_from_email = 'noreply@cc.ncu.edu.tw';
限制註冊帳號
在 config_inc.php 中加入
$g_allow_signup = false;
鎖住註冊帳號的功能 (預設為 true)