فهرست منبع

fix(go): delete user if archived;

Vishal Dalwadi 2 ماه پیش
والد
کامیت
bd9a6f106a
3فایلهای تغییر یافته به همراه9 افزوده شده و 1 حذف شده
  1. 6 0
      pro/auth/sync.go
  2. 2 1
      pro/idp/google/google.go
  3. 1 0
      pro/idp/idp.go

+ 6 - 0
pro/auth/sync.go

@@ -122,6 +122,12 @@ func syncUsers(idpUsers []idp.User) error {
 	filters := logic.GetServerSettings().UserFilters
 
 	for _, user := range idpUsers {
+		if user.AccountArchived {
+			// delete the user if it has been archived.
+			_ = logic.DeleteUser(user.Username)
+			continue
+		}
+
 		var found bool
 		for _, filter := range filters {
 			if strings.HasPrefix(user.Username, filter) {

+ 2 - 1
pro/idp/google/google.go

@@ -63,7 +63,7 @@ func (g *Client) GetUsers() ([]idp.User, error) {
 	var retval []idp.User
 	err := g.service.Users.List().
 		Customer("my_customer").
-		Fields("users(id,primaryEmail,name,suspended)", "nextPageToken").
+		Fields("users(id,primaryEmail,name,suspended,archived)", "nextPageToken").
 		Pages(context.TODO(), func(users *admindir.Users) error {
 			for _, user := range users.Users {
 				retval = append(retval, idp.User{
@@ -71,6 +71,7 @@ func (g *Client) GetUsers() ([]idp.User, error) {
 					Username:        user.PrimaryEmail,
 					DisplayName:     user.Name.FullName,
 					AccountDisabled: user.Suspended,
+					AccountArchived: user.Archived,
 				})
 			}
 

+ 1 - 0
pro/idp/idp.go

@@ -10,6 +10,7 @@ type User struct {
 	Username        string
 	DisplayName     string
 	AccountDisabled bool
+	AccountArchived bool
 }
 
 type Group struct {