Serveur de mise à jour pour les extensions commerciales

8

Joomla offre la possibilité d'ajouter un serveur de mise à jour permettant aux utilisateurs d'installer une mise à jour d'extension lors de la libération au clic d'un bouton.

C'est bien sûr idéal pour les extensions gratuites, mais pour les extensions commerciales, on pourrait rencontrer un problème où quelqu'un pourrait simplement obtenir l'URL de téléchargement à partir du fichier XML de mise à jour et le publier, donc c'est un non.

Ce que j'avais à l'esprit, c'était de faire quelque chose dans le même sens, mais cela informerait simplement l'utilisateur qu'il y a une mise à jour et ils devraient aller sur le site Web du développeur et le télécharger manuellement, mais je n'ai pas utilisé d'abonnement extensions, il n'y a donc pas d'autorisations spéciales pour accéder à ces extensions commerciales. Au lieu de cela, j'ai utilisé un composant qui permet simplement à l'utilisateur d'acheter l'extension et c'est tout.

Donc ma question est, y a-t-il une méthode intégrée que je ne connais pas qui permet un serveur de mise à jour pour les extensions commerciales? Je crois que je me souviens que cela a été discuté il y a longtemps, mais je ne sais pas si quelque chose a été implémenté dans Joomla pour cela.

Ou peut-être qu'à la place, serait-ce une idée d'empêcher l'accès direct au XML si l'on tape l'URL dans leur navigateur en utilisant un fichier htaccess ?

Remarque : je fais référence à un module, sinon j'aurais peut-être examiné quelque chose comme Akeeba Live Update

Lodder
la source
1
Je contacterais l'un des fabricants d'extensions qui le font déjà. Les gars de Rocket Theme ont créé leur propre plugin qui valide hors de leur serveur et utilise toujours le mécanisme de mise à jour intégré. Akeeba le fait sans plugin supplémentaire, mais sera mis à jour si votre code est entré dans les paramètres du composant. Vous pouvez également demander aux gars de watchful.li car leur système peut exploiter tous ces éléments et exécuter la mise à niveau pour vous. Quelqu'un voudra peut-être vous expliquer comment il procède.
Brian Peat
@BrianPeat - merci pour votre contribution. J'ai trouvé un commit sur Github par Nick d'Akeeba qui permet exactement ce que je veux (et peut-être que c'est juste moi qui a un moment blond), mais je ne pense pas que le "guide du développeur" soit suffisant. Il ne mentionne pas où mettre le code. La personne avec qui je travaille lui demandera plus de détails sur la question, alors j'espère que cela me mènera quelque part.
Lodder

Réponses:

5

Ma version de la mise en œuvre serait ...

Le client: - Donnez simplement à chaque utilisateur abonné une clé unique (secrète) et passez-la simplement comme variable GET lors de la vérification des nouvelles mises à jour.

Serveur: - De même, il suffit de vérifier les demandes entrantes pour cette variable, et correspondre avec une base de données, cool? allow : deny;.

L'abus: - Gardez une trace de chaque clé utilisée, et définissez un nombre de demandes réalisables autorisées, au-delà desquelles il suffit de signaler cette clé et son utilisateur comme suspects, puis faites ce que vous pensez faire, avertissant cet utilisateur, le blocage est pendant un certain temps, ou tout simplement la résiliation de l'abonnement ... etc, les possibilités sont infinies.

Mohd Abdul Mujib
la source
que se passe-t-il après que le serveur a répondu «autoriser»? En d'autres termes, comment cette validation fonctionne avec le serveur de mise à jour?
Malaiselvan
allowsignifie que le serveur a décidé d'envoyer le fichier de mise à jour en réponse.
Mohd Abdul Mujib
Merci @ 9ksoft. Votre solution permettra à l'utilisateur de télécharger l'extension mise à jour. Je crois qu'il ne peut pas faire d'installation automatique à l'aide du serveur de mise à jour, n'est-ce pas? Ou avez-vous une solution pour effectuer la mise à jour automatique après la validation? Désolé d'avoir posé beaucoup de questions .... :-)
Malaiselvan