-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add external data manager #246
Conversation
} | ||
} | ||
$qb = Dbal::createQueryBuilder(); | ||
$qb->update('t_external_data_exd', 'exd'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
En gros quand il y'a un insert, tu reupdates derrière... ça fait une requête inutile, c'est donc non performant...
Je kiffe le fait que le user soit facultatif, pour stocker des préférences c'est cool. |
Tu peux ajouter des droits ? Genre lecture/ecriture pour les autres fundations ? Je n'ai pas encore d'usage précis en tête, mais ça me semble évident que ça peut être utile. |
Oui j'y avais pensé aussi. Mais je pense qu'il faut attendre que le cas concret se présente ^^ |
C'est peut être plus simple de le faire maintenant (tout du moins la structure de la db, quitte à ne pas encore coder toutes les méthodes). Parce que après pour faire les migrations de la DB et adapter le bordel (voir remettre les bons droits... ça sera plus chiant...) |
{ | ||
$this->addSql(" | ||
DROP TABLE `t_external_data_exd`; | ||
ALTER TABLE `payutc`.`t_external_data_exd` DROP INDEX `fun_usr_key_uniq`;"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ça ça ne fonctionnera pas.
return $usr; | ||
} | ||
|
||
protected function get($fun_id, $key, $usr = null) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Du coup il faut que $usr soit un array. Il n'y avait pas un bug dans payutc-json-client qui empêchait l'envoi d'array en paramètre ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cette méthode est protected, c'est celle qui est utilisée par les autres fonctions (c'est celle aussi qui fait le checkright)
Considère-t-on que les Du coup chaque application doit préfixer ces clefs avec une clef "secrète" pour être isolé dans un namespace (avec le risque qu'une autre application tombe dessus). ça peut me convenir comme première implémentation, bien qu'ils ne faillent pas stocker d'information trop critique, les données n'étant pas si bien sécurisé (après si quelqu'un fait de la merde, les applications étant authentifiés... On sait sur qui taper...) Si on ne considère pas que les clefs sont secrètes, il faudrait isoler les applications et ajouter une méthode pour qu'une application puissent récupérer d'un coup d'un seul toutes les données qu'elle a stocké. |
Et la clé secrète (qui sert à préfixer), on la stocke où ? J'aime pas trop :( |
Ce serait un truc interne à l'appli... Dans ta conf tu décides de J'aime pas trop non plus, y'a pas mal de truc incohérent dans la gestion Matthieu GUFFROY 2013/10/6 Arthur Puyou [email protected]
|
Quelles collisions ? J'ai concu tout le truc pour que les données appartiennent aux une fondations, pas aux applications ni aux un users (parce que ecocup appartient au pic). Si c'est pas ca qu'il faut faut tout revoir beaucoup de choses (faut notamenet ajouter une colonne owner). |
Ok j'avais pas fait attention à ça. Donc tu confirmes qu'il y'a "namespace" par fundation (même si c'est pas vraiment des namespace) je veux dire la fundation 1 peut avoir une variable "A" et la fundation 2 égallement une variable "A" sans qu'il y'ait de problème ? |
Bien sur, |
Si tu corriges les deux checkRight et que tu remets ta PR a jour (pour qu'elle soit mergeable) je suis prêt à l'accepter. |
Je suis moyen chaud pour la merge, on avait trouvé un truc mieux sur un gdoc, et je prefererai beaucoup que ça soit fait en mongodb. Mongodb parce que Mongodb autorise à mettre des types différents dans la db, genre on pourra mettre des int et faire des increments propres et atomiques. |
Si ils ont leur serveurs ils peuvent installer mongodb. En tous les cas je voulais changer des trucs dans l'implémentation courante faut que je retrouve le doc. |
Pour info, nous on pourrait l'installer (le problème avec OpenVZ est un mythe). Mais je bosse avec ce semestre, et c'est pas ce qu'il y a de plus léger, donc ça m'ennuie un peu de rajouter une couche pareille juste pour stocker des données qui ne sont même au cœur du serveur... |
On en fait quoi de cette PR ? On la jette ? |
Je ferme la PR, on réouvrira le jour ou l'on sera ce qu'on veut faire à ce sujet. |
Fix #245
May Fix #234
Je me suis écarté un peu de ce qui était écrit, pour commencé j'ai fait un service qui permet aussi bien de stocker des informations au niveau d'une fundation que d'un utilisateur d'une fundation.
Ensuite j'ai un peu changer l'ordre des parametres pour mettre le user en facultatif.
Et puis j'ai pas pris le nom de table proposé, j'ai appellé ca des données externes, donc t_external_data_exd.