Also, I think making the tenant domain have a dot is not necessary. In Mars, and private cloud deployments, tenants will be departments or other organizational entities. Hence, marketing, engineering, hr, operations etc. should be legal domain names. Also, if there is repeated validation logic, all that must be brought into a single place.
Azeez On Sun, Jan 16, 2011 at 7:36 PM, Kathiravelu Pradeeban <[email protected]>wrote: > Fixed the issues discussed above. We should pay a great attention to the > front end files (js, jsp, ..) too, like we do with the java classes, > regarding the code styles and best practices. I noticed many similar issues > in the tenant-mgt module and will fix them sooner. > > Thank you. > Regards, > Pradeeban. > > > On Sun, Jan 16, 2011 at 6:28 PM, Kathiravelu Pradeeban <[email protected] > > wrote: > >> >> >> On Sun, Jan 16, 2011 at 6:20 PM, Afkham Azeez <[email protected]> wrote: >> >>> I think all this can be replaced with a simple regex match which will >>> filter out illegal domain names >>> >>> +1. That's how it is done in tenant.mgt BE. Wonder why it was written >> this way in the FE (register.ui and mgt.ui). Will do the needed fixes, as I >> am already in the process of refactoring the above modules of tenant-mgt. >> >> Regards, >> Pradeeban. >> >> >>> On Sun, Jan 16, 2011 at 6:08 PM, Afkham Azeez <[email protected]> wrote: >>> >>>> >>>> >>>> On Sun, Jan 16, 2011 at 4:16 PM, <[email protected]> wrote: >>>> >>>>> Author: pradeeban >>>>> Date: Sun Jan 16 02:46:02 2011 >>>>> New Revision: 85379 >>>>> URL: http://wso2.org/svn/browse/wso2?view=rev&revision=85379 >>>>> >>>>> Log: >>>>> Check the validity of the domain when adding a new tenant by the >>>>> super-admin. >>>>> >>>>> >>>>> Modified: >>>>> >>>>> trunk/stratos/components/tenant-mgt/org.wso2.stratos.tenant.mgt.ui/src/main/resources/web/tenant-mgt/js/tenant_config.js >>>>> >>>>> Modified: >>>>> trunk/stratos/components/tenant-mgt/org.wso2.stratos.tenant.mgt.ui/src/main/resources/web/tenant-mgt/js/tenant_config.js >>>>> URL: >>>>> http://wso2.org/svn/browse/wso2/trunk/stratos/components/tenant-mgt/org.wso2.stratos.tenant.mgt.ui/src/main/resources/web/tenant-mgt/js/tenant_config.js?rev=85379&r1=85378&r2=85379&view=diff >>>>> >>>>> ============================================================================== >>>>> --- >>>>> trunk/stratos/components/tenant-mgt/org.wso2.stratos.tenant.mgt.ui/src/main/resources/web/tenant-mgt/js/tenant_config.js >>>>> (original) >>>>> +++ >>>>> trunk/stratos/components/tenant-mgt/org.wso2.stratos.tenant.mgt.ui/src/main/resources/web/tenant-mgt/js/tenant_config.js >>>>> Sun Jan 16 02:46:02 2011 >>>>> @@ -1,15 +1,33 @@ >>>>> function addTenant(isUpdating) { >>>>> var reason = ""; >>>>> var addTenantForm = document.getElementById('addTenantForm'); >>>>> - var adminPassword = ""; >>>>> - var adminPasswordRepeat = ""; >>>>> + var adminPassword = document.getElementById('admin-password'); >>>>> + var adminPasswordRepeat = >>>>> document.getElementById('admin-password-repeat'); >>>>> + var email = document.getElementById('admin-email'); >>>>> var firstname = document.getElementById('admin-firstname'); >>>>> var lastname = document.getElementById('admin-lastname'); >>>>> - adminPassword = document.getElementById('admin-password'); >>>>> - adminPasswordRepeat = >>>>> document.getElementById('admin-password-repeat'); >>>>> - var email = document.getElementById('admin-email'); >>>>> >>>>> - if (!isUpdating) { >>>>> + if (isUpdating) { >>>>> + // only the given values will be updated, so no need to fill >>>>> all the values. >>>>> + if (reason == "") { >>>>> + reason += validateEmpty(firstname, "First Name"); >>>>> + } >>>>> + if (reason == "") { >>>>> + reason += validateIllegal(firstname, "First Name"); >>>>> + } >>>>> + if (reason == "") { >>>>> + reason += validateEmpty(lastname, "Last Name"); >>>>> + } >>>>> + if (reason == "") { >>>>> + reason += validateIllegal(lastname, "Last Name"); >>>>> + } >>>>> + if (adminPassword.value != null && adminPassword.value != "") >>>>> { >>>>> + if (adminPassword.value != adminPasswordRepeat.value) { >>>>> + reason += jsi18n["password.mismatched"]; >>>>> + } >>>>> + } >>>>> + } >>>>> + else { >>>>> var domain = document.getElementById('domain'); >>>>> var adminName = document.getElementById('admin'); >>>>> if (reason == "") { >>>>> @@ -19,50 +37,52 @@ >>>>> reason += validateDomain(domain); >>>>> } >>>>> if (reason == "") { >>>>> - reason += validateEmpty(adminName, "AdminName"); >>>>> + reason += checkDomain(domain); >>>>> + } >>>>> + if (reason == "") { >>>>> + reason += validateEmpty(firstname, "First Name"); >>>>> + } >>>>> + if (reason == "") { >>>>> + reason += validateIllegal(firstname, "First Name"); >>>>> + } >>>>> + if (reason == "") { >>>>> + reason += validateEmpty(lastname, "Last Name"); >>>>> + } >>>>> + if (reason == "") { >>>>> + reason += validateIllegal(lastname, "Last Name"); >>>>> + } >>>>> + if (reason == "") { >>>>> + reason += validateEmpty(adminName, "Admin Name"); >>>>> + } >>>>> + if (reason == "") { >>>>> + reason += validateIllegal(adminName, "Admin Name"); >>>>> } >>>>> if (reason == "") { >>>>> reason += validateUsername(adminName); >>>>> } >>>>> - } >>>>> - >>>>> - if (reason == "") { >>>>> - reason += validateEmpty(firstname, "First Name"); >>>>> - } >>>>> - if (reason == "") { >>>>> - reason += validateIllegal(firstname, "First Name"); >>>>> - } >>>>> - if (reason == "") { >>>>> - reason += validateEmpty(lastname, "Last Name"); >>>>> - } >>>>> - if (reason == "") { >>>>> - reason += validateIllegal(lastname, "Last Name"); >>>>> - } >>>>> - if (reason == "") { >>>>> - reason += validateIllegal(adminName, "AdminName"); >>>>> - } >>>>> - if (reason == "") { >>>>> - reason += validateEmpty(adminPassword, "AdminPassword"); >>>>> - } >>>>> - if (reason == "") { >>>>> - reason += validatePassword(adminPassword); >>>>> - } >>>>> - if (reason == "") { >>>>> - reason += validateEmpty(adminPasswordRepeat, >>>>> "AdminPasswordRepeat"); >>>>> - } >>>>> - if (reason == "") { >>>>> - reason += validateEmpty(email, "Mail"); >>>>> - } >>>>> - if (reason == "") { >>>>> - reason += validateEmail(email); >>>>> - } >>>>> - >>>>> - if (reason == "") { >>>>> - if (adminPassword.value != adminPasswordRepeat.value) { >>>>> - reason += jsi18n["password.mismatched"]; >>>>> + if (reason == "") { >>>>> + reason += validateEmpty(adminPassword, "AdminPassword"); >>>>> + } >>>>> + if (reason == "") { >>>>> + reason += validatePassword(adminPassword); >>>>> } >>>>> - if (adminPassword.value.length < 6) { >>>>> - reason += jsi18n["password.length"]; >>>>> + if (reason == "") { >>>>> + reason += validateEmpty(adminPasswordRepeat, >>>>> "AdminPasswordRepeat"); >>>>> + } >>>>> + if (reason == "") { >>>>> + reason += validateEmpty(email, "Email"); >>>>> + } >>>>> + if (reason == "") { >>>>> + reason += validateEmail(email); >>>>> + } >>>>> + >>>>> + if (reason == "") { >>>>> + if (adminPassword.value != adminPasswordRepeat.value) { >>>>> + reason += jsi18n["password.mismatched"]; >>>>> + } >>>>> + if (adminPassword.value.length < 6) { >>>>> + reason += jsi18n["password.length"]; >>>>> + } >>>>> } >>>>> } >>>>> if (reason != "") { >>>>> @@ -75,10 +95,12 @@ >>>>> function showsuccessregistermessage() { >>>>> >>>> >>>> you should have proper camel casing in Javascript too. >>>> >>>> >>>>> var message = "You have registered the Organization Successfully"; >>>>> CARBON.showInfoDialog(message); >>>>> + return; >>>>> } >>>>> function showsuccessupdatemessage() { >>>>> var message = "Your changes saved Successfully!"; >>>>> CARBON.showInfoDialog(message); >>>>> + return; >>>>> } >>>>> function activationChanged(cbox, domain) { >>>>> if (!cbox.checked) { >>>>> @@ -129,4 +151,52 @@ >>>>> } >>>>> >>>>> return error; >>>>> +} >>>>> + >>>>> +function checkDomain(nname) { >>>>> + >>>>> + var error = ""; >>>>> + var mai = nname.value; >>>>> + >>>>> + var val = true; >>>>> + var dot = mai.lastIndexOf("."); >>>>> + var dname = mai.substring(0, dot); >>>>> + var ext = mai.substring(dot, mai.length); >>>>> + >>>>> + if (ext.indexOf("-trial") >= 0 || ext.indexOf("-unverified") >= 0) >>>>> { >>>>> + // we are not allowing to create a domain with -trial or >>>>> -unverified is in the extension >>>>> + return "The domain name you entered is not valid. Please enter >>>>> a valid domain name."; >>>>> + } >>>>> + >>>>> + if (ext.indexOf("/") >= 0 || ext.indexOf("\\") >= 0) { >>>>> + return "The '/' and '\\' is not allowed in a domain name"; >>>>> + } >>>>> + >>>>> + if (dot > 0 && dot < 57) { >>>>> >>>> >>>> What is this 57? >>>> >>>> >>>>> + if (!val) { >>>>> + error = "Your domain extension " + ext + " is not >>>>> correct"; >>>>> + return error; >>>>> + } >>>>> + else { >>>>> + for (var j = 0; j < dname.length; j++) { >>>>> + var dh = dname.charAt(j); >>>>> + var hh = dh.charCodeAt(0); >>>>> + if ((hh > 47 && hh < 59) || (hh > 64 && hh < 91) || >>>>> (hh > 96 && hh < 123) || >>>>> + hh == 45 || hh == 46) { >>>>> + if ((j == 0 || j == dname.length - 1) && hh == 45) >>>>> { >>>>> >>>> >>>> What are all these magic numbers? >>>> >>>> >>>>> + error = "Domain name should not begin and end >>>>> with '-'"; >>>>> + return error; >>>>> + } >>>>> + } else { >>>>> + error = "Your domain name should not have special >>>>> characters"; >>>>> + return error; >>>>> + } >>>>> + } >>>>> + } >>>>> + } >>>>> + else { >>>>> + error = "Your Domain name is too short/long or you should have >>>>> an extension to your domain."; >>>>> + return error; >>>>> + } >>>>> + return error; >>>>> } >>>>> \ No newline at end of file >>>>> _______________________________________________ >>>>> Carbon-commits mailing list >>>>> [email protected] >>>>> https://wso2.org/cgi-bin/mailman/listinfo/carbon-commits >>>>> >>>> >>>> >>>> >>>> -- >>>> *Afkham Azeez* >>>> Senior Software Architect & Senior Manager; WSO2, Inc.; http://wso2.com >>>> , >>>> * >>>> * >>>> *Member; Apache Software Foundation; >>>> **http://www.apache.org/*<http://www.apache.org/> >>>> * >>>> email: **[email protected]* <[email protected]>* cell: +94 77 3320919 >>>> blog: **http://blog.afkham.org* <http://blog.afkham.org>* >>>> twitter: >>>> **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> >>>> * >>>> linked-in: **http://lk.linkedin.com/in/afkhamazeez* >>>> * >>>> * >>>> *Lean . Enterprise . Middleware* >>>> >>>> >>> >>> >>> -- >>> *Afkham Azeez* >>> Senior Software Architect & Senior Manager; WSO2, Inc.; http://wso2.com >>> , >>> * >>> * >>> *Member; Apache Software Foundation; >>> **http://www.apache.org/*<http://www.apache.org/> >>> * >>> email: **[email protected]* <[email protected]>* cell: +94 77 3320919 >>> blog: **http://blog.afkham.org* <http://blog.afkham.org>* >>> twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> >>> * >>> linked-in: **http://lk.linkedin.com/in/afkhamazeez* >>> * >>> * >>> *Lean . Enterprise . Middleware* >>> >>> >> >> >> -- >> Kathiravelu Pradeeban. >> Software Engineer. >> WSO2 Inc. >> >> Blog: [Llovizna] http://kkpradeeban.blogspot.com/ >> >> > > > -- > Kathiravelu Pradeeban. > Software Engineer. > WSO2 Inc. > > Blog: [Llovizna] http://kkpradeeban.blogspot.com/ > > -- *Afkham Azeez* Senior Software Architect & Senior Manager; WSO2, Inc.; http://wso2.com, * * *Member; Apache Software Foundation; **http://www.apache.org/*<http://www.apache.org/> * email: **[email protected]* <[email protected]>* cell: +94 77 3320919 blog: **http://blog.afkham.org* <http://blog.afkham.org>* twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> * linked-in: **http://lk.linkedin.com/in/afkhamazeez* * * *Lean . Enterprise . Middleware*
_______________________________________________ Carbon-dev mailing list [email protected] https://wso2.org/cgi-bin/mailman/listinfo/carbon-dev
