8
8
"fmt"
9
9
"strings"
10
10
11
+ "github.com/go-martini/martini"
12
+
11
13
"github.com/gogits/git"
12
14
13
15
"github.com/gogits/gogs/models"
@@ -39,13 +41,13 @@ func SettingPost(ctx *middleware.Context, form auth.RepoSettingForm) {
39
41
if ctx .Repo .Repository .Name != newRepoName {
40
42
isExist , err := models .IsRepositoryExist (ctx .Repo .Owner , newRepoName )
41
43
if err != nil {
42
- ctx .Handle (500 , "repo .SettingPost(update: check existence)" , err )
44
+ ctx .Handle (500 , "setting .SettingPost(update: check existence)" , err )
43
45
return
44
46
} else if isExist {
45
47
ctx .RenderWithErr ("Repository name has been taken in your repositories." , "repo/setting" , nil )
46
48
return
47
49
} else if err = models .ChangeRepositoryName (ctx .Repo .Owner .Name , ctx .Repo .Repository .Name , newRepoName ); err != nil {
48
- ctx .Handle (500 , "repo .SettingPost(change repository name)" , err )
50
+ ctx .Handle (500 , "setting .SettingPost(change repository name)" , err )
49
51
return
50
52
}
51
53
log .Trace ("%s Repository name changed: %s/%s -> %s" , ctx .Req .RequestURI , ctx .User .Name , ctx .Repo .Repository .Name , newRepoName )
@@ -63,7 +65,7 @@ func SettingPost(ctx *middleware.Context, form auth.RepoSettingForm) {
63
65
ctx .Repo .Repository .IsPrivate = form .Private
64
66
ctx .Repo .Repository .IsGoget = form .GoGet
65
67
if err := models .UpdateRepository (ctx .Repo .Repository ); err != nil {
66
- ctx .Handle (404 , "repo .SettingPost(update)" , err )
68
+ ctx .Handle (404 , "setting .SettingPost(update)" , err )
67
69
return
68
70
}
69
71
log .Trace ("%s Repository updated: %s/%s" , ctx .Req .RequestURI , ctx .Repo .Owner .Name , ctx .Repo .Repository .Name )
@@ -72,7 +74,7 @@ func SettingPost(ctx *middleware.Context, form auth.RepoSettingForm) {
72
74
if form .Interval > 0 {
73
75
ctx .Repo .Mirror .Interval = form .Interval
74
76
if err := models .UpdateMirror (ctx .Repo .Mirror ); err != nil {
75
- log .Error ("repo .SettingPost(UpdateMirror): %v" , err )
77
+ log .Error ("setting .SettingPost(UpdateMirror): %v" , err )
76
78
}
77
79
}
78
80
}
@@ -89,13 +91,13 @@ func SettingPost(ctx *middleware.Context, form auth.RepoSettingForm) {
89
91
// Check if new owner exists.
90
92
isExist , err := models .IsUserExist (newOwner )
91
93
if err != nil {
92
- ctx .Handle (500 , "repo .SettingPost(transfer: check existence)" , err )
94
+ ctx .Handle (500 , "setting .SettingPost(transfer: check existence)" , err )
93
95
return
94
96
} else if ! isExist {
95
97
ctx .RenderWithErr ("Please make sure you entered owner name is correct." , "repo/setting" , nil )
96
98
return
97
99
} else if err = models .TransferOwnership (ctx .User , newOwner , ctx .Repo .Repository ); err != nil {
98
- ctx .Handle (500 , "repo .SettingPost(transfer repository)" , err )
100
+ ctx .Handle (500 , "setting .SettingPost(transfer repository)" , err )
99
101
return
100
102
}
101
103
log .Trace ("%s Repository transfered: %s/%s -> %s" , ctx .Req .RequestURI , ctx .User .Name , ctx .Repo .Repository .Name , newOwner )
@@ -108,7 +110,7 @@ func SettingPost(ctx *middleware.Context, form auth.RepoSettingForm) {
108
110
}
109
111
110
112
if err := models .DeleteRepository (ctx .User .Id , ctx .Repo .Repository .Id , ctx .User .LowerName ); err != nil {
111
- ctx .Handle (500 , "repo .Delete" , err )
113
+ ctx .Handle (500 , "setting .Delete" , err )
112
114
return
113
115
}
114
116
log .Trace ("%s Repository deleted: %s/%s" , ctx .Req .RequestURI , ctx .User .LowerName , ctx .Repo .Repository .LowerName )
@@ -126,7 +128,7 @@ func Collaboration(ctx *middleware.Context) {
126
128
remove := strings .ToLower (ctx .Query ("remove" ))
127
129
if len (remove ) > 0 && remove != ctx .Repo .Owner .LowerName {
128
130
if err := models .DeleteAccess (& models.Access {UserName : remove , RepoName : repoLink }); err != nil {
129
- ctx .Handle (500 , "repo .Collaboration(DeleteAccess)" , err )
131
+ ctx .Handle (500 , "setting .Collaboration(DeleteAccess)" , err )
130
132
return
131
133
}
132
134
ctx .Flash .Success ("Collaborator has been removed." )
@@ -136,15 +138,15 @@ func Collaboration(ctx *middleware.Context) {
136
138
137
139
names , err := models .GetCollaborators (repoLink )
138
140
if err != nil {
139
- ctx .Handle (500 , "repo .Collaboration(GetCollaborators)" , err )
141
+ ctx .Handle (500 , "setting .Collaboration(GetCollaborators)" , err )
140
142
return
141
143
}
142
144
143
145
us := make ([]* models.User , len (names ))
144
146
for i , name := range names {
145
147
us [i ], err = models .GetUserByName (name )
146
148
if err != nil {
147
- ctx .Handle (500 , "repo .Collaboration(GetUserByName)" , err )
149
+ ctx .Handle (500 , "setting .Collaboration(GetUserByName)" , err )
148
150
return
149
151
}
150
152
}
@@ -162,7 +164,7 @@ func CollaborationPost(ctx *middleware.Context) {
162
164
}
163
165
has , err := models .HasAccess (name , repoLink , models .AU_WRITABLE )
164
166
if err != nil {
165
- ctx .Handle (500 , "repo .CollaborationPost(HasAccess)" , err )
167
+ ctx .Handle (500 , "setting .CollaborationPost(HasAccess)" , err )
166
168
return
167
169
} else if has {
168
170
ctx .Redirect (ctx .Req .RequestURI )
@@ -175,20 +177,20 @@ func CollaborationPost(ctx *middleware.Context) {
175
177
ctx .Flash .Error ("Given user does not exist." )
176
178
ctx .Redirect (ctx .Req .RequestURI )
177
179
} else {
178
- ctx .Handle (500 , "repo .CollaborationPost(GetUserByName)" , err )
180
+ ctx .Handle (500 , "setting .CollaborationPost(GetUserByName)" , err )
179
181
}
180
182
return
181
183
}
182
184
183
185
if err = models .AddAccess (& models.Access {UserName : name , RepoName : repoLink ,
184
186
Mode : models .AU_WRITABLE }); err != nil {
185
- ctx .Handle (500 , "repo .CollaborationPost(AddAccess)" , err )
187
+ ctx .Handle (500 , "setting .CollaborationPost(AddAccess)" , err )
186
188
return
187
189
}
188
190
189
191
if base .Service .NotifyMail {
190
192
if err = mailer .SendCollaboratorMail (ctx .Render , u , ctx .User , ctx .Repo .Repository ); err != nil {
191
- ctx .Handle (500 , "repo .CollaborationPost(SendCollaboratorMail)" , err )
193
+ ctx .Handle (500 , "setting .CollaborationPost(SendCollaboratorMail)" , err )
192
194
return
193
195
}
194
196
}
@@ -201,9 +203,21 @@ func WebHooks(ctx *middleware.Context) {
201
203
ctx .Data ["IsRepoToolbarWebHooks" ] = true
202
204
ctx .Data ["Title" ] = strings .TrimPrefix (ctx .Repo .RepoLink , "/" ) + " - Webhooks"
203
205
206
+ // Delete webhook.
207
+ remove , _ := base .StrTo (ctx .Query ("remove" )).Int64 ()
208
+ if remove > 0 {
209
+ if err := models .DeleteWebhook (remove ); err != nil {
210
+ ctx .Handle (500 , "setting.WebHooks(DeleteWebhook)" , err )
211
+ return
212
+ }
213
+ ctx .Flash .Success ("Webhook has been removed." )
214
+ ctx .Redirect (ctx .Repo .RepoLink + "/settings/hooks" )
215
+ return
216
+ }
217
+
204
218
ws , err := models .GetWebhooksByRepoId (ctx .Repo .Repository .Id )
205
219
if err != nil {
206
- ctx .Handle (500 , "repo .WebHooks(GetWebhooksByRepoId)" , err )
220
+ ctx .Handle (500 , "setting .WebHooks(GetWebhooksByRepoId)" , err )
207
221
return
208
222
}
209
223
@@ -227,7 +241,7 @@ func WebHooksAddPost(ctx *middleware.Context, form auth.NewWebhookForm) {
227
241
}
228
242
229
243
ct := models .CT_JSON
230
- if form .ContentType == "form " {
244
+ if form .ContentType == "2 " {
231
245
ct = models .CT_FORM
232
246
}
233
247
@@ -236,25 +250,87 @@ func WebHooksAddPost(ctx *middleware.Context, form auth.NewWebhookForm) {
236
250
Payload : form .Url ,
237
251
ContentType : ct ,
238
252
Secret : form .Secret ,
239
- IsActive : form .Active ,
253
+ HookEvent : & models.HookEvent {
254
+ PushOnly : form .PushOnly ,
255
+ },
256
+ IsActive : form .Active ,
240
257
}
241
- h := & models.HookEvent {
242
- PushOnly : form .PushOnly ,
243
- }
244
- if err := w .SaveEvent (h ); err != nil {
245
- ctx .Handle (500 , "repo.WebHooksAddPost(SaveEvent)" , err )
258
+ if err := w .SaveEvent (); err != nil {
259
+ ctx .Handle (500 , "setting.WebHooksAddPost(SaveEvent)" , err )
246
260
return
247
261
} else if err := models .CreateWebhook (w ); err != nil {
248
- ctx .Handle (500 , "repo .WebHooksAddPost(CreateWebhook)" , err )
262
+ ctx .Handle (500 , "setting .WebHooksAddPost(CreateWebhook)" , err )
249
263
return
250
264
}
251
265
252
266
ctx .Flash .Success ("New webhook has been added." )
253
267
ctx .Redirect (ctx .Repo .RepoLink + "/settings/hooks" )
254
268
}
255
269
256
- func WebHooksEdit (ctx * middleware.Context ) {
270
+ func WebHooksEdit (ctx * middleware.Context , params martini. Params ) {
257
271
ctx .Data ["IsRepoToolbarWebHooks" ] = true
258
272
ctx .Data ["Title" ] = strings .TrimPrefix (ctx .Repo .RepoLink , "/" ) + " - Webhook"
273
+
274
+ hookId , _ := base .StrTo (params ["id" ]).Int64 ()
275
+ if hookId == 0 {
276
+ ctx .Handle (404 , "setting.WebHooksEdit" , nil )
277
+ return
278
+ }
279
+
280
+ w , err := models .GetWebhookById (hookId )
281
+ if err != nil {
282
+ if err == models .ErrWebhookNotExist {
283
+ ctx .Handle (404 , "setting.WebHooksEdit(GetWebhookById)" , nil )
284
+ } else {
285
+ ctx .Handle (500 , "setting.WebHooksEdit(GetWebhookById)" , err )
286
+ }
287
+ return
288
+ }
289
+
290
+ w .GetEvent ()
291
+ ctx .Data ["Webhook" ] = w
259
292
ctx .HTML (200 , "repo/hooks_edit" )
260
293
}
294
+
295
+ func WebHooksEditPost (ctx * middleware.Context , params martini.Params , form auth.NewWebhookForm ) {
296
+ ctx .Data ["IsRepoToolbarWebHooks" ] = true
297
+ ctx .Data ["Title" ] = strings .TrimPrefix (ctx .Repo .RepoLink , "/" ) + " - Webhook"
298
+
299
+ if ctx .HasError () {
300
+ ctx .HTML (200 , "repo/hooks_add" )
301
+ return
302
+ }
303
+
304
+ hookId , _ := base .StrTo (params ["id" ]).Int64 ()
305
+ if hookId == 0 {
306
+ ctx .Handle (404 , "setting.WebHooksEditPost" , nil )
307
+ return
308
+ }
309
+
310
+ ct := models .CT_JSON
311
+ if form .ContentType == "2" {
312
+ ct = models .CT_FORM
313
+ }
314
+
315
+ w := & models.Webhook {
316
+ Id : hookId ,
317
+ RepoId : ctx .Repo .Repository .Id ,
318
+ Payload : form .Url ,
319
+ ContentType : ct ,
320
+ Secret : form .Secret ,
321
+ HookEvent : & models.HookEvent {
322
+ PushOnly : form .PushOnly ,
323
+ },
324
+ IsActive : form .Active ,
325
+ }
326
+ if err := w .SaveEvent (); err != nil {
327
+ ctx .Handle (500 , "setting.WebHooksEditPost(SaveEvent)" , err )
328
+ return
329
+ } else if err := models .UpdateWebhook (w ); err != nil {
330
+ ctx .Handle (500 , "setting.WebHooksEditPost(WebHooksEditPost)" , err )
331
+ return
332
+ }
333
+
334
+ ctx .Flash .Success ("Webhook has been updated." )
335
+ ctx .Redirect (fmt .Sprintf ("%s/settings/hooks/%d" , ctx .Repo .RepoLink , hookId ))
336
+ }
0 commit comments