<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Aug 8, 2014 at 12:37 AM, Marc Delisle <span dir="ltr"><<a href="mailto:marc@infomarc.info" target="_blank">marc@infomarc.info</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ashutosh Dhundhara a écrit :<br>
<div><div class="h5">> On Wed, Aug 6, 2014 at 2:46 AM, Marc Delisle <<a href="mailto:marc@infomarc.info">marc@infomarc.info</a>> wrote:<br>
><br>
>> Le 2014-08-05 14:35, Ashutosh Dhundhara a écrit :<br>
>>> Hi,<br>
>>><br>
>>> I was starting to work on RFE #1123<br>
>>> <<a href="https://sourceforge.net/p/phpmyadmin/feature-requests/1123/" target="_blank">https://sourceforge.net/p/phpmyadmin/feature-requests/1123/</a>> (Zeroconf<br>
>>> PMA tables support).<br>
>>><br>
>>> Is it something like enabling/disabling the PMA configuration storage<br>
>>> feature through UI with default table names?<br>
>>><br>
>>> Also, automatically create these tables when user has enabled this<br>
>>> feature through UI?<br>
>> Hi Ashutosh,<br>
>><br>
><br>
> Thanks Marc and Isaac.<br>
><br>
> The RFE was a bit confusing but the insight provided by you both clarified<br>
> everything.<br>
> However, I have a few queries and I am posting them in-line.<br>
><br>
><br>
>> I have read again the RFE and the comments in the ticket; then I read<br>
>> the details of your proposal on <a href="http://google-melange.com" target="_blank">google-melange.com</a>.<br>
>><br>
>> I don't have all the answers but can give you some pointers; others can<br>
>> give ideas too or contradict mine :)<br>
>><br>
>> * The solution has to work for a single-user installation and also for a<br>
>> multi-user installation<br>
>><br>
><br>
> How single-user and multi-user installation is going to affect this feature?<br>
> Is it something like if the user does not have access to the database<br>
> defined in the<br>
> directive $cfg['Servers'][$i]['pmadb'], then create the pma tables in the<br>
> database on which he/she<br>
> has access?<br>
<br>
</div></div>It is current for a single-user installation to not bother creating a<br>
control user; when there is no control user, the logged-in user is used<br>
also to access the pmadb.<br>
<br>
In a multi-user installation, there is normally a distinct control user<br>
defined.<br>
<br>
So please test both situations.<br>
<div class=""><br>
><br>
><br>
>> * Priority should go to use the values from config.inc.php (the control<br>
>> user, pmadb and all pmadb tables) if present. This is mainly for<br>
>> backward compatibility and also because I suspect it's the only way to<br>
>> support a multi-user installation<br>
>><br>
>> * In case there is no such configuration, the logic could check the<br>
>> presence of the default database name and table names, as suggested in<br>
>> examples/create_tables.sql<br>
>><br>
>> * I'm not sure on which panel is the best place to do this verification,<br>
>> but it could be at the same places where the warnings about the<br>
>> configuration storage are currently done (home page and each database ><br>
>> Operations page<br>
>><br>
>> * If this default database name "phpmyadmin" does not exist, the logic<br>
>> could look for the default table names in the current database (this is<br>
>> in case the user has access to only one database)<br>
><br>
><br>
> Lets say user sees the warning on homepage. Then how to decide the current<br>
> db?<br>
<br>
</div>Good question; so probably the verification won't be possible from the<br>
home page, only from a db-specific Operations page.<br>
<br>
Anyway, we could not ask the user to choose a db to store the<br>
configuration storage, because this choice could not be remembered (as<br>
this is a zero-conf mechanism).<br>
<div class=""><br>
> Is it something like creating these tables in the first database on which<br>
> the user has CREATE access?<br>
<br>
</div>No, because it won't be possible to know which db contains the<br>
configuration storage, when the user opens another database.<br>
<div class=""><br>
><br>
><br>
>> * If the default db and/or default table names are not found, the logic<br>
>> could pop a dialog, offering to create these in the current db and<br>
>> asking for confirmation; I hope it's possible to directly read<br>
>> examples/create_tables.sql for this, in order to avoid discrepancies<br>
>> between the logic and changes in create_tables.sql<br>
>><br>
>> * Something will have to be done with the logic that gives a warning<br>
>> about the configuration storage; it would probably lose its purpose<br>
>><br>
><br>
> Yes Marc. We will have to do something for this.<br>
> How about keeping this message/warning intact and when the user clicks on<br>
> 'here' of "To find out why click here<br>
</div>> <<a href="http://127.0.0.1/pma/chk_rel.php?token=ee04c7e45192bb15a4151248028e905f" target="_blank">http://127.0.0.1/pma/chk_rel.php?token=ee04c7e45192bb15a4151248028e905f</a>>.",<br>
<div class="">> the user<br>
> will be directed to diagnostic page as it is currently done. And on that<br>
> page we can provide a link with text something like "Fix it" and when user<br>
> will click this link, the new logic will be executed?<br>
<br>
</div>Good idea. This way, either the user can fix it manually (in a way that<br>
permits to have just one configuration storage) but will require<br>
configuration, or will be able to use the zero-conf mechanism (which<br>
will produce the pma_ tables in his current db).<br>
<div class="">><br>
><br>
>> * Maybe we'll need a new directive in config.inc.php, so that the<br>
>> installer can decide that the zero conf is active or not (would be<br>
>> active by default)<br>
>><br>
>> * I am not in favor of designing a UI to set up the configuration<br>
>> storage, as this already exists in /setup (with the goal of producing a<br>
>> config.inc.php)<br>
>><br>
>> * I am not in favor of programmatically creating a .php file in the<br>
>> installation directory or doing any modification in config.inc.php<br><br></div></blockquote><div><br></div><div>Hi Marc,</div><div><br></div><div>What if a user has access to multiple databases and the default database 'phpmyadmin' does not exists?</div>
<div>Lets say the user visits database 1 > Operation tab where he agrees to the choice to create pma tables in that database.</div><div><br></div><div>Now for the current session the configuration storage is up and working. Now when next time he logs into PMA, there will be again a warning for configuration storage on home page. But when he will visit database 1 > Operation tab, everything will become fine again.</div>
<div><br></div><div>But what if he visits database 2 > Operation tab before database 1. He will get a choice to create pma tables in that database too. If he agrees to create then there will be two different sets of pma tables because pmadb name can't be remembered.</div>
<div>What should be done in this case?</div></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><div>Ashutosh Dhundhara</div></div>
</div></div>