示例#1
0
    def _page_menu_save_entries(self) -> Iterator[PageMenuEntry]:
        if watolib.Folder.current().locked_hosts():
            return

        yield PageMenuEntry(
            title=_("Save & go to service configuration"),
            shortcut_title=_("Save & go to service configuration"),
            icon_name="save_to_services",
            item=make_form_submit_link(form_name="edit_host",
                                       button_name="_save"),
            is_shortcut=True,
            is_suggested=True,
            css_classes=["submit"],
        )

        yield PageMenuEntry(
            title=_("Save & go to folder"),
            icon_name="save_to_folder",
            item=make_form_submit_link(form_name="edit_host",
                                       button_name="go_to_folder"),
            is_shortcut=True,
            is_suggested=True,
        )

        if not self._is_cluster():
            yield PageMenuEntry(
                title=_("Save & go to connection tests"),
                icon_name="connection_tests",
                item=make_form_submit_link(form_name="edit_host",
                                           button_name="diag_host"),
                is_shortcut=True,
                is_suggested=True,
            )
示例#2
0
 def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
     return PageMenu(
         dropdowns=[
             PageMenuDropdown(
                 name="actions",
                 title=_("Test"),
                 topics=[
                     PageMenuTopic(
                         title=_("Host properties"),
                         entries=[
                             PageMenuEntry(
                                 title=_("Save & go to host properties"),
                                 icon_name="save",
                                 item=make_form_submit_link(
                                     "diag_host", "_save"),
                                 is_shortcut=True,
                                 is_suggested=True,
                             ),
                         ],
                     ),
                     PageMenuTopic(
                         title=_("Options"),
                         entries=[
                             PageMenuEntry(
                                 title=_("Run tests"),
                                 icon_name="connection_tests",
                                 item=make_form_submit_link(
                                     "diag_host", "_try"),
                                 is_shortcut=True,
                                 is_suggested=True,
                             ),
                         ],
                     ),
                 ],
             ),
             PageMenuDropdown(
                 name="hosts",
                 title=_("Hosts"),
                 topics=[
                     PageMenuTopic(
                         title=_("For this host"),
                         entries=list(
                             page_menu_host_entries(self.name(),
                                                    self._host)),
                     ),
                 ],
             ),
         ],
         breadcrumb=breadcrumb,
     )
示例#3
0
 def _page_menu(self, breadcrumb) -> PageMenu:
     page_menu: PageMenu = PageMenu(
         dropdowns=[
             PageMenuDropdown(
                 name="actions",
                 title=_("Actions"),
                 topics=[
                     PageMenuTopic(
                         title=_("Actions"),
                         entries=[
                             PageMenuEntry(
                                 title=_("Add credential"),
                                 icon_name="2fa",
                                 item=make_javascript_link("cmk.webauthn.register()"),
                                 is_shortcut=True,
                                 is_suggested=True,
                             ),
                             PageMenuEntry(
                                 title=_("Regenerate backup codes"),
                                 icon_name="2fa_backup_codes",
                                 item=make_form_submit_link("two_factor", "_backup_codes"),
                                 is_shortcut=True,
                                 is_suggested=True,
                             ),
                         ],
                     ),
                 ],
             ),
             page_menu_dropdown_user_related(page_name=overview_page_name, show_shortcuts=False),
         ],
         breadcrumb=breadcrumb,
     )
     page_menu.add_doc_reference(title=self._page_title(), doc_ref=DocReference.WATO_USER_2FA)
     return page_menu
示例#4
0
 def _page_menu(self, breadcrumb) -> PageMenu:
     return PageMenu(
         dropdowns=[
             PageMenuDropdown(
                 name="actions",
                 title=_("Actions"),
                 topics=[
                     PageMenuTopic(
                         title=_("Actions"),
                         entries=[
                             PageMenuEntry(
                                 title=_("Add credential"),
                                 icon_name="2fa",
                                 item=make_javascript_link("cmk.webauthn.register()"),
                                 is_shortcut=True,
                                 is_suggested=True,
                             ),
                             PageMenuEntry(
                                 title=_("Regenerate backup codes"),
                                 icon_name="2fa_backup_codes",
                                 item=make_form_submit_link("two_factor", "_backup_codes"),
                                 is_shortcut=True,
                                 is_suggested=True,
                             ),
                         ],
                     ),
                 ],
             ),
             page_menu_dropdown_user_related("user_two_factor_overview"),
         ],
         breadcrumb=breadcrumb,
     )
示例#5
0
def test_make_form_submit_link():
    item = make_form_submit_link("frm", "btn")
    assert item.link.url is None
    assert item.link.target is None
    assert (
        item.link.onclick ==
        'cmk.page_menu.form_submit("frm", "btn");cmk.page_menu.close_active_dropdown();'
    )
示例#6
0
    def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
        if not request.has_var("file_id"):
            return make_simple_form_page_menu(
                _("Hosts"),
                breadcrumb,
                form_name="upload",
                button_name="_do_upload",
                save_title=_("Upload"),
            )

        # preview phase, after first upload
        return PageMenu(
            dropdowns=[
                PageMenuDropdown(
                    name="actions",
                    title=_("Actions"),
                    topics=[
                        PageMenuTopic(
                            title=_("Actions"),
                            entries=[
                                PageMenuEntry(
                                    title=_("Update preview"),
                                    icon_name="update",
                                    item=make_form_submit_link(
                                        "preview", "_do_preview"),
                                    is_shortcut=True,
                                    is_suggested=True,
                                ),
                                PageMenuEntry(
                                    title=_("Import"),
                                    icon_name="save",
                                    item=make_form_submit_link(
                                        "preview", "_do_import"),
                                    is_shortcut=True,
                                    is_suggested=True,
                                ),
                            ],
                        ),
                    ],
                ),
            ],
            breadcrumb=breadcrumb,
        )
示例#7
0
文件: ldap.py 项目: hdhoang/checkmk
    def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
        menu = make_simple_form_page_menu(breadcrumb,
                                          form_name="connection",
                                          button_name="_save",
                                          save_title=_("Save"))
        menu.dropdowns[0].topics[0].entries.insert(
            1,
            PageMenuEntry(
                title=_("Save & test"),
                icon_name="save",
                item=make_form_submit_link(form_name="connection", button_name="_test"),
                is_shortcut=True,
                is_suggested=True,
            ))

        return menu
示例#8
0
    def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
        menu = make_simple_form_page_menu(breadcrumb, form_name="value_editor", button_name="save")

        reset_possible = self._config_variable.allow_reset() and self._is_configured()
        default_values = watolib.ABCConfigDomain.get_all_default_globals()
        defvalue = default_values[self._varname]
        value = self._current_settings.get(self._varname,
                                           self._global_settings.get(self._varname, defvalue))
        menu.dropdowns[0].topics[0].entries.append(
            PageMenuEntry(
                title=_("Remove explicit setting") if value == defvalue else _("Reset to default"),
                icon_name="reset",
                item=make_form_submit_link(form_name="value_editor", button_name="_reset"),
                is_enabled=reset_possible,
            ))

        return menu
示例#9
0
    def _page_menu_entries_selected_hosts(self) -> Iterator[PageMenuEntry]:
        if not config.user.may("wato.edit_hosts") and not config.user.may("wato.manage_hosts"):
            return

        hostnames = sorted(self._folder.hosts().keys(), key=utils.key_num_split)
        search_text = html.request.var("search")

        # Remember if that host has a target folder (i.e. was imported with
        # a folder information but not yet moved to that folder). If at least
        # one host has a target folder, then we show an additional bulk action.
        at_least_one_imported = False
        for hostname in hostnames:
            if search_text and (search_text.lower() not in hostname.lower()):
                continue

            host = self._folder.host(hostname)
            effective = host.effective_attributes()

            if effective.get("imported_folder"):
                at_least_one_imported = True

        if not self._folder.locked_hosts():
            if config.user.may("wato.manage_hosts"):
                yield PageMenuEntry(
                    title=_("Delete hosts"),
                    icon_name="delete",
                    item=make_form_submit_link(
                        form_name="hosts",
                        button_name="_bulk_delete",
                    ),
                )

            if config.user.may("wato.edit_hosts"):
                yield PageMenuEntry(
                    title=_("Edit attributes"),
                    icon_name="edit",
                    item=make_form_submit_link(
                        form_name="hosts",
                        button_name="_bulk_edit",
                    ),
                )

                yield PageMenuEntry(
                    title=_("Remove explicit attribute settings"),
                    icon_name="cleanup",
                    item=make_form_submit_link(
                        form_name="hosts",
                        button_name="_bulk_cleanup",
                    ),
                )

        if config.user.may("wato.services"):
            yield PageMenuEntry(
                title=_("Discover services"),
                icon_name="services",
                item=make_form_submit_link(
                    form_name="hosts",
                    button_name="_bulk_inventory",
                ),
            )

        if not self._folder.locked_hosts():
            if config.user.may("wato.parentscan"):
                yield PageMenuEntry(
                    title=_("Detect network parent hosts"),
                    icon_name="parentscan",
                    item=make_form_submit_link(
                        form_name="hosts",
                        button_name="_parentscan",
                    ),
                )
            if config.user.may("wato.edit_hosts") and config.user.may("wato.move_hosts"):
                yield PageMenuEntry(
                    title=_("Move to other folder"),
                    icon_name="move",
                    name="move_rules",
                    item=PageMenuPopup(self._render_bulk_move_form()),
                )

                if at_least_one_imported:
                    yield PageMenuEntry(
                        title=_("Move to target folders"),
                        icon_name="move",
                        item=make_form_submit_link(
                            form_name="hosts",
                            button_name="_bulk_movetotarget",
                        ),
                    )
示例#10
0
    def _page_menu_entries_selected_hosts(self) -> Iterator[PageMenuEntry]:
        if not config.user.may("wato.edit_hosts") and not config.user.may("wato.manage_hosts"):
            return

        hostnames = sorted(self._folder.hosts().keys(), key=utils.key_num_split)
        is_enabled = bool(self._folder.has_hosts())
        search_text = html.request.var("search")

        # Remember if that host has a target folder (i.e. was imported with
        # a folder information but not yet moved to that folder). If at least
        # one host has a target folder, then we show an additional bulk action.
        at_least_one_imported = False
        for hostname in hostnames:
            if search_text and (search_text.lower() not in hostname.lower()):
                continue

            host = self._folder.host(hostname)
            effective = host.effective_attributes()

            if effective.get("imported_folder"):
                at_least_one_imported = True

        if not self._folder.locked_hosts():
            if config.user.may("wato.manage_hosts"):
                yield PageMenuEntry(
                    title=_("Delete hosts"),
                    icon_name="delete",
                    item=make_confirmed_form_submit_link(
                        form_name="hosts",
                        button_name="_bulk_delete",
                        message=_("Do you really want to delete the selected hosts?"),
                    ),
                    is_enabled=is_enabled,
                )

            if config.user.may("wato.edit_hosts"):
                yield PageMenuEntry(
                    title=_("Edit attributes"),
                    icon_name="edit",
                    item=make_form_submit_link(
                        form_name="hosts",
                        button_name="_bulk_edit",
                    ),
                    is_enabled=is_enabled,
                )

                yield PageMenuEntry(
                    title=_("Remove explicit attribute settings"),
                    icon_name="cleanup",
                    item=make_form_submit_link(
                        form_name="hosts",
                        button_name="_bulk_cleanup",
                    ),
                    is_enabled=is_enabled,
                )

        if config.user.may("wato.services"):
            yield PageMenuEntry(
                title=_("Discover services"),
                icon_name="services",
                item=make_form_submit_link(
                    form_name="hosts",
                    button_name="_bulk_inventory",
                ),
                is_enabled=is_enabled,
            )

        if not self._folder.locked_hosts():
            if config.user.may("wato.parentscan"):
                yield PageMenuEntry(
                    title=_("Detect network parent hosts"),
                    icon_name="parentscan",
                    item=make_form_submit_link(
                        form_name="hosts",
                        button_name="_parentscan",
                    ),
                    is_enabled=is_enabled,
                )
            if config.user.may("wato.edit_hosts") and config.user.may("wato.move_hosts"):
                yield PageMenuEntry(
                    title=_("Move to other folder"),
                    icon_name="move",
                    name="move_rules",
                    item=PageMenuPopup(self._render_bulk_move_form()),
                    is_enabled=is_enabled,
                )

                if at_least_one_imported:
                    yield PageMenuEntry(
                        title=_("Move to target folders"),
                        icon_name="move",
                        item=make_confirmed_form_submit_link(
                            form_name="hosts",
                            button_name="_bulk_movetotarget",
                            message=_('You are going to move the selected hosts to folders '
                                      'representing their original folder location in the system '
                                      'you did the import from. Please make sure that you have '
                                      'done an <b>inventory</b> before moving the hosts.'),
                        ),
                        is_enabled=is_enabled,
                    )