CRM-15247 - CRM_Contact_Page_AJAX::checkUserName - Require a token before checking...
[civicrm-core.git] / templates / CRM / common / checkUsernameAvailable.tpl
index 0647851f05305a050daca02090285986fa1a3330..fec2099a1e6b4191c1b6796f186c2e8fb2054147 100644 (file)
@@ -24,6 +24,7 @@
  +--------------------------------------------------------------------+
 *}
 {* This included tpl checks if a given username is taken or available. *}
+{crmSigner var=checkUserSig for=civicrm/ajax/cmsuser}
 {literal}
 var lastName = null;
 cj("#checkavailability").click(function() {
@@ -56,6 +57,7 @@ cj("#checkavailability").click(function() {
    var check        = "{/literal}{ts escape='js'}Checking...{/ts}{literal}";
    var available    = "{/literal}{ts escape='js'}This username is currently available.{/ts}{literal}";
    var notavailable = "{/literal}{ts escape='js'}This username is taken.{/ts}{literal}";
+   var errorMsg     = "{/literal}{ts escape='js'}Error checking username. Please reload the form and try again.{/ts}{literal}";
 
       //remove all the class add the messagebox classes and start fading
       cj("#msgbox").removeClass().addClass('cmsmessagebox').css({"color":"#000","backgroundColor":"#FFC","border":"1px solid #c93"}).text(check).fadeIn("slow");
@@ -63,11 +65,21 @@ cj("#checkavailability").click(function() {
       //check the username exists or not from ajax
    var contactUrl = {/literal}"{crmURL p='civicrm/ajax/cmsuser' h=0 }"{literal};
 
-   cj.post(contactUrl,{ cms_name:cj("#cms_name").val() } ,function(data) {
+   var checkUserParams = {
+       cms_name: cj("#cms_name").val(),
+       ts: {/literal}"{$checkUserSig.ts}"{literal},
+       sig: {/literal}"{$checkUserSig.signature}"{literal},
+       for: 'civicrm/ajax/cmsuser'
+   };
+   cj.post(contactUrl, checkUserParams ,function(data) {
       if ( data.name == "no") {/*if username not avaiable*/
          cj("#msgbox").fadeTo(200,0.1,function() {
       cj(this).html(notavailable).addClass('cmsmessagebox').css({"color":"#CC0000","backgroundColor":"#F7CBCA","border":"1px solid #CC0000"}).fadeTo(900,1);
          });
+      } else if ( data.name == "error") {/*if username not avaiable*/
+         cj("#msgbox").fadeTo(200,0.1,function() {
+             cj(this).html(errorMsg).addClass('cmsmessagebox').css({"color":"#CC0000","backgroundColor":"#F7CBCA","border":"1px solid #CC0000"}).fadeTo(900,1);
+         });
       } else {
          cj("#msgbox").fadeTo(200,0.1,function() {
       cj(this).html(available).addClass('cmsmessagebox').css({"color":"#008000","backgroundColor":"#C9FFCA", "border": "1px solid #349534"}).fadeTo(900,1);