I think it is better to allow domain name pattern to be configurable through a reg-ex that goes into stratos.xml, similar to what we do for password validations in user manager.
Thanks, Thilina On Sun, Jan 16, 2011 at 7:58 PM, Afkham Azeez <[email protected]> wrote: > 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-commits mailing list > [email protected] > https://wso2.org/cgi-bin/mailman/listinfo/carbon-commits > > -- Thilina Buddhika Senior Software Engineer WSO2 Inc. ; http://wso2.com lean . enterprise . middleware phone : +94 77 44 88 727 blog : http://blog.thilinamb.com
_______________________________________________ Carbon-dev mailing list [email protected] https://wso2.org/cgi-bin/mailman/listinfo/carbon-dev
