Toggle navigation
Toggle navigation
This project
Loading...
Sign in
UT
/
ut-tex
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
redmine
2016-04-04 16:31:14 +0300
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
00e85a7b19116cc878654c0145d084110a033165
00e85a7b
1 parent
5dadab42
[decide-note] Fixed moving issue to other project
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
53 additions
and
10 deletions
genpdf/decide-note.php
genpdf/lib/3dparty/Inflect
genpdf/decide-note.php
View file @
00e85a7
...
...
@@ -52,28 +52,57 @@ if ($isGoodSignature === false) {
$redmine_admin
=
new
Redmine\Client
(
'https://redmine.ut.mephi.ru'
,
REDMINE_LOGIN
,
REDMINE_PASSWORD
);
$issue
=
$redmine_admin
->
api
(
'issue'
)
->
show
(
$_GET
[
'issueId'
])[
'issue'
];
$assignedTo
=
$redmine_admin
->
api
(
'user'
)
->
show
(
$issue
[
'assigned_to'
][
'id'
]);
$assignedTo
=
$redmine_admin
->
api
(
'user'
)
->
show
(
$issue
[
'assigned_to'
][
'id'
])
[
'user'
]
;
$api_key
=
$assignedTo
[
'
user'
][
'
api_key'
];
$api_key
=
$assignedTo
[
'api_key'
];
$redmine
=
new
Redmine\Client
(
'https://redmine.ut.mephi.ru'
,
$api_key
);
function
addUserToProject
(
&
$redmine
,
$user_id
,
$project_id
)
{
function
addUserToProject
(
&
$redmine
,
$user_id
,
$project_id
,
$role_id
)
{
error_log
(
"addUserToProject(redmine,
$user_id
,
$project_id
,
$role_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
)
{
if
(
$role
[
'id'
]
==
$role_id
)
{
//print "already there!\n";
return
true
;
}
$cur_roles
[]
=
$role
[
'id'
];
}
return
$redmine
->
api
(
'membership'
)
->
update
(
$membership_id
,
array
(
'role_ids'
=>
array_merge
(
$cur_roles
,
array
(
ROLE_CUSTOMER
))));
$role_ids
=
array
(
'role_ids'
=>
array_merge
(
$cur_roles
,
array
(
$role_id
)));
//print "updating\n";
//print_r($role_ids);
return
$redmine
->
api
(
'membership'
)
->
update
(
$membership_id
,
$role_ids
);
}
}
return
$redmine
->
api
(
'membership'
)
->
create
(
$project_id
,
array
(
'user_id'
=>
$user_id
,
'role_ids'
=>
array
(
ROLE_CUSTOMER
)));
//print "creating\n";
return
$redmine
->
api
(
'membership'
)
->
create
(
$project_id
,
array
(
'user_id'
=>
$user_id
,
'role_ids'
=>
array
(
$role_id
)));
}
function
removeUserFromProject
(
&
$redmine
,
$user_id
,
$project_id
,
$role_id
)
{
error_log
(
"removeUserFromProject(redmine,
$user_id
,
$project_id
,
$role_id
)"
);
$current_membership
=
$redmine
->
api
(
'membership'
)
->
all
(
$project_id
);
foreach
(
$current_membership
[
'memberships'
]
as
$global_key
=>
$member
){
if
(
$member
[
'user'
][
'id'
]
==
$user_id
){
$role_ids
=
array
();
$membership_id
=
$current_membership
[
'memberships'
][
$global_key
][
'id'
];
foreach
(
$current_membership
[
'memberships'
][
$global_key
][
'roles'
]
as
$role
)
{
if
(
$role
[
'id'
]
==
$role_id
)
{
continue
;
}
$role_ids
[]
=
$role
[
'id'
];
}
return
$redmine
->
api
(
'membership'
)
->
update
(
$membership_id
,
$role_ids
);
}
}
return
true
;
}
switch
(
$_GET
[
'action'
])
{
case
'agree'
:
case
'move'
:
header
(
'Content-Type: text/plain'
);
$recipientId
=
NULL
;
...
...
@@ -95,15 +124,29 @@ switch ($_GET['action']) {
die
(
'Произошла ошибка. Пожалуйста, повторите попытку позже. Cannot find login of user with ID: '
.
$recipientId
);
}
//print_r($issue);die();
/*$result = addUserToProject($redmine, $recipientId, $issue['project']['id']);
if ($result !== TRUE) {
$project_id
=
redmine_proj_identifier2id
(
strtolower
(
explode
(
'@'
,
$recipient
[
'mail'
])[
0
]));
addUserToProject
(
$redmine_admin
,
$assignedTo
[
'id'
],
$project_id
,
ROLE_CUSTOMER
);
addUserToProject
(
$redmine_admin
,
$assignedTo
[
'id'
],
$project_id
,
ROLE_MOVER
);
/*$result =*/
/*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'
]));
$issue_props
=
array
(
'project_id'
=>
$project_id
,
'assigned_to_id'
=>
$recipient
[
'id'
]
);
if
(
$_GET
[
'action'
]
==
'agree'
)
$issue_props
[
'status_id'
]
=
STATUSID_NEW
;
//print_r($issue_props);die();
$result
=
$redmine
->
api
(
'issue'
)
->
update
(
$issue
[
'id'
],
$issue_props
);
removeUserFromProject
(
$redmine_admin
,
$assignedTo
[
'id'
],
$project_id
,
ROLE_MOVER
);
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
));
...
...
Inflect
@
a60c8e42
Subproject commit
754ec13a3789333e9c0a2f858116d0aec7edd238
Subproject commit
a60c8e42622081bce1e8a04c0d18eef53791418b
...
...
Please
register
or
login
to post a comment