redmine

decide-note.php bugfizes

... ... @@ -57,6 +57,21 @@ $assignedTo = $redmine_admin->api('user' )->show($issue['assigned_to']['id'])
$api_key = $assignedTo['user']['api_key'];
$redmine = new Redmine\Client('https://redmine.ut.mephi.ru', $api_key);
function addUserToProject(&$redmine, $user_id, $project_id) {
$current_membership = $redmine->api('membership')->all($project_id);
foreach ($current_membership['memberships'] as $global_key => $member){
if ($member['user']['id'] == $user_id){
$cur_roles=array();
$membership_id = $current_membership['memberships'][$global_key]['id'];
foreach($current_membership['memberships'][$global_key]['roles'] as $role) {
$cur_roles[] = $role['id'];
}
return $redmine->api('membership')->update($membership_id, array ('role_ids' => array_merge($cur_roles, array(ROLE_CUSTOMER))));
}
}
return $redmine->api('membership')->create($project_id, array('user_id' => $user_id, 'role_ids' => array(ROLE_CUSTOMER)));
}
switch ($_GET['action']) {
case 'agree':
header('Content-Type: text/plain');
... ... @@ -70,28 +85,41 @@ switch ($_GET['action']) {
}
if (is_null($recipientId)) {
die('Cannot find recipient custom field in issue: '.$_GET['issueId']);
mail('admin@ut.mephi.ru', 'Got error on decide-note.php', print_r($_GET, 1));
die('Произошла ошибка. Пожалуйста, повторите попытку позже. Cannot find recipient custom field in issue: '.$_GET['issueId']);
}
$recipient = $redmine_admin->api('user')->show($recipientId)['user'];
if (empty($recipient['mail'])) {
die('Cannot find login of user with ID: '.$recipientId);
mail('admin@ut.mephi.ru', 'Got error on decide-note.php', print_r($_GET, 1));
die('Произошла ошибка. Пожалуйста, повторите попытку позже. Cannot find login of user with ID: '.$recipientId);
}
//print_r($issue);die();
/*$result = addUserToProject($redmine, $recipientId, $issue['project']['id']);
if ($result !== TRUE) {
mail('admin@ut.mephi.ru', 'Got error on decide-note.php', print_r($_GET, 1));
die('Произошла ошибка. Пожалуйста, повторите попытку позже. Cannot add user '.$recipientId.' to project '.$issue['project']['id'].': '.print_r($result, 1));
}*/
//print @json_encode($redmine->api('issue')->update($issue['id'], array('status_id' => STATUSID_NEW, 'project_id' => redmine_proj_identifier2id(strtolower(explode('@', $recipient['mail'])[0])), 'assigned_to_id' => $recipient['id'])));
$result = $redmine->api('issue')->update($issue['id'], array('status_id' => STATUSID_NEW, 'project_id' => redmine_proj_identifier2id(strtolower(explode('@', $recipient['mail'])[0])), 'assigned_to_id' => $recipient['id']));
if ($result == true) {
header('Location: https://tasks.mephi.ru/issues/'.$_GET['issueId']);
if ($result !== TRUE) {
mail('admin@ut.mephi.ru', 'Got error on decide-note.php', print_r($_GET, 1));
die('Произошла ошибка. Пожалуйста, повторите попытку позже. Cannot update the issue '.$issue['project']['id'].': '.print_r($result, 1));
}
header('Location: https://tasks.mephi.ru/issues/'.$_GET['issueId']);
break;
case 'decline':
header('Content-Type: text/plain');
//print @json_encode($redmine->api('issue')->update($_GET['issueId'], array('status_id' => STATUSID_DECLINED)));
$result = $redmine->api('issue')->update($_GET['issueId'], array('status_id' => STATUSID_DECLINED));
if ($result == true) {
header('Location: https://tasks.mephi.ru/issues/'.$_GET['issueId']);
if ($result !== TRUE) {
mail('admin@ut.mephi.ru', 'Got error on decide-note.php', print_r($_GET, 1));
die('Произошла ошибка. Пожалуйста, повторите попытку позже. Cannot decline the issue '.$issue['project']['id'].': '.print_r($result, 1));
}
header('Location: https://tasks.mephi.ru/issues/'.$_GET['issueId']);
break;
default:
die('Unknown action: '.$_GET['action']);
... ...
Inflect @ a60c8e42
Subproject commit 754ec13a3789333e9c0a2f858116d0aec7edd238
Subproject commit a60c8e42622081bce1e8a04c0d18eef53791418b
... ...