Hi,
PFA patch for user management issues. -- *Harshal Dhumal* *Software Engineer* EnterpriseDB India: http://www.enterprisedb.com The Enterprise PostgreSQL Company On Mon, Jun 6, 2016 at 6:06 PM, Dave Page <dp...@pgadmin.org> wrote: > Hi > > Thanks - I've commit as-is (with some minor tweaks), however the > following issues are present: > > 1) I get an error: "Invalid Email id: dpage...@pgadmin.org". That is a > perfectly valid email address, but I guess we're not recognising the > +. > Fixed. > > 2) When I mouse-over the Users menu option, the cursor isn't changing > to a pointer. > Fixed. > > 3) The font in the Close button is still not quite the same as for the > other dialogues. > Fixed font size issue. > > Please fix and submit patch(es). > > Thanks. > > On Mon, Jun 6, 2016 at 11:58 AM, Harshal Dhumal > <harshal.dhu...@enterprisedb.com> wrote: > > Hi, > > > > PFA updated patch (V6) for user management functionality. > > > > Changes: As per Ashesh's suggestion I have disabled email update of > existing > > user. > > > > > > -- > > Harshal Dhumal > > Software Engineer > > > > EnterpriseDB India: http://www.enterprisedb.com > > The Enterprise PostgreSQL Company > > > > On Mon, Jun 6, 2016 at 2:16 PM, Dave Page <dp...@pgadmin.org> wrote: > >> > >> Hi > >> > >> On Fri, Jun 3, 2016 at 10:52 PM, Harshal Dhumal > >> <harshal.dhu...@enterprisedb.com> wrote: > >> > Hi, > >> > > >> > > >> > PFA attached patch (V5) for user management functionality. > >> > > >> > Note: If you've applied any of the previous patch of this > functionality > >> > then > >> > set ConfigDB value to 10 in version table of and also delete role > >> > 'Standard' > >> > from role table before applying this patch. > >> > >> Done - also restarted my app server, and done a hard refresh of the > >> browser... > >> > >> And I get "(index):310 Uncaught TypeError: Cannot read property > >> 'show_users' of undefined" when I try to open the Users menu option. > > > > > > This was an issue. Ideally Users menu shouldn't be visible to non admin > > users. I have fixed in this patch. > > > >> > >> > >> >> - The Close button should be disabled if errors are present. > >> > > >> > > >> > I'm not convinced that to deny superuser from closing dialog for his > >> > mistakes (accidental mistakes). > >> > > >> > Consider a case when superuser clears email for any old user > >> > inadvertently > >> > (obviously this won't reflect on server). At this point there is no > >> > proper > >> > way that he can roll back or close the dialog without saving it if we > >> > disable close button. He has to either enter correct email for that > user > >> > or > >> > refresh the browser. > >> > > >> > Another case while adding new user if he plans not to add user then he > >> > has > >> > to clear that partially filled user from grid before he can close the > >> > dialog. > >> > >> Well we either need that, or a message box asking the user if he wants > >> to discard his changes and offering OK/Cancel options. > > > > > > I have added confirmation before closing dialog if any unsaved changes > are > > present. > > > > > >> > >> > >> >> - If I enter all the details for a new user and then hit Close, the > >> >> dialog > >> >> is closed and the new user is NOT added. I have to click something > else > >> >> first so the row loses focus, and then click close. > >> > > >> > > >> > I was not able to reproduce this issue. I tried with both close > buttons > >> > (top-right and bottom-right). Users were created in both the cases by > >> > adding > >> > all details and directly closing dialog without clicking anywhere on > the > >> > dialog. > >> > >> Hmm, I'll re-test when I get an updated patch. > > > > Ok > > > >> > >> > >> -- > >> Dave Page > >> Blog: http://pgsnake.blogspot.com > >> Twitter: @pgsnake > >> > >> EnterpriseDB UK: http://www.enterprisedb.com > >> The Enterprise PostgreSQL Company > > > > > > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company >
diff --git a/web/pgadmin/browser/templates/browser/index.html b/web/pgadmin/browser/templates/browser/index.html index a70cb5b..69d3ecc 100644 --- a/web/pgadmin/browser/templates/browser/index.html +++ b/web/pgadmin/browser/templates/browser/index.html @@ -69,7 +69,7 @@ try { <li><a href="{{ url_for('security.change_password') }}">{{ _('Change Password') }}</a></li> <li class="divider"></li> {% if is_admin %} - <li><a onclick="pgAdmin.Browser.UserManagement.show_users()">{{ _('Users') }}</a></li> + <li><a href="#" onclick="pgAdmin.Browser.UserManagement.show_users()">{{ _('Users') }}</a></li> <li class="divider"></li> {% endif %} <li><a href="{{ url_for('security.logout') }}">{{ _('Logout') }}</a></li> diff --git a/web/pgadmin/static/css/overrides.css b/web/pgadmin/static/css/overrides.css index 3cb7dc8..02f0e02 100755 --- a/web/pgadmin/static/css/overrides.css +++ b/web/pgadmin/static/css/overrides.css @@ -1103,7 +1103,7 @@ span.button-label { } button.pg-alertify-button { font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; - font-size: 15px; + font-size: 14px; } .fa.pg-alertify-button:before { font: normal normal normal 18px/1 FontAwesome; @@ -1319,10 +1319,10 @@ height: calc(100% - 35px); font-size: 12px; } -.user_management-pg-alertify-button { - font-size: 14px !important; -} - .alertify_tools_dialog_backgrid_properties { top: 43px !important; +} + +.user_management_pg-alertify-button { + line-height: 16px; } \ No newline at end of file diff --git a/web/pgadmin/tools/user_management/__init__.py b/web/pgadmin/tools/user_management/__init__.py index 278a7d5..85d61d9 100644 --- a/web/pgadmin/tools/user_management/__init__.py +++ b/web/pgadmin/tools/user_management/__init__.py @@ -66,7 +66,10 @@ blueprint = UserManagementModule( def validate_user(data): new_data = dict() - email_filter = '^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$' + email_filter = re.compile("^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9]" + "(?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9]" + "(?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$") + if ('newPassword' in data and data['newPassword'] != "" and 'confirmPassword' in data and data['confirmPassword'] != ""): @@ -76,7 +79,7 @@ def validate_user(data): raise Exception(_("Passwords do not match.")) if 'email' in data and data['email'] != "": - if re.match(email_filter, data['email']): + if email_filter.match(data['email']): new_data['email'] = data['email'] else: raise Exception(_("Invalid email address.")) diff --git a/web/pgadmin/tools/user_management/templates/user_management/js/user_management.js b/web/pgadmin/tools/user_management/templates/user_management/js/user_management.js index 96acd9d..7fb54bd 100644 --- a/web/pgadmin/tools/user_management/templates/user_management/js/user_management.js +++ b/web/pgadmin/tools/user_management/templates/user_management/js/user_management.js @@ -157,7 +157,7 @@ define([ var err = {}, errmsg = null, changedAttrs = this.changed || {}, - email_filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; + email_filter = /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/; if (('email' in changedAttrs || !this.isNew()) && (_.isUndefined(this.get('email')) || _.isNull(this.get('email')) || @@ -377,8 +377,8 @@ define([ setup:function() { return { buttons: [{ - text: '{{ _('Close') }}', key: 27, className: 'btn btn-danger fa fa-lg fa-times pg-alertify-button', - attrs:{name:'close'} + text: '{{ _('Close') }}', key: 27, className: 'btn btn-danger fa fa-lg fa-times pg-alertify-button user_management_pg-alertify-button', + attrs:{name:'close', type:'button'} }], // Set options for dialog options: {
-- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers