1
1
// Copyright 2016 The Gogs Authors. All rights reserved.
2
+ // Copyright 2018 The Gitea Authors. All rights reserved.
2
3
// Use of this source code is governed by a MIT-style
3
4
// license that can be found in the LICENSE file.
4
5
@@ -165,7 +166,7 @@ func CreateIssue(ctx *context.APIContext, form api.CreateIssueOption) {
165
166
// "$ref": "#/responses/Issue"
166
167
167
168
var deadlineUnix util.TimeStamp
168
- if form .Deadline != nil {
169
+ if form .Deadline != nil && ctx . Repo . IsWriter () {
169
170
deadlineUnix = util .TimeStamp (form .Deadline .Unix ())
170
171
}
171
172
@@ -178,15 +179,22 @@ func CreateIssue(ctx *context.APIContext, form api.CreateIssueOption) {
178
179
DeadlineUnix : deadlineUnix ,
179
180
}
180
181
181
- // Get all assignee IDs
182
- assigneeIDs , err := models .MakeIDsFromAPIAssigneesToAdd (form .Assignee , form .Assignees )
183
- if err != nil {
184
- if models .IsErrUserNotExist (err ) {
185
- ctx .Error (422 , "" , fmt .Sprintf ("Assignee does not exist: [name: %s]" , err ))
186
- } else {
187
- ctx .Error (500 , "AddAssigneeByName" , err )
182
+ var assigneeIDs = make ([]int64 , 0 )
183
+ var err error
184
+ if ctx .Repo .IsWriter () {
185
+ issue .MilestoneID = form .Milestone
186
+ assigneeIDs , err = models .MakeIDsFromAPIAssigneesToAdd (form .Assignee , form .Assignees )
187
+ if err != nil {
188
+ if models .IsErrUserNotExist (err ) {
189
+ ctx .Error (422 , "" , fmt .Sprintf ("Assignee does not exist: [name: %s]" , err ))
190
+ } else {
191
+ ctx .Error (500 , "AddAssigneeByName" , err )
192
+ }
193
+ return
188
194
}
189
- return
195
+ } else {
196
+ // setting labels is not allowed if user is not a writer
197
+ form .Labels = make ([]int64 , 0 )
190
198
}
191
199
192
200
if err := models .NewIssue (ctx .Repo .Repository , issue , form .Labels , assigneeIDs , nil ); err != nil {
0 commit comments