On Sun, Jan 16, 2011 at 9:06 PM, Thilina Buddhika <thili...@wso2.com> wrote:
> 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. > +1. We have a stratos.xml without being used much. We should use that for these. We check for the regex to validate in both BE and FE. Not sure whether we should use the stratos.xml for the FE. Won't that be a performance hit? Regards, Pradeeban. > > Thanks, > Thilina > > > On Sun, Jan 16, 2011 at 7:58 PM, Afkham Azeez <az...@wso2.com> 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 < >> pradee...@wso2.com> 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 < >>> pradee...@wso2.com> wrote: >>> >>>> >>>> >>>> On Sun, Jan 16, 2011 at 6:20 PM, Afkham Azeez <az...@wso2.com> 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 <az...@wso2.com> wrote: >>>>> >>>>>> >>>>>> >>>>>> On Sun, Jan 16, 2011 at 4:16 PM, <pradee...@wso2.com> 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 >>>>>>> carbon-comm...@wso2.org >>>>>>> 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: **az...@wso2.com* <az...@wso2.com>* 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: **az...@wso2.com* <az...@wso2.com>* 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: **az...@wso2.com* <az...@wso2.com>* 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 >> carbon-comm...@wso2.org >> 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 > -- Kathiravelu Pradeeban. Software Engineer. WSO2 Inc. Blog: [Llovizna] http://kkpradeeban.blogspot.com/
_______________________________________________ Carbon-dev mailing list Carbon-dev@wso2.org https://wso2.org/cgi-bin/mailman/listinfo/carbon-dev