Пример #1
0
    def __init__(self, jobs_ctx, greeter):
        super().__init__()
        self.setupUi(self)
        self.jobs_ctx = jobs_ctx
        self.greeter = greeter
        self.get_requests_job = None
        self.create_user_job = None

        self.widget_info.hide()
        self.label_waiting.show()

        self.line_edit_user_full_name.validity_changed.connect(self.check_infos)
        self.line_edit_user_full_name.set_validator(validators.NotEmptyValidator())
        self.line_edit_user_email.validity_changed.connect(self.check_infos)
        self.line_edit_user_email.set_validator(validators.EmailValidator())
        self.line_edit_device.validity_changed.connect(self.check_infos)
        self.line_edit_device.set_validator(validators.DeviceNameValidator())

        # self.combo_profile.addItem(_("TEXT_USER_PROFILE_OUTSIDER"), UserProfile.OUTSIDER)
        self.combo_profile.addItem(_("TEXT_USER_PROFILE_STANDARD"), UserProfile.STANDARD)
        self.combo_profile.addItem(_("TEXT_USER_PROFILE_ADMIN"), UserProfile.ADMIN)
        self.combo_profile.setCurrentIndex(0)

        self.get_requests_success.connect(self._on_get_requests_success)
        self.get_requests_error.connect(self._on_get_requests_error)
        self.create_user_success.connect(self._on_create_user_success)
        self.create_user_error.connect(self._on_create_user_error)
        self.button_create_user.clicked.connect(self._on_create_user_clicked)

        self.get_requests_job = self.jobs_ctx.submit_job(
            ThreadSafeQtSignal(self, "get_requests_success", QtToTrioJob),
            ThreadSafeQtSignal(self, "get_requests_error", QtToTrioJob),
            self.greeter.get_claim_requests,
        )
Пример #2
0
    def __init__(self, jobs_ctx, claimer, user_email):
        super().__init__()
        self.setupUi(self)
        self.jobs_ctx = jobs_ctx
        self.claimer = claimer
        self.claim_job = None
        self.new_device = None
        self.line_edit_user_full_name.setFocus()
        self.line_edit_user_full_name.set_validator(
            validators.NotEmptyValidator())
        self.line_edit_user_full_name.validity_changed.connect(
            self.check_infos)

        self.line_edit_user_email.setText(user_email)
        self.line_edit_user_email.set_validator(validators.EmailValidator())
        self.line_edit_user_email.validity_changed.connect(self.check_infos)

        self.line_edit_device.setText(get_default_device())
        self.line_edit_device.set_validator(validators.DeviceLabelValidator())
        self.line_edit_device.validity_changed.connect(self.check_infos)

        self.claim_success.connect(self._on_claim_success)
        self.claim_error.connect(self._on_claim_error)
        self.label_wait.hide()
        self.button_ok.clicked.connect(self._on_claim_clicked)
        self.check_infos()
Пример #3
0
    def __init__(self, jobs_ctx, greeter, user_profile_outsider_allowed=False):
        super().__init__()
        self.setupUi(self)
        self.jobs_ctx = jobs_ctx
        self.greeter = greeter
        self.get_requests_job = None
        self.create_user_job = None

        self.widget_info.hide()
        self.label_waiting.show()

        self.line_edit_user_full_name.validity_changed.connect(
            self.check_infos)
        self.line_edit_user_full_name.set_validator(
            validators.NotEmptyValidator())
        self.line_edit_user_email.validity_changed.connect(self.check_infos)
        self.line_edit_user_email.set_validator(validators.EmailValidator())
        self.line_edit_device.validity_changed.connect(self.check_infos)
        self.line_edit_device.set_validator(validators.DeviceLabelValidator())
        self.combo_profile.currentIndexChanged.connect(self.check_infos)

        self.combo_profile.addItem(_("TEXT_SELECT_USER_PROFILE"), None)
        self.combo_profile.addItem(_("TEXT_USER_PROFILE_OUTSIDER"),
                                   UserProfile.OUTSIDER)
        self.combo_profile.addItem(_("TEXT_USER_PROFILE_STANDARD"),
                                   UserProfile.STANDARD)
        self.combo_profile.addItem(_("TEXT_USER_PROFILE_ADMIN"),
                                   UserProfile.ADMIN)

        item = self.combo_profile.model().item(2)
        item.setToolTip(_("TEXT_USER_PROFILE_STANDARD_TOOLTIP"))
        item = self.combo_profile.model().item(3)
        item.setToolTip(_("TEXT_USER_PROFILE_ADMIN_TOOLTIP"))

        if not user_profile_outsider_allowed:
            item = self.combo_profile.model().item(1)
            item.setEnabled(False)
            item.setToolTip(_("NOT_ALLOWED_OUTSIDER_PROFILE_TOOLTIP"))
        else:
            item = self.combo_profile.model().item(1)
            item.setToolTip(_("TEXT_USER_PROFILE_OUTSIDER_TOOLTIP"))

        # No profile by default, forcing the greeter to choose one
        self.combo_profile.setCurrentIndex(0)

        self.get_requests_success.connect(self._on_get_requests_success)
        self.get_requests_error.connect(self._on_get_requests_error)
        self.create_user_success.connect(self._on_create_user_success)
        self.create_user_error.connect(self._on_create_user_error)
        self.button_create_user.clicked.connect(self._on_create_user_clicked)

        self.get_requests_job = self.jobs_ctx.submit_job(
            self.get_requests_success, self.get_requests_error,
            self.greeter.get_claim_requests)
Пример #4
0
    def __init__(self, pending, user_profile_outsider_allowed=False):
        super().__init__()
        self.setupUi(self)

        self.label_waiting.hide()

        self.line_edit_user_full_name.validity_changed.connect(
            self.check_infos)
        self.line_edit_user_full_name.set_validator(
            validators.NotEmptyValidator())
        self.line_edit_user_email.validity_changed.connect(self.check_infos)
        self.line_edit_user_email.set_validator(validators.EmailValidator())
        self.line_edit_device.validity_changed.connect(self.check_infos)
        self.line_edit_device.set_validator(validators.DeviceLabelValidator())
        self.combo_profile.currentIndexChanged.connect(self.check_infos)

        self.line_edit_user_full_name.setText(
            pending.submitter_x509_certificate.subject_common_name)
        self.line_edit_user_email.setText(
            pending.submitter_x509_certificate.subject_email_address)
        self.line_edit_device.setText(
            pending.submit_payload.requested_device_label.str)

        self.combo_profile.addItem(translate("TEXT_SELECT_USER_PROFILE"), None)
        self.combo_profile.addItem(translate("TEXT_USER_PROFILE_OUTSIDER"),
                                   UserProfile.OUTSIDER)
        self.combo_profile.addItem(translate("TEXT_USER_PROFILE_STANDARD"),
                                   UserProfile.STANDARD)
        self.combo_profile.addItem(translate("TEXT_USER_PROFILE_ADMIN"),
                                   UserProfile.ADMIN)

        item = self.combo_profile.model().item(2)
        item.setToolTip(translate("TEXT_USER_PROFILE_STANDARD_TOOLTIP"))
        item = self.combo_profile.model().item(3)
        item.setToolTip(translate("TEXT_USER_PROFILE_ADMIN_TOOLTIP"))

        if not user_profile_outsider_allowed:
            item = self.combo_profile.model().item(1)
            item.setEnabled(False)
            item.setToolTip(translate("NOT_ALLOWED_OUTSIDER_PROFILE_TOOLTIP"))
        else:
            item = self.combo_profile.model().item(1)
            item.setToolTip(translate("TEXT_USER_PROFILE_OUTSIDER_TOOLTIP"))

        # No profile by default, forcing the greeter to choose one
        self.combo_profile.setCurrentIndex(0)

        self.button_create_user.clicked.connect(self._on_create_user_clicked)
Пример #5
0
 def __init__(self):
     super().__init__()
     self.setupUi(self)
     self.line_edit_user_email.validity_changed.connect(self.check_infos)
     self.line_edit_user_email.set_validator(validators.EmailValidator())
     self.line_edit_user_full_name.textChanged.connect(self.check_infos)
     self.line_edit_org_name.validity_changed.connect(self.check_infos)
     self.line_edit_org_name.set_validator(
         validators.OrganizationIDValidator())
     self.line_edit_backend_addr.set_validator(
         validators.BackendAddrValidator())
     self.line_edit_backend_addr.validity_changed.connect(self.check_infos)
     self.check_accept_contract.clicked.connect(self.check_infos)
     self.check_use_custom_backend.clicked.connect(
         self._on_use_custom_backend_clicked)
     self.widget_custom_backend.hide()
Пример #6
0
 def __init__(self):
     super().__init__()
     self.setupUi(self)
     self.line_edit_user_email.validity_changed.connect(self.check_infos)
     self.line_edit_user_email.set_validator(validators.EmailValidator())
     self.line_edit_user_full_name.textChanged.connect(self.check_infos)
     self.line_edit_org_name.validity_changed.connect(self.check_infos)
     self.line_edit_org_name.set_validator(
         validators.OrganizationIDValidator())
     self.line_edit_backend_addr.set_validator(
         validators.BackendAddrValidator())
     self.line_edit_backend_addr.validity_changed.connect(self.check_infos)
     self.check_accept_contract.clicked.connect(self.check_infos)
     self.radio_use_commercial.toggled.connect(self._switch_server)
     self.radio_use_custom.toggled.connect(self._switch_server)
     self.radio_use_commercial.setChecked(True)
Пример #7
0
    def invite_user(self):
        user_email = get_text_input(
            self,
            _("TEXT_USER_INVITE_EMAIL"),
            _("TEXT_USER_INVITE_EMAIL_INSTRUCTIONS"),
            placeholder=_("TEXT_USER_INVITE_EMAIL_PLACEHOLDER"),
            button_text=_("ACTION_USER_INVITE_DO_INVITE"),
            validator=validators.EmailValidator(),
        )
        if not user_email:
            return

        self.jobs_ctx.submit_job(
            ThreadSafeQtSignal(self, "invite_user_success", QtToTrioJob),
            ThreadSafeQtSignal(self, "invite_user_error", QtToTrioJob),
            _do_invite_user,
            core=self.core,
            email=user_email,
        )
Пример #8
0
def test_email_validator(qtbot, core_config):
    switch_language(core_config, "en")

    le = ValidatedLineEdit()
    le.set_validator(validators.EmailValidator())
    qtbot.addWidget(le)
    le.show()

    qtbot.keyClicks(le, "maurice")
    assert not le.is_input_valid()
    assert le.property("validity") == QtGui.QValidator.Intermediate

    qtbot.keyClicks(le, "*****@*****.**")
    assert le.is_input_valid()
    assert le.property("validity") == QtGui.QValidator.Acceptable

    qtbot.keyClicks(le, "#")
    assert not le.is_input_valid()
    assert le.property("validity") == QtGui.QValidator.Invalid