Dotclear

Ticket #424 (closed defect: fixed)

Opened 17 years ago

Last modified 17 years ago

Utilisation de dcMedia côté public : createFile() réclame des droits sur les médias

Reported by: Moe Owned by: olivier
Priority: lowest Milestone: 2.1
Component: module:core Version: 2.0
Severity: normal Keywords:
Cc:

Description

Bonjour,
je suis en train de développer un plugin pour lister les fichiers du gestionnaire de médias sur une page dédiée du blog. C'est très simple avec la classe dcMedia.

J'initialise l'objet :

$_ctx->media = new dcMedia($core);
$_ctx->media->chdir(...);

Jusqu'ici tout va bien. Le problème apparaît quand je veux le contenu du dossier :

$_ctx->media->getDir();

À la fin de cette fonction, la fonction createFile() de dcMedia est appellée pour ajouter les nouveaux fichiers (je simplifie) dans la base de données. L'ennui c'est que cette fonction vérifie les permissions de l'utilisateur, hors il n'y en a pas lors de l'appel depuis le blog. On se retrouve donc avec l'erreur

Permission denied.

Alors, je m'y prends mal ? dcMedia n'est pas prévu pour être appelé depuis le blog ?

Comment changer ça ? Est-ce que createFile() pourrait retourner une valeur vide (autrement dit, ne rien faire) plutôt que de lancer une erreur quand il est appelé depuis le blog ? Le blog pourrait être lancé avec le nom d'utilisateur "public" qui serait reconnu par dcAuth et qui ne générerait pas de warning sur le blog ?

Change History

comment:1 Changed 17 years ago by olivier

  • Status changed from new to assigned

On peut lancer createFile() uniquement si l'utilisateur est authentifié.

comment:2 Changed 17 years ago by olivier

  • Status changed from assigned to closed
  • Resolution set to fixed

(In [2437]) In dcMedia::getDir, perform database sync only if user is logged and has permissions. Closes #424.

Note: See TracTickets for help on using tickets.

Sites map