public IEnumerable<ApiKeyModel> GetApplicationApiKeys(string applicationName) { var data = new List<ApiKeyData>(); List<ApiKeyModel> result = new List<ApiKeyModel>(); if (!Auth.AllowReadApiKeys(applicationName)) { throw new SettingsAuthorizationException(AuthorizationScope.ApiKey, AuthorizationLevel.Read, applicationName, Auth.CurrentIdentity.Id); } var registerdKeys = GetApplicationKeysData(applicationName); foreach (var item in registerdKeys) { ApiKeyModel model = new ApiKeyModel(); model.Active = item.Active; model.AdminKey = item.AdminKey; model.ApplicationName = item.Application.Name; model.Key = item.ApiKey; model.LastUsed = item.LastUsed; model.Access = new List<DirectoryAccessModel>(); foreach (var a in item.Access) { if (string.Equals(a.Directory.Application.Name, applicationName, StringComparison.CurrentCultureIgnoreCase)) { DirectoryAccessModel access = new DirectoryAccessModel(); access.Create = a.AllowCreate; access.Write = a.AllowWrite; access.Delete = a.AllowDelete; access.Directory = a.Directory.Name; model.Access.Add(access); } } result.Add(model); } return result; }
public ApiKeyModel GetApiKey(string applicationName, string name) { if (!Auth.AllowReadApiKeys(applicationName)) { throw new SettingsAuthorizationException(AuthorizationScope.ApiKey, AuthorizationLevel.Read, applicationName, Auth.CurrentIdentity.Id); } var data = GetKeyData(applicationName, name); if (data == null) { throw new SettingsNotFoundException("ApiKey"); } var model = new ApiKeyModel { Active = data.Active, AdminKey = data.AdminKey, Key = data.ApiKey, ApplicationName = data.Application.Name, Name = data.Name }; model.Access = new List<DirectoryAccessModel>(); foreach (var item in data.Access) { model.Access.Add(new DirectoryAccessModel { Directory = item.Directory.Name, Create = item.AllowCreate, Delete = item.AllowDelete, Write = item.AllowWrite }); } return model; }