Skip to content

Commit 07602a0

Browse files
committed
fix
1 parent 32ad9ba commit 07602a0

File tree

7 files changed

+28
-13
lines changed

7 files changed

+28
-13
lines changed

models/user/user.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -799,7 +799,8 @@ func createUser(ctx context.Context, u *User, meta *Meta, createdByAdmin bool, o
799799
}
800800

801801
if err := db.Insert(ctx, &NotificationSettings{
802-
UserID: u.ID,
802+
UserID: u.ID,
803+
Actions: NotificationGiteaActionsFailureOnly,
803804
}); err != nil {
804805
return err
805806
}

models/user/user_notification_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ func TestUserNotificationSettings(t *testing.T) {
1717

1818
settings, err := GetUserNotificationSettings(db.DefaultContext, 1)
1919
assert.NoError(t, err)
20+
assert.NotNil(t, settings.User)
21+
assert.Equal(t, settings.User.ID, settings.UserID)
2022
assert.Equal(t, NotificationGiteaActionsFailureOnly, settings.Actions)
2123

2224
assert.NoError(t, UpdateUserNotificationSettings(db.DefaultContext, &NotificationSettings{
@@ -25,6 +27,8 @@ func TestUserNotificationSettings(t *testing.T) {
2527
}))
2628
settings, err = GetUserNotificationSettings(db.DefaultContext, 1)
2729
assert.NoError(t, err)
30+
assert.NotNil(t, settings.User)
31+
assert.Equal(t, settings.User.ID, settings.UserID)
2832
assert.Equal(t, NotificationGiteaActionsAll, settings.Actions)
2933

3034
assert.NoError(t, UpdateUserNotificationSettings(db.DefaultContext, &NotificationSettings{
@@ -33,5 +37,7 @@ func TestUserNotificationSettings(t *testing.T) {
3337
}))
3438
settings, err = GetUserNotificationSettings(db.DefaultContext, 1)
3539
assert.NoError(t, err)
40+
assert.NotNil(t, settings.User)
41+
assert.Equal(t, settings.User.ID, settings.UserID)
3642
assert.Equal(t, NotificationGiteaActionsDisabled, settings.Actions)
3743
}

routers/web/user/setting/notifications.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"errors"
88
"net/http"
99

10+
"code.gitea.io/gitea/models/unit"
1011
user_model "code.gitea.io/gitea/models/user"
1112
"code.gitea.io/gitea/modules/log"
1213
"code.gitea.io/gitea/modules/optional"
@@ -70,7 +71,7 @@ func NotificationsEmailPost(ctx *context.Context) {
7071

7172
// NotificationsActionsEmailPost set user's email notification preference on Gitea Actions
7273
func NotificationsActionsEmailPost(ctx *context.Context) {
73-
if !ctx.GetContextValue("EnableActions").(bool) {
74+
if !setting.Actions.Enabled || unit.TypeActions.UnitGlobalDisabled() {
7475
ctx.NotFound(nil)
7576
return
7677
}
@@ -86,7 +87,7 @@ func NotificationsActionsEmailPost(ctx *context.Context) {
8687
opts := &user.UpdateNotificationSettingsOptions{
8788
Actions: optional.Some(preference),
8889
}
89-
if err := user.UpdateNotificationSettings(ctx, new(user_model.NotificationSettings), opts); err != nil {
90+
if err := user.UpdateNotificationSettings(ctx, ctx.Doer.ID, opts); err != nil {
9091
log.Error("Cannot set actions email notifications preference: %v", err)
9192
ctx.ServerError("UpdateNotificationSettings", err)
9293
return

services/mailer/mail_workflow_run.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,11 +160,10 @@ func SendActionsWorkflowRunStatusEmail(ctx context.Context, sender *user_model.U
160160
}
161161
sendActionsWorkflowRunStatusEmail(ctx, repo, run, sender, recipients)
162162
return
163-
} else if notifyPref.Actions != user_model.EmailNotificationsDisabled {
163+
} else if notifyPref.Actions != user_model.NotificationGiteaActionsDisabled {
164164
recipients = append(recipients, sender)
165165
}
166166
}
167167

168-
// TODO: Any other recipient?
169168
sendActionsWorkflowRunStatusEmail(ctx, repo, run, sender, recipients)
170169
}

services/user/update.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,10 @@ type UpdateNotificationSettingsOptions struct {
249249
Actions optional.Option[string]
250250
}
251251

252-
func UpdateNotificationSettings(ctx context.Context, settings *user_model.NotificationSettings, opts *UpdateNotificationSettingsOptions) error {
252+
func UpdateNotificationSettings(ctx context.Context, userID int64, opts *UpdateNotificationSettingsOptions) error {
253+
settings := &user_model.NotificationSettings{
254+
UserID: userID,
255+
}
253256
if opts.Actions.Has() {
254257
settings.Actions = opts.Actions.Value()
255258
}

services/user/update_test.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -130,17 +130,22 @@ func TestUpdateNotificationSettings(t *testing.T) {
130130
exists, err := db.GetEngine(db.DefaultContext).Get(settings)
131131
assert.NoError(t, err)
132132
assert.True(t, exists)
133-
settingsCopy := *settings
134133

135-
assert.NoError(t, UpdateNotificationSettings(db.DefaultContext, settings, &UpdateNotificationSettingsOptions{
134+
assert.NoError(t, UpdateNotificationSettings(db.DefaultContext, settings.UserID, &UpdateNotificationSettingsOptions{
136135
Actions: optional.Some(user_model.NotificationGiteaActionsAll),
137136
}))
137+
settings, err = user_model.GetUserNotificationSettings(db.DefaultContext, settings.UserID)
138+
assert.NoError(t, err)
139+
assert.NotNil(t, settings)
138140
assert.Equal(t, user_model.NotificationGiteaActionsAll, settings.Actions)
139-
assert.NotEqual(t, settingsCopy.Actions, settings.Actions)
141+
assert.NotEqual(t, user_model.NotificationGiteaActionsFailureOnly, settings.Actions)
140142

141-
assert.NoError(t, UpdateNotificationSettings(db.DefaultContext, settings, &UpdateNotificationSettingsOptions{
143+
assert.NoError(t, UpdateNotificationSettings(db.DefaultContext, settings.UserID, &UpdateNotificationSettingsOptions{
142144
Actions: optional.Some(user_model.NotificationGiteaActionsDisabled),
143145
}))
146+
settings, err = user_model.GetUserNotificationSettings(db.DefaultContext, settings.UserID)
147+
assert.NoError(t, err)
148+
assert.NotNil(t, settings)
144149
assert.Equal(t, user_model.NotificationGiteaActionsDisabled, settings.Actions)
145-
assert.NotEqual(t, settingsCopy.Actions, settings.Actions)
150+
assert.NotEqual(t, user_model.NotificationGiteaActionsFailureOnly, settings.Actions)
146151
}

templates/user/settings/notifications.tmpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@
4646
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
4747
<div class="text"></div>
4848
<div class="menu">
49-
<div data-value="enabled" class="{{if eq .ActionsEmailNotificationsPreference "all"}}active selected {{end}}item">{{ctx.Locale.Tr "all"}}</div>
50-
<div data-value="andyourown" class="{{if eq .ActionsEmailNotificationsPreference "failureonly"}}active selected {{end}}item">Failure only</div>
49+
<div data-value="all" class="{{if eq .ActionsEmailNotificationsPreference "all"}}active selected {{end}}item">{{ctx.Locale.Tr "all"}}</div>
50+
<div data-value="failureonly" class="{{if eq .ActionsEmailNotificationsPreference "failureonly"}}active selected {{end}}item">Failure only</div>
5151
<div data-value="disabled" class="{{if eq .ActionsEmailNotificationsPreference "disabled"}}active selected {{end}}item">{{ctx.Locale.Tr "disabled"}}</div>
5252
</div>
5353
</div>

0 commit comments

Comments
 (0)