Lors de l’importation d’une catégorie à partir d’un fichier, existe-t-il un moyen de s’assurer que les sujets téléchargés resteront privés ? J’ai effectué une importation de test dans un environnement de développement Discourse local et les paramètres de sécurité de la catégorie ont été réinitialisés, de sorte que ces nouveaux sujets seraient visibles par tout le monde.
Je sais que je peux exécuter la commande import:file[category-export.json] puis changer immédiatement la sécurité de la catégorie pour qu’elle ne soit visible que par les utilisateurs d’un groupe spécifique, mais je suis préoccupé par ce qui se passe dans l’intervalle - premièrement, il peut y avoir un court laps de temps où tout le monde peut voir ce contenu, et deuxièmement, des notifications par e-mail peuvent être envoyées (ou planifiées) à tout le monde, même une fois les paramètres modifiés.
Étant donné que la tâche rake import:file ne prend qu’un seul argument (le nom du fichier), il ne semble y avoir aucun moyen de définir la « catégorie de destination » dans laquelle je souhaite que l’importation soit stockée.
J’ai essayé de créer la catégorie d’abord, avec le même nom de catégorie et le même slug, mais cela échoue avec l’erreur :
Échec de l'importation de la catégorie (ID = 5, nom = CATEGORY_NAME) : Échec de la validation : Le nom de la catégorie est déjà pris, le slug est déjà utilisé
Le seul sujet de test importé que j’ai inclus dans ce fichier .json a été importé, mais il a été créé dans #uncategorized, ce qui, au mieux, est pire que s’il avait été créé dans une catégorie ouvertement visible.
J’ai réfléchi à d’autres moyens de faire cela en toute sécurité, mais je n’ai pas de bonnes idées pour le moment. Des suggestions de la communauté ?
En fait, il semble que ce soit juste ma bêtise qui était au premier plan.
Le comportement par défaut de la tâche rake import:file (qui invoque ImportExport::Importer) est de copier exactement les autorisations de la Catégorie source. Je ne l’ai découvert qu’en examinant le code source.
Et c’est exactement ce qu’il a fait. La raison pour laquelle ma catégorie de destination n’avait pas les autorisations que j’espérais était que j’avais oublié de définir correctement ces autorisations dans la source ! Je déplaçais une catégorie dans un forum déjà privé (l’ensemble du forum est privé, donc cette catégorie était Voir/Répondre/Créer pour Tout le monde) vers un forum plus ouvert (dans lequel ces publications devaient être dans une catégorie sécurisée - Voir/Répondre/Créer uniquement pour les administrateurs initialement).
Je suis d’accord - puisque l’importation de catégories est quelque chose qui ne peut vraiment être fait que dans l’environnement réel, on pourrait vouloir que les autorisations soient par défaut réservées aux administrateurs jusqu’à ce que l’importation ait été vérifiée et que tout le monde soit satisfait. Mieux vaut cela que de spammer les utilisateurs avec des notifications sur les importations en masse.