вторник, 12 июня 2012 г.

Настройка mantis

1. Инсталляция

1. Копируем файл config.inc.php.sample в config.inc.php
2. Создаем пользователя в PHPmyadmin, даем пользователю разрешения на создание баз
3. Прописываем параметры созданного пользователя.

2. Конфигурация

Полный перечень параметров: http://www.mantisbt.org/manual/manual.configuration.php

Меняем:
$g_default_language = 'russian'
$g_use_iis = ON

3. Заполнение таблицы юзеров

Тянем из таблиц Astral скриптом (см. ниже).
Откуда берем cookie для БД? Генерим рандомно: http://old.nabble.com/HowTo-automatically-create-create-users--td3508638.html

4. Прозрачная аутентификация AD-пользователей

Нужно подключить дополнительный плагин "adLogin" и модифицировать файл authentication_api.php, как описано в readme.
Плагин и howto можно скачать в http://www.mantisbt.org/bugs/view.php?id=12627



Скрипт загрузки, версия от 13.06.12

#!/usr/local/bin/php

<?php
error_reporting(0);

echo "\n\n############### LOAD USERS FROM ASTRAL DB TO MANTIS DB #################\n\n";

################################################################################
# 1. Load users from ASTRAL DB to array "users()"
################################################################################

$server="localhost";
$user="root";
$pass="пароль";
$DB="astral";
mysql_connect($server,$user,$pass) or die("Can't connect to ASTRAL DB!");
mysql_select_db($DB);

$get_astral_users= "SELECT login,name,telephone,location,function,department,company,mail,manager FROM users where active_flag = '0' ORDER BY name";
$astral_users=mysql_query($get_astral_users);


$users = array();
$mails = array();

while($astral_row=mysql_fetch_array($astral_users)){
        $i = strtolower($astral_row[login]);
        $users[$i] = $astral_row[name];
        $mails[$i] = $astral_row[mail];
        #echo $users[$i][realname]. $users[$i][mail]."\n";
}

mysql_close();

#################################################################################
# 2. Compare array "users()" and BUGTRACKER DB, load missed users
#################################################################################

$server="localhost";
$user="root";
$pass="пароль";
$DB1="bugtracker";
mysql_connect($server,$user,$pass) or die("Can't connect to BUGTRACKER DB!");
mysql_select_db($DB1);

$updated_count = 0;
$added_count = 0;

echo "\nProcessing...\n";

foreach ($users as $array_username => $array_realname) {
        $num_user = mysql_query("SELECT username FROM mantis_user_table WHERE username = '$array_username';");
        $num_pair = mysql_num_rows($num_user);

        if ($num_pair == 1) {
          mysql_query("UPDATE mantis_user_table SET realname =  '$array_realname', email = '$mails[$array_username]' WHERE  username = '$array_username';");
          $updated_count++;
          #echo "update user ".$array_username."\n";
        }

        if ($num_pair == 0) {
          mysql_query("INSERT INTO mantis_user_table(username, realname, email, password, access_level, date_created, cookie_string) VALUES ('$array_username','$array_realname','$mails[$array_username]','2c216b1ba5e33a27eb6d3df7de7f8c36','25', UNIX_TIMESTAMP(now()),CONCAT( MD5(RAND()), MD5(NOW())) );");
          $added_count++;
          echo "    ...added user ".$array_username."\n";
        }
}

echo "1. Loaded users from ASTRAL: ".count($users)."\n";
echo "2. Added users to MANTIS DB:  ".$added_count."\n";
echo "3. Updated users in MANTIS DB: ".$updated_count."\n";


mysql_close();
echo "\n\n";
?>

Комментариев нет:

Отправить комментарий