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

Поиск
Список
Период
Сортировка
От Joao De Almeida Pereira
Тема Re: [pgAdmin4][RM#3037] Allow user to disable Gravatar image
Дата
Msg-id CAE+jjam=DVv8dZnUkkWU2nTNOLkzHtnWt+vyE5c-9yfL+M6whw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [pgAdmin4][RM#3037] Allow user to disable Gravatar image  (Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com>)
Ответы Re: [pgAdmin4][RM#3037] Allow user to disable Gravatar image  (Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com>)
Список 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.zabuawala@enterprisedb.com> wrote:
Hi Joao,

We are using 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@pivotal.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.zabuawala@enterprisedb.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


Вложения

В списке pgadmin-hackers по дате отправления:

Предыдущее
От: Murtuza Zabuawala
Дата:
Сообщение: Re: [pgAdmin4][RM#3175] Fix PEP-8 issues
Следующее
От: Murtuza Zabuawala
Дата:
Сообщение: Re: [pgAdmin4][RM#3037] Allow user to disable Gravatar image