Add delete user from other services/stores (#51912)
* Remove user from preferences, stars, orguser, team member * Fix lint * Add Delete user from org and dashboard acl * Delete user from user auth * Add DeleteUser to quota * Add test files and adjust user auth store * Rename package in wire for user auth * Import Quota Service interface in other services * do the same in tests * fix lint tests * Fix tests * Add some tests * Rename InsertUser and DeleteUser to InsertOrgUser and DeleteOrgUser * Rename DeleteUser to DeleteByUser in quota * changing a method name in few additional places * Fix in other places * Fix lint * Fix tests * Rename DeleteOrgUser to DeleteUserFromAll * Update pkg/services/org/orgimpl/org_test.go Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com> * Update pkg/services/preference/prefimpl/inmemory_test.go Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com> * Rename Acl to ACL * Fix wire after merge with main * Move test to uni test Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
This commit is contained in:
co-authored by
Emil Tullstedt
parent
5d052be6ff
commit
17ec9cac83
@@ -73,6 +73,10 @@ func (s *Service) GetIDForNewUser(ctx context.Context, cmd org.GetOrgIDForNewUse
|
||||
return s.store.Insert(ctx, &orga)
|
||||
}
|
||||
|
||||
func (s *Service) InsertUser(ctx context.Context, orguser *org.OrgUser) (int64, error) {
|
||||
return s.store.InsertUser(ctx, orguser)
|
||||
func (s *Service) InsertOrgUser(ctx context.Context, orguser *org.OrgUser) (int64, error) {
|
||||
return s.store.InsertOrgUser(ctx, orguser)
|
||||
}
|
||||
|
||||
func (s *Service) DeleteUserFromAll(ctx context.Context, userID int64) error {
|
||||
return s.store.DeleteUserFromAll(ctx, userID)
|
||||
}
|
||||
|
||||
@@ -46,6 +46,11 @@ func TestOrgService(t *testing.T) {
|
||||
|
||||
setting.AutoAssignOrg = false
|
||||
setting.AutoAssignOrgId = 0
|
||||
|
||||
t.Run("delete user from all orgs", func(t *testing.T) {
|
||||
err := orgService.DeleteUserFromAll(context.Background(), 1)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
}
|
||||
|
||||
type FakeOrgStore struct {
|
||||
@@ -67,6 +72,10 @@ func (f *FakeOrgStore) Insert(ctx context.Context, org *org.Org) (int64, error)
|
||||
return f.ExpectedOrgID, f.ExpectedError
|
||||
}
|
||||
|
||||
func (f *FakeOrgStore) InsertUser(ctx context.Context, org *org.OrgUser) (int64, error) {
|
||||
func (f *FakeOrgStore) InsertOrgUser(ctx context.Context, org *org.OrgUser) (int64, error) {
|
||||
return f.ExpectedUserID, f.ExpectedError
|
||||
}
|
||||
|
||||
func (f *FakeOrgStore) DeleteUserFromAll(ctx context.Context, userID int64) error {
|
||||
return f.ExpectedError
|
||||
}
|
||||
|
||||
@@ -15,7 +15,8 @@ const MainOrgName = "Main Org."
|
||||
type store interface {
|
||||
Get(context.Context, int64) (*org.Org, error)
|
||||
Insert(context.Context, *org.Org) (int64, error)
|
||||
InsertUser(context.Context, *org.OrgUser) (int64, error)
|
||||
InsertOrgUser(context.Context, *org.OrgUser) (int64, error)
|
||||
DeleteUserFromAll(context.Context, int64) error
|
||||
}
|
||||
|
||||
type sqlStore struct {
|
||||
@@ -67,7 +68,7 @@ func (ss *sqlStore) Insert(ctx context.Context, org *org.Org) (int64, error) {
|
||||
return orgID, nil
|
||||
}
|
||||
|
||||
func (ss *sqlStore) InsertUser(ctx context.Context, cmd *org.OrgUser) (int64, error) {
|
||||
func (ss *sqlStore) InsertOrgUser(ctx context.Context, cmd *org.OrgUser) (int64, error) {
|
||||
var orgID int64
|
||||
var err error
|
||||
err = ss.db.WithDbSession(ctx, func(sess *sqlstore.DBSession) error {
|
||||
@@ -81,3 +82,12 @@ func (ss *sqlStore) InsertUser(ctx context.Context, cmd *org.OrgUser) (int64, er
|
||||
}
|
||||
return orgID, nil
|
||||
}
|
||||
|
||||
func (ss *sqlStore) DeleteUserFromAll(ctx context.Context, userID int64) error {
|
||||
return ss.db.WithDbSession(ctx, func(sess *sqlstore.DBSession) error {
|
||||
if _, err := sess.Exec("DELETE FROM org_user WHERE user_id = ?", userID); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ func TestIntegrationOrgUserDataAccess(t *testing.T) {
|
||||
}
|
||||
|
||||
t.Run("org user inserted", func(t *testing.T) {
|
||||
_, err := orgUserStore.InsertUser(context.Background(), &org.OrgUser{
|
||||
_, err := orgUserStore.InsertOrgUser(context.Background(), &org.OrgUser{
|
||||
ID: 1,
|
||||
OrgID: 1,
|
||||
UserID: 1,
|
||||
@@ -70,4 +70,9 @@ func TestIntegrationOrgUserDataAccess(t *testing.T) {
|
||||
})
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("delete by user", func(t *testing.T) {
|
||||
err := orgUserStore.DeleteUserFromAll(context.Background(), 1)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user