forum_autoriser.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  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. // declarer la fonction du pipeline
  13. function forum_autoriser(){}
  14. function autoriser_foruminternesuivi_menu_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL){
  15. if ((($GLOBALS['meta']['forum_prive'] == 'non') && ($GLOBALS['meta']['forum_prive_admin'] == 'non'))
  16. OR (($GLOBALS['meta']['forum_prive'] == 'non') && ($qui['statut'] == '1comite')))
  17. return false;
  18. return true;
  19. }
  20. function autoriser_forumreactions_menu_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL){
  21. return (sql_countsel('spip_forum') && autoriser('publierdans','rubrique',_request('id_rubrique')));
  22. }
  23. // Moderer le forum ?
  24. // = modifier l'objet correspondant (si forum attache a un objet)
  25. // = droits par defaut sinon (admin complet pour moderation complete)
  26. // http://code.spip.net/@autoriser_modererforum_dist
  27. function autoriser_modererforum_dist($faire, $type, $id, $qui, $opt) {
  28. return $type ? autoriser('modifier', $type, $id, $qui, $opt):autoriser('moderer', 'forum', 0, $qui, $opt);
  29. }
  30. /**
  31. * Autorise a changer le statut d'un message de forum :
  32. * seulement sur les objets qu'on a le droit de moderer
  33. */
  34. function autoriser_forum_instituer_dist($faire, $type, $id, $qui, $opt){
  35. if (!intval($id)) return autoriser('moderer','forum');
  36. $row = sql_fetsel('objet,id_objet','spip_forum','id_forum='.intval($id));
  37. return $row?autoriser('modererforum',$row['objet'],$row['id_objet'],$qui,$opt):false;
  38. }
  39. function autoriser_forum_moderer_dist($faire, $type, $id, $qui, $opt){
  40. // si on fournit un id : deleguer a modererforum sur l'objet concerne
  41. if ($id){
  42. include_spip('inc/forum');
  43. if ($racine = racine_forum($id)
  44. AND list($objet,$id_objet,) = $racine
  45. AND $objet){
  46. return autoriser('modererforum',$objet,$id_objet);
  47. }
  48. }
  49. // sinon : admins uniquement
  50. return $qui['statut']=='0minirezo'; // les admins restreints peuvent moderer leurs messages
  51. }
  52. // Modifier un forum ?
  53. // = jamais !
  54. // http://code.spip.net/@autoriser_forum_modifier_dist
  55. function autoriser_forum_modifier_dist($faire, $type, $id, $qui, $opt) {
  56. return false;
  57. }
  58. // Consulter le forum des admins ?
  59. // admins y compris restreints
  60. // http://code.spip.net/@autoriser_forum_admin_dist
  61. function autoriser_forum_admin_dist($faire, $type, $id, $qui, $opt) {
  62. return $qui['statut'] == '0minirezo';
  63. }
  64. /**
  65. * Auto-association de documents sur des forum : niet
  66. */
  67. function autoriser_forum_autoassocierdocument_dist($faire, $type, $id, $qui, $opts) {
  68. return false;
  69. }
  70. /**
  71. * Autorisation d'association de documents sur des forum
  72. *
  73. * Toujours
  74. *
  75. * @param string $faire Action demandée
  76. * @param string $type Type d'objet sur lequel appliquer l'action
  77. * @param int $id Identifiant de l'objet
  78. * @param array $qui Description de l'auteur demandant l'autorisation
  79. * @param array $opt Options de cette autorisation
  80. * @return bool true s'il a le droit, false sinon
  81. */
  82. function autoriser_forum_associerdocuments_dist($faire, $type, $id, $qui, $opt) {
  83. return true;
  84. }
  85. /**
  86. * Autorisation de dissociation de documents sur des forum
  87. *
  88. * Toujours
  89. *
  90. * @param string $faire Action demandée
  91. * @param string $type Type d'objet sur lequel appliquer l'action
  92. * @param int $id Identifiant de l'objet
  93. * @param array $qui Description de l'auteur demandant l'autorisation
  94. * @param array $opt Options de cette autorisation
  95. * @return bool true s'il a le droit, false sinon
  96. */
  97. function autoriser_forum_dissocierdocuments_dist($faire, $type, $id, $qui, $opt) {
  98. return true;
  99. }
  100. /**
  101. * Autoriser a participer au forum des admins
  102. *
  103. * @return bool
  104. */
  105. function autoriser_forumadmin_participer_dist($faire, $type, $id, $qui, $opts) {
  106. return ($GLOBALS['meta']['forum_prive_admin'] == 'oui') && $qui['statut']=='0minirezo';
  107. }
  108. /**
  109. * Autoriser a participer au forum privé d'un objet quelconque
  110. * Afin de rester compatible avec l'existant cette autorisation est toujours vraie.
  111. *
  112. * @return bool
  113. */
  114. function autoriser_participerforumprive_dist($faire, $type, $id, $qui, $opt) {
  115. return true;
  116. }
  117. ?>