Re: [pgAdmin4][RM#3037] Allow user to disable Gravatar image

From: Joao De Almeida Pereira <jdealmeidapereira(at)pivotal(dot)io>
To: Murtuza Zabuawala <murtuza(dot)zabuawala(at)enterprisedb(dot)com>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: [pgAdmin4][RM#3037] Allow user to disable Gravatar image
Date: 2018-03-05 19:47:27
Message-ID: CAE+jjam=DVv8dZnUkkWU2nTNOLkzHtnWt+vyE5c-9yfL+M6whw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Hello,
I understand that, but what do we win by using it? As you have noticed by
now I am not very fond of using templates for everything, and I believe
this is one of the things that we can skip templates.
We might even shift this to a frontend concern and if we want there are
node libraries to get gravatars.

I was able to create a PoC as a sample of what I was talking about:
- Add gravatar library to package.json
- Created a Preferences cache. (js/preferences.js)
- So this was the concept I was talking about in a previous email we
talked about caching.
the getConfiguration and the getAllConfiguration are not great names,
but they return a Promise that is consumed in the load_gravatar. The idea
here is that we are caching the pgAdmin settings and when need need to
consume them, we wait for it to be available.
- load_gravatar is using the pattern to retrieve the configuration from a
possible cache and then apply the gravatar

Things that need to be revisited in the PoC:
- No tests, just some spiked code
- Did not retrieve the username from the backend, we need to create an
endpoint that give us this
- The url is hardcoded to get the configuration
- Maybe the Preferences is not the correct place to get server_mode
configuration not sure, what do you think?

Thanks
Joao

On Mon, Mar 5, 2018 at 11:21 AM Murtuza Zabuawala <
murtuza(dot)zabuawala(at)enterprisedb(dot)com> wrote:

> Hi Joao,
>
> We are using Flask-Gravatar <https://pythonhosted.org/Flask-Gravatar/>
> module for this and it is designed to work with template only.
>
> --
> Regards,
> Murtuza Zabuawala
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
>
> On Mon, Mar 5, 2018 at 8:57 PM, Joao De Almeida Pereira <
> jdealmeidapereira(at)pivotal(dot)io> wrote:
>
>> Hi Murtuza,
>>
>> Why are we doing this using templates? Can this be done with a request to
>> the backend to get the image and then retrieve the Gravatar if it is
>> defined or return a static image if not?
>>
>> +
>> +{% if config.SERVER_MODE %}
>> window.onload = function(e){
>> setTimeout(function() {
>> - var gravatarImg = '<img src="{{ username | gravatar }}" width="18"
>> height="18" alt="Gravatar image for {{ username }}"> {{ username }} <span
>> class="caret"></span>';
>> + var gravatarImg = {{ IMG.PREPARE_HTML()|safe }}
>> //$('#navbar-menu .navbar-right > li > a').html(gravatarImg);
>> var navbarRight =
>> document.getElementById("navbar-menu").getElementsByClassName("navbar-right")[0];
>> if (navbarRight) {
>>
>> what if we have
>>
>> var gravatarImg = '<img src="/user/{{username}}/gravatar" width="18"
>> height="18" alt="Gravatar image for {{ username }}"> {{ username }} <span
>> class="caret"></span>';
>>
>> And then the endpoint
>> /user/{{username}}/gravatar
>> would be responsible for returning a Gravatar or not depending on the
>> configuration?
>>
>>
>> Thanks
>> Joao
>>
>> On Mon, Mar 5, 2018 at 3:13 AM Murtuza Zabuawala <
>> murtuza(dot)zabuawala(at)enterprisedb(dot)com> wrote:
>>
>>> Hi,
>>>
>>> PFA patch to disable Gravatar image in Server mode.
>>>
>>> Requirments & Issues:
>>> - For security reasons.
>>> - For systems which do not have internet access.
>>> - Hangs pgAdmin4 while loading the page if connection has no internet
>>> access (as described in the ticket)
>>>
>>> --
>>> Regards,
>>> Murtuza Zabuawala
>>> EnterpriseDB: http://www.enterprisedb.com
>>> The Enterprise PostgreSQL Company
>>>
>>>
>

Attachment Content-Type Size
poc-retrieve-gravatar.diff text/x-patch 8.3 KB

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Murtuza Zabuawala 2018-03-06 06:59:00 Re: [pgAdmin4][RM#3037] Allow user to disable Gravatar image
Previous Message Murtuza Zabuawala 2018-03-05 16:23:56 Re: [pgAdmin4][RM#3175] Fix PEP-8 issues