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);
            }
        }
Exemple #3
0
 public GrafanaAPIKeyRequestModel(string appKeyName, GrafanaRoleType role, int secondsToLive = 0)
 {
     this.Name          = appKeyName;
     this.Role          = role;
     this.SecondsToLive = secondsToLive;
 }