using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Identity; using Oqtane.Enums; using Oqtane.Extensions; using Oqtane.Infrastructure; using Oqtane.Models; using Oqtane.Repository; using Oqtane.Security; using Oqtane.Shared; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Reflection; using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using SZUAbsolventenverein.Module.AdminModules.Models; using SZUAbsolventenverein.Module.AdminModules.Repository; using SZUAbsolventenverein.Module.AdminSettings.Services; namespace SZUAbsolventenverein.Module.AdminModules.Services { public class ServerAdminSettingsService : IAdminSettingsService { private readonly IAdminSettingsRepository _AdminSettingsRepository; private readonly UserManager _identityUserManager; private readonly IUserPermissions _userPermissions; private readonly IRoleRepository _roleRepository; private readonly IUserRepository _userRepository; private readonly IUserRoleRepository _userRoleRepository; private readonly INotificationRepository _notifications; private readonly ILogManager _logger; private readonly IHttpContextAccessor _accessor; private readonly Alias _alias; public ServerAdminSettingsService(IAdminSettingsRepository AdminSettingsRepository, UserManager identityUserManager, INotificationRepository notifications, IUserPermissions userPermissions, IRoleRepository roleRepository, IUserRepository userRepository, IUserRoleRepository userRoleRepository, ITenantManager tenantManager, ILogManager logger, IHttpContextAccessor accessor) { _AdminSettingsRepository = AdminSettingsRepository; _identityUserManager = identityUserManager; _userPermissions = userPermissions; _roleRepository = roleRepository; _userRepository = userRepository; _userRoleRepository = userRoleRepository; _notifications = notifications; _logger = logger; _accessor = accessor; _alias = tenantManager.GetAlias(); } public Task GetAdminSettingsAsync(int ModuleId) { if (_userPermissions.IsAuthorized(_accessor.HttpContext.User, _alias.SiteId, EntityNames.Module, ModuleId, PermissionNames.View)) { return Task.FromResult(_AdminSettingsRepository.GetAdminSetting()); } else { _logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized AdminModules Get Attempt {ModuleId}", ModuleId); return null; } } public Task SetAdminSettingsAsync(AdminSetting AdminSettings) { if (_userPermissions.IsAuthorized(_accessor.HttpContext.User, _alias.SiteId, EntityNames.Module, 1, PermissionNames.View)) { _logger.Log(LogLevel.Critical, this, LogFunction.Update, "Set AdminSettings"); return Task.FromResult(_AdminSettingsRepository.SetAdminSettings(AdminSettings)); } else { _logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized AdminModules Get Attempt {ModuleId}", 1); return null; } } } }