mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-10-24 11:02:42 +00:00
Sends email with information on the new user (time of creation and time of last sign-in) and a link to manage the new user from the admin panel closes: https://codeberg.org/forgejo/forgejo/issues/480 Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/1371 Co-authored-by: Aravinth Manivannan <realaravinth@batsense.net> Co-committed-by: Aravinth Manivannan <realaravinth@batsense.net> (cherry picked from commitc721aa828b) (cherry picked from commit6487efcb9d) Conflicts: modules/notification/base/notifier.go modules/notification/base/null.go modules/notification/notification.go https://codeberg.org/forgejo/forgejo/pulls/1422 (cherry picked from commit7ea66ee1c5) Conflicts: services/notify/notifier.go services/notify/notify.go services/notify/null.go https://codeberg.org/forgejo/forgejo/pulls/1469 (cherry picked from commit7d2d997011) (cherry picked from commit435a54f140) (cherry picked from commit8ec7b3e448) [GITEA] notifies admins on new user registration (squash) performance bottleneck Refs: https://codeberg.org/forgejo/forgejo/issues/1479 (cherry picked from commit97ac9147ff) (cherry picked from commit19f295c16b) (cherry picked from commit3367dcb2cf) [GITEA] notifies admins on new user registration (squash) cosmetic changes Co-authored-by: delvh <dev.lh@web.de> (cherry picked from commit9f1670e040) (cherry picked from commitde5bb2a224) (cherry picked from commit8f8e52f31a) (cherry picked from commite0d5130312) (cherry picked from commitf1288d6d9b) (cherry picked from commit1db4736fd7) (cherry picked from commite8dcbb6cd6) (cherry picked from commit09625d6476) [GITEA] notifies admins on new user registration (squash) ctx.Locale (cherry picked from commitdab7212fad) (cherry picked from commit9b7bbae8c4) (cherry picked from commitf750b71d3d) (cherry picked from commitf79af36679) (cherry picked from commite76eee334e) [GITEA] notifies admins on new user registration (squash) fix locale (cherry picked from commit54cd100d8d) (cherry picked from commit053dbd3d50) [GITEA] notifies admins on new user registration (squash) fix URL 1. Use absolute URL in the admin panel link sent on new registrations 2. Include absolute URL of the newly signed-up user's profile. New email looks like this: <details><summary>Please click to expand</summary> ``` --153937b1864f158f4fd145c4b5d4a513568681dd489021dd466a8ad7b770 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 User Information: @realaravinth ( http://localhost:3000/realaravinth ) ---------------------------------------------------------------------- * Created: 2023-12-13 19:36:50 +05:30 Please click here ( http://localhost:3000/admin/users/9 ) to manage the use= r from the admin panel. --153937b1864f158f4fd145c4b5d4a513568681dd489021dd466a8ad7b770 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=UTF-8 <!DOCTYPE html> <html> <head> <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dutf-8"> <title>New user realaravinth just signed up</title> <style> blockquote { padding-left: 1em; margin: 1em 0; border-left: 1px solid gre= y; color: #777} .footer { font-size:small; color:#666;} </style> </head> <body> <ul> <h3>User Information: <a href=3D"http://localhost:3000/realaravinth">@rea= laravinth</a></h3> <li>Created: <relative-time format=3D"datetime" weekday=3D"" year=3D"nume= ric" month=3D"short" day=3D"numeric" hour=3D"numeric" minute=3D"numeric" se= cond=3D"numeric" datetime=3D"2023-12-13T19:36:50+05:30">2023-12-13 19:36:50= +05:30</relative-time></li> </ul> <p> Please <a href=3D"http://localhost:3000/admin/users/9" rel=3D"nofollow= ">click here</a> to manage the user from the admin panel. </p> </body> </html> --153937b1864f158f4fd145c4b5d4a513568681dd489021dd466a8ad7b770-- ``` </details> fixes: https://codeberg.org/forgejo/forgejo/issues/1927 Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/1940 Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org> Reviewed-by: Gusted <gusted@noreply.codeberg.org> Co-authored-by: Aravinth Manivannan <realaravinth@batsense.net> Co-committed-by: Aravinth Manivannan <realaravinth@batsense.net> (cherry picked from commitb8d764e36a) (cherry picked from commitd48b84f623) Conflicts: routers/web/auth/auth.go https://codeberg.org/forgejo/forgejo/pulls/2034 (cherry picked from commit02d3c125cc) (cherry picked from commit367374ecc3) Conflicts: models/user/user_test.go https://codeberg.org/forgejo/forgejo/pulls/2119 (cherry picked from commit4124fa5aa4) (cherry picked from commit7f12610ff6) [GITEA] notifies admins on new user registration (squash) DeleteByID trivial conflict because of778ad795fdRefactor deletion (#28610) (cherry picked from commit05682614e5) (cherry picked from commit64bd374803) (cherry picked from commit63d086f666) (cherry picked from commit3cd48ef4d5) Conflicts: options/locale/locale_en-US.ini https://codeberg.org/forgejo/forgejo/pulls/2249 (cherry picked from commit6578ec4ed6) Conflicts: routers/web/auth/auth.go https://codeberg.org/forgejo/forgejo/pulls/2300
79 lines
5.6 KiB
Go
79 lines
5.6 KiB
Go
// Copyright 2018 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package notify
|
|
|
|
import (
|
|
"context"
|
|
|
|
issues_model "code.gitea.io/gitea/models/issues"
|
|
packages_model "code.gitea.io/gitea/models/packages"
|
|
repo_model "code.gitea.io/gitea/models/repo"
|
|
user_model "code.gitea.io/gitea/models/user"
|
|
"code.gitea.io/gitea/modules/git"
|
|
"code.gitea.io/gitea/modules/repository"
|
|
)
|
|
|
|
// Notifier defines an interface to notify receiver
|
|
type Notifier interface {
|
|
Run()
|
|
|
|
AdoptRepository(ctx context.Context, doer, u *user_model.User, repo *repo_model.Repository)
|
|
CreateRepository(ctx context.Context, doer, u *user_model.User, repo *repo_model.Repository)
|
|
MigrateRepository(ctx context.Context, doer, u *user_model.User, repo *repo_model.Repository)
|
|
DeleteRepository(ctx context.Context, doer *user_model.User, repo *repo_model.Repository)
|
|
ForkRepository(ctx context.Context, doer *user_model.User, oldRepo, repo *repo_model.Repository)
|
|
RenameRepository(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, oldRepoName string)
|
|
TransferRepository(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, oldOwnerName string)
|
|
RepoPendingTransfer(ctx context.Context, doer, newOwner *user_model.User, repo *repo_model.Repository)
|
|
|
|
NewIssue(ctx context.Context, issue *issues_model.Issue, mentions []*user_model.User)
|
|
IssueChangeStatus(ctx context.Context, doer *user_model.User, commitID string, issue *issues_model.Issue, actionComment *issues_model.Comment, closeOrReopen bool)
|
|
DeleteIssue(ctx context.Context, doer *user_model.User, issue *issues_model.Issue)
|
|
IssueChangeMilestone(ctx context.Context, doer *user_model.User, issue *issues_model.Issue, oldMilestoneID int64)
|
|
IssueChangeAssignee(ctx context.Context, doer *user_model.User, issue *issues_model.Issue, assignee *user_model.User, removed bool, comment *issues_model.Comment)
|
|
PullRequestReviewRequest(ctx context.Context, doer *user_model.User, issue *issues_model.Issue, reviewer *user_model.User, isRequest bool, comment *issues_model.Comment)
|
|
IssueChangeContent(ctx context.Context, doer *user_model.User, issue *issues_model.Issue, oldContent string)
|
|
IssueClearLabels(ctx context.Context, doer *user_model.User, issue *issues_model.Issue)
|
|
IssueChangeTitle(ctx context.Context, doer *user_model.User, issue *issues_model.Issue, oldTitle string)
|
|
IssueChangeRef(ctx context.Context, doer *user_model.User, issue *issues_model.Issue, oldRef string)
|
|
IssueChangeLabels(ctx context.Context, doer *user_model.User, issue *issues_model.Issue,
|
|
addedLabels, removedLabels []*issues_model.Label)
|
|
|
|
NewPullRequest(ctx context.Context, pr *issues_model.PullRequest, mentions []*user_model.User)
|
|
MergePullRequest(ctx context.Context, doer *user_model.User, pr *issues_model.PullRequest)
|
|
AutoMergePullRequest(ctx context.Context, doer *user_model.User, pr *issues_model.PullRequest)
|
|
PullRequestSynchronized(ctx context.Context, doer *user_model.User, pr *issues_model.PullRequest)
|
|
PullRequestReview(ctx context.Context, pr *issues_model.PullRequest, review *issues_model.Review, comment *issues_model.Comment, mentions []*user_model.User)
|
|
PullRequestCodeComment(ctx context.Context, pr *issues_model.PullRequest, comment *issues_model.Comment, mentions []*user_model.User)
|
|
PullRequestChangeTargetBranch(ctx context.Context, doer *user_model.User, pr *issues_model.PullRequest, oldBranch string)
|
|
PullRequestPushCommits(ctx context.Context, doer *user_model.User, pr *issues_model.PullRequest, comment *issues_model.Comment)
|
|
PullReviewDismiss(ctx context.Context, doer *user_model.User, review *issues_model.Review, comment *issues_model.Comment)
|
|
|
|
CreateIssueComment(ctx context.Context, doer *user_model.User, repo *repo_model.Repository,
|
|
issue *issues_model.Issue, comment *issues_model.Comment, mentions []*user_model.User)
|
|
UpdateComment(ctx context.Context, doer *user_model.User, c *issues_model.Comment, oldContent string)
|
|
DeleteComment(ctx context.Context, doer *user_model.User, c *issues_model.Comment)
|
|
|
|
NewWikiPage(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, page, comment string)
|
|
EditWikiPage(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, page, comment string)
|
|
DeleteWikiPage(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, page string)
|
|
|
|
NewUserSignUp(ctx context.Context, newUser *user_model.User)
|
|
|
|
NewRelease(ctx context.Context, rel *repo_model.Release)
|
|
UpdateRelease(ctx context.Context, doer *user_model.User, rel *repo_model.Release)
|
|
DeleteRelease(ctx context.Context, doer *user_model.User, rel *repo_model.Release)
|
|
|
|
PushCommits(ctx context.Context, pusher *user_model.User, repo *repo_model.Repository, opts *repository.PushUpdateOptions, commits *repository.PushCommits)
|
|
CreateRef(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, refFullName git.RefName, refID string)
|
|
DeleteRef(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, refFullName git.RefName)
|
|
SyncPushCommits(ctx context.Context, pusher *user_model.User, repo *repo_model.Repository, opts *repository.PushUpdateOptions, commits *repository.PushCommits)
|
|
SyncCreateRef(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, refFullName git.RefName, refID string)
|
|
SyncDeleteRef(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, refFullName git.RefName)
|
|
|
|
PackageCreate(ctx context.Context, doer *user_model.User, pd *packages_model.PackageDescriptor)
|
|
PackageDelete(ctx context.Context, doer *user_model.User, pd *packages_model.PackageDescriptor)
|
|
|
|
ChangeDefaultBranch(ctx context.Context, repo *repo_model.Repository)
|
|
}
|