organiseur_autoriser.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. /***************************************************************************\
  3. * SPIP, Systeme de publication pour l'internet *
  4. * *
  5. * Copyright (c) 2001-2014 *
  6. * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
  7. * *
  8. * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
  9. * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
  10. \***************************************************************************/
  11. if (!defined('_ECRIRE_INC_VERSION')) return;
  12. /**
  13. * Fonction vide pour charger ce fichier sans declencher de warning
  14. * @return void
  15. */
  16. function organiseur_autoriser(){}
  17. function autoriser_calendrier_menu_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL){
  18. if($GLOBALS['meta']['messagerie_agenda'] == 'oui')
  19. return true;
  20. return false;
  21. }
  22. function autoriser_messagerie_menu_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL){
  23. if($GLOBALS['meta']['messagerie_agenda'] == 'oui')
  24. return true;
  25. return false;
  26. }
  27. function autoriser_message_modifier_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL){
  28. if (!intval($qui['id_auteur']))
  29. return false;
  30. $row = sql_fetsel('statut,type,id_auteur','spip_messages','id_message='.intval($id));
  31. // on peut modifier ses penses betes ou ses messages brouillons
  32. if ($row['id_auteur']==$qui['id_auteur'] AND ($row['statut']=='prepa' OR $row['type']=='pb'))
  33. return true;
  34. // on peut modifier les annonces si on est admin
  35. if ($qui['statut']=='0minirezo' AND $row['type']=='affich')
  36. return true;
  37. return false;
  38. }
  39. function autoriser_message_instituer_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL){
  40. // rediriger vers la bonne autorisation en cas de suppression
  41. if ($opt['statut'] == 'poub')
  42. return autoriser('supprimer','message',$id,$qui,$opt);
  43. return autoriser('modifier','message',$id,$qui,$opt);
  44. }
  45. function autoriser_message_supprimer_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL){
  46. // on peut supprimer un message que l'on peut modifier
  47. if (autoriser('modifier','message',$id,$qui,$opt))
  48. return true;
  49. // mais on peut aussi supprimer un message envoye par soi
  50. // si tous ses dest l'on supprime aussi
  51. if (
  52. $qui['id_auteur']
  53. AND sql_countsel('spip_messages',"statut='publie' AND id_auteur=".intval($qui['id_auteur'])." AND id_message=".intval($id))
  54. AND !sql_countsel('spip_auteurs_liens',"objet='message' AND id_objet=".intval($id)." AND vu!='poub' AND id_auteur!=".intval($qui['id_auteur']))
  55. )
  56. return true;
  57. return false;
  58. }
  59. function autoriser_messagerecu_effacer_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL){
  60. if (isset($opt['id_auteur']))
  61. $id_auteur = $opt['id_auteur'];
  62. else
  63. $id_auteur = $qui['id_auteur'];
  64. // seul le destinataire peut supprimer un message qui lui est destine
  65. if (!intval($id_auteur) OR intval($id_auteur) != intval($qui['id_auteur']))
  66. return false;
  67. // rien d'autre a verifier?...
  68. return true;
  69. }
  70. function autoriser_message_dater_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL){
  71. return false;
  72. }
  73. function autoriser_envoyermessage_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL){
  74. if (!($GLOBALS['meta']['messagerie_agenda'] == 'oui') OR !intval($qui['id_auteur']))
  75. return false;
  76. // on peut envoyer une annonce si on est admin
  77. if (!($qui['statut']=='0minirezo') AND $type=='affich')
  78. return false;
  79. return true;
  80. }
  81. function autoriser_message_voir_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL){
  82. if (!intval($qui['id_auteur']))
  83. return false;
  84. // message annonce ou message dont $qui est l'auteur : droit de le voir
  85. if (sql_countsel('spip_messages','id_message='.intval($id).' AND (type=\'affich\' OR id_auteur='.intval($qui['id_auteur']).')'))
  86. return true;
  87. // message dont $qui est destinataire
  88. if (sql_countsel('spip_auteurs_liens','objet=\'message\' AND id_objet='.intval($id)." AND vu!='poub' AND id_auteur=".intval($qui['id_auteur'])))
  89. return true;
  90. return false;
  91. }