mirror of
https://github.com/go-gitea/gitea
synced 2025-07-22 18:28:37 +00:00
@@ -4,9 +4,9 @@
|
||||
package auth
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
|
||||
"code.gitea.io/gitea/models/db"
|
||||
user_model "code.gitea.io/gitea/models/user"
|
||||
"code.gitea.io/gitea/modules/log"
|
||||
)
|
||||
@@ -29,7 +29,7 @@ func (s *Session) Name() string {
|
||||
// object for that uid.
|
||||
// Returns nil if there is no user uid stored in the session.
|
||||
func (s *Session) Verify(req *http.Request, w http.ResponseWriter, store DataStore, sess SessionStore) (*user_model.User, error) {
|
||||
user := SessionUser(sess)
|
||||
user := SessionUser(req.Context(), sess)
|
||||
if user != nil {
|
||||
return user, nil
|
||||
}
|
||||
@@ -37,7 +37,7 @@ func (s *Session) Verify(req *http.Request, w http.ResponseWriter, store DataSto
|
||||
}
|
||||
|
||||
// SessionUser returns the user object corresponding to the "uid" session variable.
|
||||
func SessionUser(sess SessionStore) *user_model.User {
|
||||
func SessionUser(ctx context.Context, sess SessionStore) *user_model.User {
|
||||
if sess == nil {
|
||||
return nil
|
||||
}
|
||||
@@ -55,7 +55,7 @@ func SessionUser(sess SessionStore) *user_model.User {
|
||||
}
|
||||
|
||||
// Get user object
|
||||
user, err := user_model.GetUserByID(db.DefaultContext, id)
|
||||
user, err := user_model.GetUserByID(ctx, id)
|
||||
if err != nil {
|
||||
if !user_model.IsErrUserNotExist(err) {
|
||||
log.Error("GetUserById: %v", err)
|
||||
|
@@ -19,8 +19,8 @@ import (
|
||||
)
|
||||
|
||||
// DeleteOrganization completely and permanently deletes everything of organization.
|
||||
func DeleteOrganization(org *org_model.Organization) error {
|
||||
ctx, commiter, err := db.TxContext(db.DefaultContext)
|
||||
func DeleteOrganization(ctx context.Context, org *org_model.Organization) error {
|
||||
ctx, commiter, err := db.TxContext(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@@ -7,6 +7,7 @@ import (
|
||||
"testing"
|
||||
|
||||
"code.gitea.io/gitea/models"
|
||||
"code.gitea.io/gitea/models/db"
|
||||
"code.gitea.io/gitea/models/organization"
|
||||
"code.gitea.io/gitea/models/unittest"
|
||||
user_model "code.gitea.io/gitea/models/user"
|
||||
@@ -21,17 +22,17 @@ func TestMain(m *testing.M) {
|
||||
func TestDeleteOrganization(t *testing.T) {
|
||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||
org := unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: 6})
|
||||
assert.NoError(t, DeleteOrganization(org))
|
||||
assert.NoError(t, DeleteOrganization(db.DefaultContext, org))
|
||||
unittest.AssertNotExistsBean(t, &organization.Organization{ID: 6})
|
||||
unittest.AssertNotExistsBean(t, &organization.OrgUser{OrgID: 6})
|
||||
unittest.AssertNotExistsBean(t, &organization.Team{OrgID: 6})
|
||||
|
||||
org = unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: 3})
|
||||
err := DeleteOrganization(org)
|
||||
err := DeleteOrganization(db.DefaultContext, org)
|
||||
assert.Error(t, err)
|
||||
assert.True(t, models.IsErrUserOwnRepos(err))
|
||||
|
||||
user := unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: 5})
|
||||
assert.Error(t, DeleteOrganization(user))
|
||||
assert.Error(t, DeleteOrganization(db.DefaultContext, user))
|
||||
unittest.CheckConsistencyFor(t, &user_model.User{}, &organization.Team{})
|
||||
}
|
||||
|
@@ -259,7 +259,7 @@ func checkUnadoptedRepositories(ctx context.Context, userName string, repoNamesT
|
||||
}
|
||||
return err
|
||||
}
|
||||
repos, _, err := repo_model.GetUserRepositories(&repo_model.SearchRepoOptions{
|
||||
repos, _, err := repo_model.GetUserRepositories(ctx, &repo_model.SearchRepoOptions{
|
||||
Actor: ctxUser,
|
||||
Private: true,
|
||||
ListOptions: db.ListOptions{
|
||||
|
@@ -48,10 +48,11 @@ func runMigrateTask(ctx context.Context, t *admin_model.Task) (err error) {
|
||||
log.Critical("PANIC during runMigrateTask[%d] by DoerID[%d] to RepoID[%d] for OwnerID[%d]: %v\nStacktrace: %v", t.ID, t.DoerID, t.RepoID, t.OwnerID, e, log.Stack(2))
|
||||
}
|
||||
// fixme: Because ctx is canceled here, so the db.DefaultContext is needed.
|
||||
ctx := db.DefaultContext
|
||||
if err == nil {
|
||||
err = admin_model.FinishMigrateTask(db.DefaultContext, t)
|
||||
err = admin_model.FinishMigrateTask(ctx, t)
|
||||
if err == nil {
|
||||
notify_service.MigrateRepository(db.DefaultContext, t.Doer, t.Owner, t.Repo)
|
||||
notify_service.MigrateRepository(ctx, t.Doer, t.Owner, t.Repo)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -63,8 +64,7 @@ func runMigrateTask(ctx context.Context, t *admin_model.Task) (err error) {
|
||||
t.EndTime = timeutil.TimeStampNow()
|
||||
t.Status = structs.TaskStatusFailed
|
||||
t.Message = err.Error()
|
||||
// fixme: Because ctx is canceled here, so the db.DefaultContext is needed.
|
||||
if err := t.UpdateCols(db.DefaultContext, "status", "message", "end_time"); err != nil {
|
||||
if err := t.UpdateCols(ctx, "status", "message", "end_time"); err != nil {
|
||||
log.Error("Task UpdateCols failed: %v", err)
|
||||
}
|
||||
|
||||
|
@@ -159,7 +159,7 @@ func DeleteUser(ctx context.Context, u *user_model.User, purge bool) error {
|
||||
// An alternative option here would be write a DeleteAllRepositoriesForUserID function which would delete all of the repos
|
||||
// but such a function would likely get out of date
|
||||
for {
|
||||
repos, _, err := repo_model.GetUserRepositories(&repo_model.SearchRepoOptions{
|
||||
repos, _, err := repo_model.GetUserRepositories(ctx, &repo_model.SearchRepoOptions{
|
||||
ListOptions: db.ListOptions{
|
||||
PageSize: repo_model.RepositoryListDefaultPageSize,
|
||||
Page: 1,
|
||||
@@ -204,7 +204,7 @@ func DeleteUser(ctx context.Context, u *user_model.User, purge bool) error {
|
||||
break
|
||||
}
|
||||
for _, org := range orgs {
|
||||
if err := models.RemoveOrgUser(org.ID, u.ID); err != nil {
|
||||
if err := models.RemoveOrgUser(ctx, org.ID, u.ID); err != nil {
|
||||
if organization.IsErrLastOrgOwner(err) {
|
||||
err = organization.DeleteOrganization(ctx, org)
|
||||
}
|
||||
|
@@ -41,7 +41,7 @@ func TestDeleteUser(t *testing.T) {
|
||||
orgUsers := make([]*organization.OrgUser, 0, 10)
|
||||
assert.NoError(t, db.GetEngine(db.DefaultContext).Find(&orgUsers, &organization.OrgUser{UID: userID}))
|
||||
for _, orgUser := range orgUsers {
|
||||
if err := models.RemoveOrgUser(orgUser.OrgID, orgUser.UID); err != nil {
|
||||
if err := models.RemoveOrgUser(db.DefaultContext, orgUser.OrgID, orgUser.UID); err != nil {
|
||||
assert.True(t, organization.IsErrLastOrgOwner(err))
|
||||
return
|
||||
}
|
||||
|
Reference in New Issue
Block a user