Hi Dave,

Regarding User management related issue RM2641
<https://redmine.postgresql.org/issues/2641> is already logged and also I
have sent patch for the same.

-- 
*Harshal Dhumal*
*Sr. Software Engineer*

EnterpriseDB India: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

On Mon, Sep 18, 2017 at 1:34 PM, Dave Page <dp...@pgadmin.org> wrote:

>
>
> On Sat, Sep 16, 2017 at 3:14 PM, Gabriel Sánchez <
> gabrielesanc...@gmail.com> wrote:
>
>>
>>
>> On Sat, Sep 16, 2017 at 6:47 AM, Surinder Kumar <
>> surinder.ku...@enterprisedb.com> wrote:
>>
>>> Hi
>>>
>>> On Sat, Sep 16, 2017 at 1:31 AM, Gabriel Sánchez <
>>> gabrielesanc...@gmail.com> wrote:
>>>
>>>>
>>>> On Thu, Sep 14, 2017 at 2:33 PM, Dave Page <dp...@pgadmin.org> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Thu, Sep 14, 2017 at 5:59 PM, Mike Surcouf <mi...@surcouf.co.uk>
>>>>> wrote:
>>>>>
>>>>>> I share your pain.
>>>>>>
>>>>>> I do have it working but as a root app and it took me a while to work
>>>>>> through the docs and fill in the blanks.
>>>>>>
>>>>>> I think Dave was looking at making server install much easier but not
>>>>>> sure if anything was implemented in the next version.
>>>>>>
>>>>>
>>>>> It has been, and the docs are updated on the website and in the test
>>>>> builds.
>>>>>
>>>>
>>>>>
>>>>>> Regarding issue #2 running the app as a subdirectory this was broken
>>>>>> in 1.6
>>>>>>
>>>>>> As you have found the docs won’t give you a working solution.
>>>>>>
>>>>>> You can work around this by running the app in the root of apache but
>>>>>> that’s not a great solution.
>>>>>>
>>>>>> I am waiting on 1.7 to fix this but there is no info on release as of
>>>>>> yet.
>>>>>>
>>>>>
>>>>> https://developer.pgadmin.org/~dpage/2.0-rc1/
>>>>>
>>>>> I'm probably not going to release that as there have been a few fixes
>>>>> since then, but that build includes the "server mode out of the box" 
>>>>> config
>>>>> (though, if using the wheel or source, you will need to create
>>>>> /var/log/pgadmin and /var/lib/pgadmin and change the owner to whoever you
>>>>> run the server as), and webpacking of all the code which makes it *much*
>>>>> faster.
>>>>>
>>>>>
>>>>
>>>> Thanks.  I installed RC1 in as before (in a virtual environment and
>>>> with the modification on pgadmin.wsgi to activate the virtual environment
>>>> (see Issue #1 in the original post)), and I'm trying to run it on the web
>>>> root, but I'm getting the following in the apache error log:
>>>>
>>>> [mod_wsgi (pid=12596): Target WSGI script '/opt/pgadmin4_2/virtualenv/li
>>>> b/python2.7/site-packages/pgadmin4/pgAdmin4.wsgi' cannot be loaded as
>>>> Python module.
>>>> mod_wsgi (pid=12596): Exception occurred processing WSGI script
>>>> '/opt/pgadmin4_2/virtualenv/lib/python2.7/site-packages/pgad
>>>> min4/pgAdmin4.wsgi'.
>>>>  Traceback (most recent call last):
>>>>    File 
>>>> "/opt/pgadmin4_2/virtualenv/lib/python2.7/site-packages/pgadmin4/pgAdmin4.wsgi",
>>>> line 20, in <module>
>>>>      import config
>>>>    File 
>>>> "/opt/pgadmin4_2/virtualenv/lib/python2.7/site-packages/pgadmin4/config.py",
>>>> line 118, in <module>
>>>>      if builtins.SERVER_MODE is None:
>>>>  AttributeError: 'module' object has no attribute 'SERVER_MODE'
>>>>
>>>
>>>> Any suggestions on what to try next?
>>>>
>>> That's an issue. To fix just add this snippet at line 117 in config.py
>>>
>>> builtins.SERVER_MODE=builtins.SERVER_MODE if hasattr(builtins,
>>> 'SERVER_MODE') else None​
>>>
>>> ​
>>> I will send a patch for this.
>>>
>>>>
>>>> I also tried it without the modification to pgadmin.wsgi, but I was
>>>> getting an error similar to before, with "ImportError: No module named
>>>> flask_paranoid", and the activation of the virtual environment seems to
>>>> have addressed that.
>>>>
>>>> Is the modification to pgadmin.wsgi to activate the virtual environment
>>>> a good fix?  Or is there an option I could add in config_local.py with a
>>>> path to the virtual environment?
>>>>
>>> ​You don't need to modify pgAdmin4.wsgi, instead set the *python-path* to
>>> virtual env in your *apache.conf* file​
>>>
>>> ​like:
>>>
>>> WSGIDaemonProcess pgadmin processes=1 threads=25 \
>>>     python-path=/home/surinder/venv/py27/:/home/surinder/venv/py
>>> 27/lib/python2.7/site-packages/
>>>
>>>>
>>>> And, just to confirm, does v2 RC1 run from a subdirectory as well as on
>>>> web root?
>>>>
>>> ​Yes, It runs from subdirectory.
>>>
>>> ​For example: Sub-directory can be given like:
>>>
>>> WSGIScriptAlias */pgadmin*
>>> *​/sub-directory/*​
>>> /opt/pgadmin4/virtualenv/lib/python2.7/site-packages/pgadmin
>>> 4/pgAdmin4.wsgi
>>>
>>
>> Got it working with your help!  Thanks very much!  It looks great!
>>
>>
>>
>>> ​
>>> If you still having any issue, let us know.
>>>
>>
>> Three things:
>>
>> 1.  I am unable to add another pgAdmin user.  The dialog opens, and I can
>> type in the e-mail, password, and confirm-password, but the role drop-down
>> is empty and disabled, and there is no way to save a new user.
>>
>> 2. Playing around with this, I set myself to user instead of
>> administrator, and now I can't switch myself back to administrator.  Is
>> there a recommended way to modify the user database with shell access?  I'd
>> use this to switch myself back to administrator and/or get around not being
>> able to add a user with the GUI.  (For now I'll clear the DB file and rerun
>> setup.py, but I'd like to have a way that doesn't erase the server
>> definitions or other users that are working well.)
>>
>> 3.  I'm still wondering about issue #3 in my original post.  The
>> documentation says that on the dialog to add a server "On Unix based
>> systems, the address field may be left blank to use the default PostgreSQL
>> Unix Domain Socket on the local machine", but the dialog forces me to enter
>> either a host name/address on the Connection tab or a host address on the
>> Advanced tab.  These seem to trigger host rules for authentication in
>> pg_hba.  Since I have peer authentication enabled for localhost, with psql
>> I don't need to enter a password.  Is there a way to use the unix socket
>> (local rules for authentication in pg_hba)?
>>
>
> Surinder, please look into these issues ASAP: on 1 & 2, obviously it
> should be possible to add users, and it should be impossible to change the
> role of the current user to a non-administrator.
>
> Thanks.
>
>
>>
>>
>>
>>
>>
>>>
>>>>
>>>>
>>>>>
>>>>>>
>>>>>> *From:* Gabriel Sánchez [mailto:gabrielesanc...@gmail.com]
>>>>>> *Sent:* 14 September 2017 17:32
>>>>>> *To:* pgadmin-supp...@postgresql.org
>>>>>> *Subject:* Hosting pgAdmin4 with Apache/WSGI
>>>>>>
>>>>>>
>>>>>>
>>>>>> Hi team,
>>>>>>
>>>>>>
>>>>>>
>>>>>> Thanks for the hard work you've put in to develop pgAdmin4 and
>>>>>> provide support to the community.  I'm writing to ask for your help to 
>>>>>> set
>>>>>> up pgAdmin4 in server mode under Apache with WSGI.  I'm running Ubuntu
>>>>>> 16.04 Server and installing pgAdmin4 version 1.6 with Python 2.7.12.  A
>>>>>> couple of issues are getting in the way.
>>>>>>
>>>>>>
>>>>>>
>>>>>> *Issue #1  Installation*
>>>>>>
>>>>>>
>>>>>>
>>>>>> I struggled to install pgAdmin4 with the online documentation, being
>>>>>> unfamiliar with Python and WSGI.  I followed the instructions on the
>>>>>> pgAdmin website but I was not getting the pgAdmin page on my browser.
>>>>>>
>>>>>>
>>>>>>
>>>>>> I turned on debug logging in apache and was getting the following
>>>>>> (details redacted):
>>>>>>
>>>>>>
>>>>>>
>>>>>> ####
>>>>>>
>>>>>> mod_wsgi (pid): Target WSGI script '/opt/pgadmin4/virtualenv/lib/
>>>>>> python2.7/site-packages/pgadmin4/pgAdmin4.wsgi' cannot be loaded as
>>>>>> Python module.
>>>>>>
>>>>>> mod_wsgi (pid): Exception occurred processing WSGI script
>>>>>> '/opt/pgadmin4/virtualenv/lib/python2.7/site-packages/pgadmin4/pgAdmin4.wsgi'.
>>>>>>
>>>>>>
>>>>>> Traceback (most recent call last):
>>>>>>
>>>>>> File 
>>>>>> "/opt/pgadmin4/virtualenv/lib/python2.7/site-packages/pgadmin4/pgAdmin4.wsgi",
>>>>>> line 17, in <module>
>>>>>>
>>>>>>      import config
>>>>>>
>>>>>>    File 
>>>>>> "/opt/pgadmin4/virtualenv/lib/python2.7/site-packages/pgadmin4/config.py",
>>>>>> line 24, in <module>
>>>>>>
>>>>>>      from pgadmin.utils import env, IS_PY2, IS_WIN, fs_short_path
>>>>>>
>>>>>>    File 
>>>>>> "/opt/pgadmin4/virtualenv/lib/python2.7/site-packages/pgadmin4/pgadmin/__init__.py",
>>>>>> line 17, in <module>
>>>>>>
>>>>>>      from flask import Flask, abort, request, current_app, session
>>>>>>
>>>>>>  ImportError: No module named flask
>>>>>>
>>>>>> ####
>>>>>>
>>>>>>
>>>>>>
>>>>>> But flask *was* installed in the virtual environment!  I also ran
>>>>>> setup.py within the virtual environment.  After hours of reading forum 
>>>>>> and
>>>>>> mailing list posts, scanning error logs, and trying things, I was able to
>>>>>> get to the pgAdmin4 landing page.  As best I can tell, the issue was 
>>>>>> that I
>>>>>> installed pgAdmin4 in a virtual environment, under
>>>>>> /opt/pgadmin4/virtualenv, but apache2 wasn't using that virtual
>>>>>> environment.  The solution was to add the following to pgAdmin4.wsgi 
>>>>>> right
>>>>>> before "import config":
>>>>>>
>>>>>>
>>>>>>
>>>>>> activate_this = '/opt/pgadmin4/virtualenv/bin/activate_this.py'
>>>>>>
>>>>>> execfile(activate_this, dict(__file__=activate_this))
>>>>>>
>>>>>>
>>>>>>
>>>>>> Is this the right solution, or is there a better fix to this?  Note
>>>>>> that the download instructions of the website recommend installing 
>>>>>> pgAdmin
>>>>>> inside a virtual environment (I had to learn what that was and how to set
>>>>>> it up), and the Server Setup instructions in the documentation don't
>>>>>> mention the need to add these lines.
>>>>>>
>>>>>>
>>>>>>
>>>>>> If this is the right solution, it would help to clarify in the
>>>>>> documentation, and perhaps to add the hint to the error log.  I'm 
>>>>>> including
>>>>>> this here hoping that others with the same problem will find this post 
>>>>>> and
>>>>>> it will save them hours of troubleshooting.   A detailed walk-through in
>>>>>> the documentation would've been super helpful.  If you'd like, I can 
>>>>>> share
>>>>>> my setup as a walk-through for posting on the website once I get it all
>>>>>> running well.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> *Issue #2  Hosting within web subdirectory*
>>>>>>
>>>>>>
>>>>>>
>>>>>> I want to host pgAdmin within a web subdirectory, e.g.
>>>>>> example.com/pgadmin, since the server has a website on root, e.g.
>>>>>> example.com.  I have the following apache site configuration
>>>>>> (details redacted):
>>>>>>
>>>>>>
>>>>>>
>>>>>> <IfModule mod_ssl.c>
>>>>>>
>>>>>>         <VirtualHost _default_:443>
>>>>>>
>>>>>>                 ServerName ***
>>>>>>
>>>>>>                 ServerAdmin ***
>>>>>>
>>>>>>                 DocumentRoot /var/www/html
>>>>>>
>>>>>>                 ErrorLog ${APACHE_LOG_DIR}/error.log
>>>>>>
>>>>>>                 CustomLog ${APACHE_LOG_DIR}/access.log combined
>>>>>>
>>>>>>
>>>>>>
>>>>>>                 SSLEngine on
>>>>>>
>>>>>>                 SSLCertificateFile      ***
>>>>>>
>>>>>>                 SSLCertificateKeyFile   ***
>>>>>>
>>>>>>                 SSLCACertificateFile ***
>>>>>>
>>>>>>
>>>>>>
>>>>>>                 WSGIDaemonProcess pgadmin processes=1 threads=25
>>>>>>
>>>>>>                 WSGIScriptAlias /pgadmin
>>>>>> /opt/pgadmin4/virtualenv/lib/python2.7/site-packages/pgadmin4/pgAdmin4.wsgi
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>                 <Directory /opt/pgadmin4/virtualenv/lib/p
>>>>>> ython2.7/site-packages/pgadmin4>
>>>>>>
>>>>>>                         WSGIProcessGroup pgadmin
>>>>>>
>>>>>>                         WSGIApplicationGroup %{GLOBAL}
>>>>>>
>>>>>>                         AllowOverride None
>>>>>>
>>>>>>                         Require all granted
>>>>>>
>>>>>>                 </Directory>
>>>>>>
>>>>>>                 <Location "/pgadmin">
>>>>>>
>>>>>>                         SSLVerifyClient require
>>>>>>
>>>>>>                         SSLVerifyDepth 1
>>>>>>
>>>>>>                 </Location>
>>>>>>
>>>>>>         </VirtualHost>
>>>>>>
>>>>>> </IfModule>
>>>>>>
>>>>>>
>>>>>>
>>>>>> This gets me the pgAdmin landing page, but nothing works.  Clicking
>>>>>> on "Add New Server" does nothing.  Clicking on "Configure pgAdmin" opens 
>>>>>> up
>>>>>> a dialog that says "Category is not selected."  Nothing shows up in the
>>>>>> Browser.
>>>>>>
>>>>>>
>>>>>>
>>>>>> If I change the apache config to host under / instead of under
>>>>>> /pgadmin, things do work.  I see the "Servers" node in the browser, and 
>>>>>> the
>>>>>> Create Server dialog pops up when I click on "Add New Server".  I am able
>>>>>> to connect to the database.
>>>>>>
>>>>>>
>>>>>>
>>>>>> What configuration changes are necessary to get pgAdmin to work
>>>>>> within a subdirectory, e.g. /pgadmin?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> *Issue #3  Using peer authentication*
>>>>>>
>>>>>>
>>>>>>
>>>>>> Is there a way to use peer authentication without passwords?  I had
>>>>>> to setup the connection without SSL and connecting to localhost, with a
>>>>>> password.  I'm already protecting the landing page with client 
>>>>>> certificate
>>>>>> authentication, and pgAdmin itself requires password authentication, so I
>>>>>> figure another password isn't necessary.  (Right?)  The documentation 
>>>>>> says
>>>>>> "On Unix based systems, the address field may be left blank to use the
>>>>>> default PostgreSQL Unix Domain Socket on the local machine..." but 
>>>>>> pgAdmin
>>>>>> is requiring me to enter a host name in the connection tab or a host
>>>>>> address in the advanced tab.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Should I use SSL for traffic within the server (between the database
>>>>>> and the client) if I'm not sharing the server with anyone?
>>>>>>
>>>>>>
>>>>>>
>>>>>> Any other configuration suggestions or tips are welcome.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Thanks in advance for your help.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Gabriel
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> 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
>

Reply via email to