public async Task AddUserToOrg(string userLoginName, GrafanaRoleType role, string apiKey) { HttpRequest request = this.PrepareRequest( "api/org/users", apiKey, "Token"); var requestContent = new { Role = role.ToString(), LoginOrEmail = userLoginName }; request.SetContent(requestContent); await this.httpClient.PostAsync(request); }
public virtual async Task AddUserToGrafana(UserTenantInput input) { if (string.Equals(this.config.DeviceTelemetryService.Messages.TelemetryStorageType, TelemetryStorageTypeConstants.Ade, StringComparison.OrdinalIgnoreCase)) { string apiKey = this.keyVaultClient.GetValue($"Grafana--{input.Tenant}--APIKey"); GrafanaGlobalUserRequestModel user = new GrafanaGlobalUserRequestModel(input.Name, input.Name, input.UserId, "admin"); await this.grafanaClient.AddGlobalUser(user); string role = JsonConvert.DeserializeObject <List <string> >(input.Roles).FirstOrDefault(); GrafanaRoleType grafanaRole = role switch { "admin" => GrafanaRoleType.Admin, "contributor" => GrafanaRoleType.Editor, "readonly" => GrafanaRoleType.Viewer, _ => GrafanaRoleType.Viewer, }; await this.grafanaClient.AddUserToOrg(input.UserId, grafanaRole, apiKey); } }
public GrafanaAPIKeyRequestModel(string appKeyName, GrafanaRoleType role, int secondsToLive = 0) { this.Name = appKeyName; this.Role = role; this.SecondsToLive = secondsToLive; }