mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 10:56:10 +01:00 
			
		
		
		
	Add setting to disable user features when user login type is not plain (#29615)
## Changes - Adds setting `EXTERNAL_USER_DISABLE_FEATURES` to disable any supported user features when login type is not plain - In general, this is necessary for SSO implementations to avoid inconsistencies between the external account management and the linked account - Adds helper functions to encourage correct use
This commit is contained in:
		| @@ -1232,3 +1232,21 @@ func GetOrderByName() string { | ||||
| 	} | ||||
| 	return "name" | ||||
| } | ||||
|  | ||||
| // IsFeatureDisabledWithLoginType checks if a user feature is disabled, taking into account the login type of the | ||||
| // user if applicable | ||||
| func IsFeatureDisabledWithLoginType(user *User, feature string) bool { | ||||
| 	// NOTE: in the long run it may be better to check the ExternalLoginUser table rather than user.LoginType | ||||
| 	return (user != nil && user.LoginType > auth.Plain && setting.Admin.ExternalUserDisableFeatures.Contains(feature)) || | ||||
| 		setting.Admin.UserDisabledFeatures.Contains(feature) | ||||
| } | ||||
|  | ||||
| // DisabledFeaturesWithLoginType returns the set of user features disabled, taking into account the login type | ||||
| // of the user if applicable | ||||
| func DisabledFeaturesWithLoginType(user *User) *container.Set[string] { | ||||
| 	// NOTE: in the long run it may be better to check the ExternalLoginUser table rather than user.LoginType | ||||
| 	if user != nil && user.LoginType > auth.Plain { | ||||
| 		return &setting.Admin.ExternalUserDisableFeatures | ||||
| 	} | ||||
| 	return &setting.Admin.UserDisabledFeatures | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user