[restricted-register] Extract inline script block in WEB-INF/classes/com/infullmobile/jenkins/plugin/restrictedregister/security/hudson/HudsonSecurityRealmRegistration/registerFragment.jelly

XMLWordPrintable

      Problem

      == Inline Script Block
      Line: 38
      ----
      <script>
              var serviceInstance =<st:bind value="${it}"/>;
              //<![CDATA[
      
              enableSignUpIfAvailable();
      
              function sendRegisterFormData() {
                  if (!rrIsButtonEnabled('#rr_submitBt')) {
                      return;
                  }
                  var values = rrSerializeForm('#rr_register_form');
                  clearMessagesAndErrors();
                  if (isFormValid(values)) {
                      sendFormData(values);
                  }
              };
      
              function getSecret() {
                  var secret = rrUrlParam('rr_secret');
                  if (secret) {
                      return secret;
                  }
                  return "";
              };
      
              function enableSignUpIfAvailable() {
                  serviceInstance.checkSecret(getSecret(), function(response) {
                      var data = response.responseObject();
                      if (data['status'] == 'success') {
                          beginSignUp();
                      } else {
                          alert("Failed to verify 'secret', please reload page and try again.");
                      }
                  });
              };
      
              function beginSignUp() {
                  jQuery('#rr_secret').val(getSecret());
                  clearMessagesAndErrors();
                  jQuery('#rr_register').fadeIn(400, function() {
                      jQuery('#rr_username').focus();
                  });
              };
      
              function clearMessagesAndErrors() {
                  showMessage("&nbsp;");
                  rrClearFormErrors();
              };
      
              function isFormValid(values) {
                  var anyValueEmpty = rrIsAnyRequiredFormFieldEmpty();
                  if (anyValueEmpty) {
                      showError('One or more field is empty.');
                      return false;
                  }
                  return true;
              };
      
              function sendFormData(values) {
                  rrDisableButton('#rr_submitBt');
                  showMessage('Sending...');
                  serviceInstance.register(values, function(response) {
                      handleSignUpResponse(response);
                  });
              };
      
              function handleSignUpResponse(response) {
                  data = response.responseObject();
                  status = data['status'];
                  if (status == 'success') {
                      onSuccess(data);
                  } else if (status == 'error') {
                      rrEnableButton('#rr_submitBt');
                      onFailure(data['data']);
                  } else {
                      rrEnableButton('#rr_submitBt');
                      onUndefinedError();
                  }
              };
      
              function onSuccess(data) {
                  clearMessagesAndErrors();
                  showMessage("Account added, please check inbox for e-mail with account activation link.");
              };
      
              function onFailure(data) {
                  showError(data['message']);
                  var affectedFields = data['fields'];
                  jQuery('.rr_register_form').find('input').each(function(index, value) {
                      var thisObj = jQuery(this);
                      var thisID = thisObj.attr('id');
                      if (jQuery.inArray(thisID, affectedFields) >= 0) {
                          thisObj.addClass('rr_input_error');
                      }
                  });
              };
      
              function onUndefinedError() {
                  showError("Unknown error occurred.");
              };
      
              function showError(message) {
                  document.getElementById('rr_msg').innerHTML = message;
                  jQuery('#rr_msg').addClass('rr_error');
              };
      
              function showMessage(message) {
                  document.getElementById('rr_msg').innerHTML = message;
                  jQuery('#rr_msg').removeClass('rr_error');
              };
              //]]>
          </script>
      ----
      

      Solution

      https://www.jenkins.io/doc/developer/security/csp/#inline-javascript-blocks

            Assignee:
            Unassigned
            Reporter:
            Basil Crow
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: