Class AdminThemeAction

java.lang.Object
org.lastaflute.web.LastaAction
org.lastaflute.web.TypicalAction
All Implemented Interfaces:
org.codelibs.fess.mylasta.action.FessHtmlPath, org.lastaflute.web.docs.LaActionDocs, org.lastaflute.web.hook.ActionHook, org.lastaflute.web.validation.LaValidatable<org.codelibs.fess.mylasta.action.FessMessages>

public class AdminThemeAction extends FessAdminAction
Admin action for theme management (spec §8).

Provides list, detail inspection, upload, deletion, default-theme assignment, and registry-reload flows for static themes. JSP themes are managed via the plugin admin and are out of scope here. Mutating endpoints require the admin-theme role; read-only endpoints require admin-theme-view.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Role identifier for theme administration (spec §5.2).

    Fields inherited from class org.codelibs.fess.app.web.base.FessAdminAction

    crawlingConfigHelper, VIEW

    Fields inherited from class org.lastaflute.web.TypicalAction

    GLOBAL

    Fields inherited from interface org.codelibs.fess.mylasta.action.FessHtmlPath

    path_AdminAccesstoken_AdminAccesstokenDetailsJsp, path_AdminAccesstoken_AdminAccesstokenEditJsp, path_AdminAccesstoken_AdminAccesstokenJsp, path_AdminBackup_AdminBackupJsp, path_AdminBadword_AdminBadwordDetailsJsp, path_AdminBadword_AdminBadwordDownloadJsp, path_AdminBadword_AdminBadwordEditJsp, path_AdminBadword_AdminBadwordJsp, path_AdminBadword_AdminBadwordUploadJsp, path_AdminBoostdoc_AdminBoostdocDetailsJsp, path_AdminBoostdoc_AdminBoostdocEditJsp, path_AdminBoostdoc_AdminBoostdocJsp, path_AdminCrawlinginfo_AdminCrawlinginfoDetailsJsp, path_AdminCrawlinginfo_AdminCrawlinginfoJsp, path_AdminDashboard_AdminDashboardJsp, path_AdminDataconfig_AdminDataconfigDetailsJsp, path_AdminDataconfig_AdminDataconfigEditJsp, path_AdminDataconfig_AdminDataconfigJsp, path_AdminDesign_AdminDesignEditJsp, path_AdminDesign_AdminDesignJsp, path_AdminDict_AdminDictJsp, path_AdminDictKuromoji_AdminDictKuromojiDetailsJsp, path_AdminDictKuromoji_AdminDictKuromojiDownloadJsp, path_AdminDictKuromoji_AdminDictKuromojiEditJsp, path_AdminDictKuromoji_AdminDictKuromojiJsp, path_AdminDictKuromoji_AdminDictKuromojiUploadJsp, path_AdminDictMapping_AdminDictMappingDetailsJsp, path_AdminDictMapping_AdminDictMappingDownloadJsp, path_AdminDictMapping_AdminDictMappingEditJsp, path_AdminDictMapping_AdminDictMappingJsp, path_AdminDictMapping_AdminDictMappingUploadJsp, path_AdminDictProtwords_AdminDictProtwordsDetailsJsp, path_AdminDictProtwords_AdminDictProtwordsDownloadJsp, path_AdminDictProtwords_AdminDictProtwordsEditJsp, path_AdminDictProtwords_AdminDictProtwordsJsp, path_AdminDictProtwords_AdminDictProtwordsUploadJsp, path_AdminDictStemmeroverride_AdminDictStemmeroverrideDetailsJsp, path_AdminDictStemmeroverride_AdminDictStemmeroverrideDownloadJsp, path_AdminDictStemmeroverride_AdminDictStemmeroverrideEditJsp, path_AdminDictStemmeroverride_AdminDictStemmeroverrideJsp, path_AdminDictStemmeroverride_AdminDictStemmeroverrideUploadJsp, path_AdminDictStopwords_AdminDictStopwordsDetailsJsp, path_AdminDictStopwords_AdminDictStopwordsDownloadJsp, path_AdminDictStopwords_AdminDictStopwordsEditJsp, path_AdminDictStopwords_AdminDictStopwordsJsp, path_AdminDictStopwords_AdminDictStopwordsUploadJsp, path_AdminDictSynonym_AdminDictSynonymDetailsJsp, path_AdminDictSynonym_AdminDictSynonymDownloadJsp, path_AdminDictSynonym_AdminDictSynonymEditJsp, path_AdminDictSynonym_AdminDictSynonymJsp, path_AdminDictSynonym_AdminDictSynonymUploadJsp, path_AdminDuplicatehost_AdminDuplicatehostDetailsJsp, path_AdminDuplicatehost_AdminDuplicatehostEditJsp, path_AdminDuplicatehost_AdminDuplicatehostJsp, path_AdminElevateword_AdminElevatewordDetailsJsp, path_AdminElevateword_AdminElevatewordDownloadJsp, path_AdminElevateword_AdminElevatewordEditJsp, path_AdminElevateword_AdminElevatewordJsp, path_AdminElevateword_AdminElevatewordUploadJsp, path_AdminError_AdminErrorJsp, path_AdminFailureurl_AdminFailureurlDetailsJsp, path_AdminFailureurl_AdminFailureurlJsp, path_AdminFileauth_AdminFileauthDetailsJsp, path_AdminFileauth_AdminFileauthEditJsp, path_AdminFileauth_AdminFileauthJsp, path_AdminFileconfig_AdminFileconfigDetailsJsp, path_AdminFileconfig_AdminFileconfigEditJsp, path_AdminFileconfig_AdminFileconfigJsp, path_AdminGeneral_AdminGeneralJsp, path_AdminGroup_AdminGroupDetailsJsp, path_AdminGroup_AdminGroupEditJsp, path_AdminGroup_AdminGroupJsp, path_AdminJoblog_AdminJoblogDetailsJsp, path_AdminJoblog_AdminJoblogJsp, path_AdminKeymatch_AdminKeymatchDetailsJsp, path_AdminKeymatch_AdminKeymatchEditJsp, path_AdminKeymatch_AdminKeymatchJsp, path_AdminLabeltype_AdminLabeltypeDetailsJsp, path_AdminLabeltype_AdminLabeltypeEditJsp, path_AdminLabeltype_AdminLabeltypeJsp, path_AdminLog_AdminLogJsp, path_AdminMaintenance_AdminMaintenanceJsp, path_AdminPathmap_AdminPathmapDetailsJsp, path_AdminPathmap_AdminPathmapEditJsp, path_AdminPathmap_AdminPathmapJsp, path_AdminPlugin_AdminPluginInstallpluginJsp, path_AdminPlugin_AdminPluginJsp, path_AdminRelatedcontent_AdminRelatedcontentDetailsJsp, path_AdminRelatedcontent_AdminRelatedcontentEditJsp, path_AdminRelatedcontent_AdminRelatedcontentJsp, path_AdminRelatedquery_AdminRelatedqueryDetailsJsp, path_AdminRelatedquery_AdminRelatedqueryEditJsp, path_AdminRelatedquery_AdminRelatedqueryJsp, path_AdminReqheader_AdminReqheaderDetailsJsp, path_AdminReqheader_AdminReqheaderEditJsp, path_AdminReqheader_AdminReqheaderJsp, path_AdminRole_AdminRoleDetailsJsp, path_AdminRole_AdminRoleEditJsp, path_AdminRole_AdminRoleJsp, path_AdminScheduler_AdminSchedulerDetailsJsp, path_AdminScheduler_AdminSchedulerEditJsp, path_AdminScheduler_AdminSchedulerJsp, path_AdminSearchlist_AdminSearchlistEditJsp, path_AdminSearchlist_AdminSearchlistJsp, path_AdminSearchlog_AdminSearchlogDetailsJsp, path_AdminSearchlog_AdminSearchlogJsp, path_AdminSereq_AdminSereqJsp, path_AdminStorage_AdminStorageJsp, path_AdminStorage_AdminStorageTagEditJsp, path_AdminSuggest_AdminSuggestJsp, path_AdminSysteminfo_AdminSysteminfoJsp, path_AdminTheme_AdminThemeDetailsJsp, path_AdminTheme_AdminThemeJsp, path_AdminTheme_AdminThemeUploadJsp, path_AdminUser_AdminUserDetailsJsp, path_AdminUser_AdminUserEditJsp, path_AdminUser_AdminUserJsp, path_AdminWebauth_AdminWebauthDetailsJsp, path_AdminWebauth_AdminWebauthEditJsp, path_AdminWebauth_AdminWebauthJsp, path_AdminWebconfig_AdminWebconfigDetailsJsp, path_AdminWebconfig_AdminWebconfigEditJsp, path_AdminWebconfig_AdminWebconfigJsp, path_AdminWizard_AdminWizardConfigJsp, path_AdminWizard_AdminWizardJsp, path_AdminWizard_AdminWizardStartJsp, path_AdvanceJsp, path_Chat_ChatJsp, path_Error_BadRequestJsp, path_Error_BusyJsp, path_Error_ErrorJsp, path_Error_NotFoundJsp, path_Error_RedirectJsp, path_Error_SystemJsp, path_FooterJsp, path_HeaderJsp, path_HelpJsp, path_IndexJsp, path_Login_IndexJsp, path_Login_NewpasswordJsp, path_Profile_IndexJsp, path_SearchJsp, path_SearchNoResultJsp, path_SearchOptionsJsp, path_SearchResultsJsp
  • Constructor Summary

    Constructors
    Constructor
    Description
    Default constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    org.lastaflute.web.response.HtmlResponse
    Deletes a static theme via the installer.
    org.lastaflute.web.response.HtmlResponse
    Displays the theme details inspector for the given theme name.
    protected String
    Get the action role.
    org.lastaflute.web.response.HtmlResponse
    Displays the theme management index page.
    org.lastaflute.web.response.HtmlResponse
    Reloads the in-memory theme registry from disk.
    org.lastaflute.web.response.HtmlResponse
    Sets the default theme by writing it through FessProp.setDefaultTheme(String).
    protected void
    setupHtmlData(org.lastaflute.web.ruts.process.ActionRuntime runtime)
    Sets up HTML data for admin pages.
    org.lastaflute.web.response.HtmlResponse
    Handles a static-theme ZIP upload.
    org.lastaflute.web.response.HtmlResponse
    Displays the theme upload form page.

    Methods inherited from class org.lastaflute.web.TypicalAction

    calculateSqlExecutionCountLimit, createGodHandEpilogue, createGodHandMonologue, createGodHandPrologue, createGodHandResource, createTooManySqlOption, defineSqlExecutionCountDefaultLimit, filterApplicationExceptionMessageValues, handleApplicationException, myTokenGroupType, newEmbeddedMessageKeySupplier, newGodHandEpilogue, newGodHandMonologue, newGodHandPrologue, saveToken, throwVerifiedClientError, throwVerifiedIllegalTransition, verifyOrClientError, verifyOrIllegalTransition, verifyToken, verifyTokenKeep

    Methods inherited from class org.lastaflute.web.LastaAction

    asHtml, asJson, assertArgumentNotNull, asStream, asXml, doCreateValidator, doForward, doRedirect, forward, forwardById, forwardByParam, forwardWith, hash, moreUrl, movedPermanently, myValidationGroups, newActionValidator, newHtmlResponseAsForward, newHtmlResponseAsForward, newHtmlResponseAsRedirect, newJsonResponse, newStreamResponse, newUrlChain, newXmlResponse, params, redirect, redirectById, redirectByParam, redirectWith, toActionUrl, toActionUrl

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.lastaflute.web.docs.LaActionDocs

    document0_Action, document2_OverridableSuperMethod, document3_InjectableLastaComponent, document4_InjectableQuickComponent, document8_WordDictionary

    Methods inherited from interface org.lastaflute.web.validation.LaValidatable

    throwValidationError, throwValidationErrorApi, validate, validateApi
  • Field Details

    • ROLE

      public static final String ROLE
      Role identifier for theme administration (spec §5.2).

      The companion admin-theme-view role is derived by the framework's ROLE + VIEW convention (inherited from FessAdminAction). Both roles are granted to the default admin user via the standard Fess Radmin-* role derivation — no explicit seeding in fess_config.properties is required.

      See Also:
  • Constructor Details

    • AdminThemeAction

      public AdminThemeAction()
      Default constructor.
  • Method Details

    • setupHtmlData

      protected void setupHtmlData(org.lastaflute.web.ruts.process.ActionRuntime runtime)
      Description copied from class: FessAdminAction
      Sets up HTML data for admin pages.

      This method configures common data needed for admin pages including editable flags, user roles, and forum links.

      Overrides:
      setupHtmlData in class FessAdminAction
      Parameters:
      runtime - the action runtime context
    • getActionRole

      protected String getActionRole()
      Description copied from class: FessAdminAction
      Get the action role.
      Specified by:
      getActionRole in class FessAdminAction
      Returns:
      The action role.
    • index

      @Execute @Secured({"admin-theme","admin-theme-view"}) public org.lastaflute.web.response.HtmlResponse index(ThemeListForm form)
      Displays the theme management index page.
      Parameters:
      form - the list form (carries the pre-populated default-theme value)
      Returns:
      HTML response for the index page
    • details

      @Execute @Secured({"admin-theme","admin-theme-view"}) public org.lastaflute.web.response.HtmlResponse details(ThemeDetailsForm form)
      Displays the theme details inspector for the given theme name.
      Parameters:
      form - the details form containing the target theme name
      Returns:
      HTML response for the details page
    • reload

      @Execute @Secured("admin-theme") public org.lastaflute.web.response.HtmlResponse reload(ThemeListForm form)
      Reloads the in-memory theme registry from disk.
      Parameters:
      form - the list form (used for re-rendering on error)
      Returns:
      redirect to the theme index
    • uploadpage

      @Execute @Secured("admin-theme") public org.lastaflute.web.response.HtmlResponse uploadpage()
      Displays the theme upload form page.
      Returns:
      HTML response for the upload form
    • upload

      @Execute @Secured("admin-theme") public org.lastaflute.web.response.HtmlResponse upload(ThemeUploadForm form)
      Handles a static-theme ZIP upload. The file extension and size guard here are pre-flight checks at the Action layer (M-1 defense in depth); the installer enforces structural and size limits authoritatively.

      If the installer raises a ThemeManifestException (wrapped inside an StaticThemeInstaller.InstallException of code MANIFEST_INVALID), the structured code is used to surface a localized error key (see errors.theme_manifest_*) instead of the raw English diagnostic (M-14).

      Parameters:
      form - the multipart upload form
      Returns:
      redirect to the theme index on success
    • delete

      @Execute @Secured("admin-theme") public org.lastaflute.web.response.HtmlResponse delete(ThemeDeleteForm form)
      Deletes a static theme via the installer. The installer enforces that the theme is not the active default.
      Parameters:
      form - the delete form containing the theme name
      Returns:
      redirect to the theme index
    • setdefault

      @Execute @Secured("admin-theme") public org.lastaflute.web.response.HtmlResponse setdefault(ThemeListForm form)
      Sets the default theme by writing it through FessProp.setDefaultTheme(String). An empty value clears the default. The registry is reloaded synchronously so the new default takes effect immediately.
      Parameters:
      form - the list form carrying the selected default theme name
      Returns:
      redirect to the theme index