Bonjour tout le monde, je suis en formation dans le développement et je suis actuellement en train de développer un petit site web pour un ami photographe pour m'entrainer avec symfony.
Le site est assez classique, c'est un site vitrine avec une page de contact, sans systeme d'inscription et de connexion au site car ce n'est pas nécessaire.
Cependant je voudrais savoir si c'était possible de créer une interface admin pour pouvoir ajouter, modifier, supprimer des photos sur le site sans pour autant avoir un systeme de connexion?
Si oui, par quel moyen je pourrait faire cela s'il vous plait ?
merci d'avance et bonne journée :)
Hello !
A ma connaissance ce n'est pas possible .. il faut bien que ton ami puisse s'identifier pour avoir accès à ton backoffice. Sinon, n'importe qui peut y aller et faire sa vie ;)
Alors tout d'abord dans la DB il faut que tu créée un user admin (celui de ton ami), et ensuite faire un basic auth, c'est une connection par popup, donc pas vraiment une vraie connection mais ça restera une connection quand même :/
Deuxieme solution mais très restreinte si tu ne veux vraiment aucune connexion:
Tu passe par un .htaccess, tu restreinds l'access au backoffice en n'autorisant que les adresses IP des appareils de ton ami, si quelqu'un d'autre veut acceder au backoffice, il aura une erreur 403:Forbidden
Ce moyen est très restreint car ton ami ne pourras utiliser que le pc qui à cette adresse ip, mais je ne vois pas d'autre solution ^^'
Bref il n'y a aucun moyen de faire ca en passant par symfony, par contre il y'a un moyen en passant directement par Apache/Nginx
Order Deny,Allow
Allow from <<l'ip du pc de ton ami>>
Allow from <<l'ip de l'iphone/android de ton ami>>
Allow from <<l'ip du minitel de ton ami (bon t'as compris l'idée x))>>
Deny from all
Ensuite si tu veux faire une page forbiden personnalisée pour ceux qui essayent d'entrer au backoffice, tu peux faire une redirection htaccess:
ErrorDocument 403 /mapage403.html
Salut, merci pour vos réponses !
j'ai lu la réponse et avant de répondre je me suis renseigné un peu sur le .htaccess, je ne connaissait pas.
Du coup dans le dossier admin qui contiendra le .htaccess et le .htpasswd je devrait également y inclure les fichiers de code pour l'interface administrateur ?
De rien ;)
Et du coup oui tu as ton dossier admin, a l'interieur il y'a ton back office admin, et a la racine du dossier admin tu met ton .htaccess
Le serveur Apache ou Nginx va detecter automatiquement ton .htaccess et va lire ce fichier d'instructions avant de lancer ton code :)
Après attention, si ton ami part en vacances, il aura une autre ip il faudra la rajouter, et quand il rentre de vacances il faudra enlever l'ip de vancances
Ensuite si ton ami change d'ip (nouveau materiel) il faudra faire les changements à chaque fois :/
Le plus simple ce serait que tu fasses une API qu'il puisse appeller, cette fois il y'aura une connexion par clé ssh à faire, mais il ne le fait qu'une seule fois ce serait juste pour réécrire le htaccess pour configurer la nouvelle IP, et c'est tout (enfin seulement si tu maitrises Docker, ou au moins un système API serverless comme Google Cloud Functions ou Amazon Web Service, sinon tempis fait les configs manuellement ^^')