Auth: Fix orgrole picker disabled if isSynced user (#64033)
* fix: disable orgrolepicker if externaluser is synced
* add disable to role picker
* just took me 2 hours to center the icon
* wip
* fix: check externallySyncedUser for API call
* remove check from store
* add: tests
* refactor authproxy and made tests run
* add: feature toggle
* set feature toggle for tests
* add: IsProviderEnabled
* refactor: featuretoggle name
* IsProviderEnabled tests
* add specific tests for isProviderEnabled
* fix: org_user tests
* add: owner to featuretoggle
* add missing authlabels
* remove fmt
* feature toggle
* change config
* add test for a different authmodule
* test refactor
* gen feature toggle again
* fix basic auth user able to change the org role
* test for basic auth role
* make err.base to error
* lowered lvl of log and input mesg
(cherry picked from commit 3cd952b8ba)
56 lines
1.4 KiB
Go
56 lines
1.4 KiB
Go
package authnimpl
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/grafana/grafana/pkg/services/authn"
|
|
"github.com/grafana/grafana/pkg/setting"
|
|
)
|
|
|
|
func (s *Service) getUsageStats(ctx context.Context) (map[string]interface{}, error) {
|
|
m := map[string]interface{}{}
|
|
|
|
// Add stats about auth configuration
|
|
authTypes := map[string]bool{}
|
|
authTypes["basic_auth"] = s.cfg.BasicAuthEnabled
|
|
authTypes["ldap"] = s.cfg.LDAPAuthEnabled
|
|
authTypes["auth_proxy"] = s.cfg.AuthProxyEnabled
|
|
authTypes["anonymous"] = s.cfg.AnonymousEnabled
|
|
|
|
for authType, enabled := range authTypes {
|
|
enabledValue := 0
|
|
if enabled {
|
|
enabledValue = 1
|
|
}
|
|
m["stats.auth_enabled."+authType+".count"] = enabledValue
|
|
}
|
|
|
|
// Add stats about privilege elevators.
|
|
// FIXME: Move this to accesscontrol OSS.
|
|
// FIXME: Access Control OSS usage stats is currently disabled if Enterprise is enabled.
|
|
m["stats.authz.viewers_can_edit.count"] = 0
|
|
if setting.ViewersCanEdit {
|
|
m["stats.authz.viewers_can_edit.count"] = 1
|
|
}
|
|
|
|
m["stats.authz.editors_can_admin.count"] = 0
|
|
if s.cfg.EditorsCanAdmin {
|
|
m["stats.authz.editors_can_admin.count"] = 1
|
|
}
|
|
|
|
for _, client := range s.clients {
|
|
if usac, ok := client.(authn.UsageStatClient); ok {
|
|
clientStats, err := usac.UsageStatFn(ctx)
|
|
if err != nil {
|
|
s.log.Warn("Failed to get usage stats from client", "client", client.Name(), "error", err)
|
|
}
|
|
|
|
for k, v := range clientStats {
|
|
m[k] = v
|
|
}
|
|
}
|
|
}
|
|
|
|
return m, nil
|
|
}
|