package com.airlock.iam.admin.application.service.permission.provider;

import com.airlock.iam.admin.application.service.permission.PagePermissions;
import com.airlock.iam.admin.application.service.permission.PagePermissionsProvider;
import com.airlock.iam.admin.application.system.AdminappPage;
import com.airlock.iam.admin.domain.model.administrator.permissions.Actions;
import com.airlock.iam.admin.domain.service.access.AdminappAccessController;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;

public class DocumentationPermissionsProvider implements PagePermissionsProvider {
   private AdminappAccessController accessController;

   @Override
   public AdminappPage page() {
      return AdminappPage.HELP;
   }

   @Override
   public boolean applicableInRecoveryMode() {
      return true;
   }

   @Override
   public PagePermissions getPagePermissions() {
      boolean accessible = this.accessController.isActionAllowed(Actions.editConfig);
      return PagePermissions.builder().accessible(accessible).defaultPermission(PagePermissions.DefaultPermission.READ).build();
   }

   @SuppressFBWarnings(justification = "generated code")
   public DocumentationPermissionsProvider(AdminappAccessController accessController) {
      this.accessController = accessController;
   }
}
