You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

136 lines
4.7 KiB

5 years ago
3 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. <?php
  2. /***************************************************************************\
  3. * SPIP, Système de publication pour l'internet *
  4. * *
  5. * Copyright © avec tendresse depuis 2001 *
  6. * Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
  7. * *
  8. * Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
  9. * Pour plus de détails voir le fichier COPYING.txt ou l'aide en ligne. *
  10. \***************************************************************************/
  11. /**
  12. * Déclarations d'autorisations
  13. *
  14. * @package SPIP\Breves\Autorisations
  15. **/
  16. if (!defined('_ECRIRE_INC_VERSION')) {
  17. return;
  18. }
  19. /**
  20. * Fonction du pipeline autoriser. N'a rien à faire
  21. *
  22. * @pipeline autoriser
  23. */
  24. function breves_autoriser() {
  25. }
  26. /**
  27. * Autorisation de voir la page breves
  28. *
  29. * Toujours OK, si les brèves sont activées
  30. *
  31. * @param string $faire Action demandée
  32. * @param string $type Type d'objet sur lequel appliquer l'action
  33. * @param int $id Identifiant de l'objet
  34. * @param array $qui Description de l'auteur demandant l'autorisation
  35. * @param array $opt Options de cette autorisation
  36. * @return bool true s'il a le droit, false sinon
  37. **/
  38. function autoriser_breves_voir_dist($faire, $type, $id, $qui, $opt) {
  39. return ($GLOBALS['meta']['activer_breves'] != 'non');
  40. }
  41. /**
  42. * Autoriser les brèves dans le menu de navigation
  43. *
  44. * @param string $faire Action demandée
  45. * @param string $type Type d'objet sur lequel appliquer l'action
  46. * @param int $id Identifiant de l'objet
  47. * @param array $qui Description de l'auteur demandant l'autorisation
  48. * @param array $opt Options de cette autorisation
  49. * @return bool true s'il a le droit, false sinon
  50. */
  51. function autoriser_breves_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
  52. return autoriser('voir', '_breves');
  53. }
  54. /**
  55. * Autoriser la création de brèves dans le menu de navigation
  56. *
  57. * @param string $faire Action demandée
  58. * @param string $type Type d'objet sur lequel appliquer l'action
  59. * @param int $id Identifiant de l'objet
  60. * @param array $qui Description de l'auteur demandant l'autorisation
  61. * @param array $opt Options de cette autorisation
  62. * @return bool true s'il a le droit, false sinon
  63. */
  64. function autoriser_brevecreer_menu_dist($faire, $type, $id, $qui, $opt) {
  65. return ($GLOBALS['meta']['activer_breves'] != 'non')
  66. and verifier_table_non_vide();
  67. }
  68. /**
  69. * Autorisation de créer une brève
  70. *
  71. * Il faut que les brèves soient activées qu'une rubrique existe
  72. *
  73. * @param string $faire Action demandée
  74. * @param string $type Type d'objet sur lequel appliquer l'action
  75. * @param int $id Identifiant de l'objet
  76. * @param array $qui Description de l'auteur demandant l'autorisation
  77. * @param array $opt Options de cette autorisation
  78. * @return bool true s'il a le droit, false sinon
  79. **/
  80. function autoriser_breve_creer_dist($faire, $type, $id, $qui, $opt) {
  81. return
  82. ($GLOBALS['meta']['activer_breves'] != 'non')
  83. and (sql_countsel('spip_rubriques') > 0);
  84. }
  85. /**
  86. * Autoriser à créer une brève dans la rubrique $id
  87. *
  88. * @param string $faire Action demandée
  89. * @param string $type Type d'objet sur lequel appliquer l'action
  90. * @param int $id Identifiant de l'objet
  91. * @param array $qui Description de l'auteur demandant l'autorisation
  92. * @param array $opt Options de cette autorisation
  93. * @return bool true s'il a le droit, false sinon
  94. */
  95. function autoriser_rubrique_creerbrevedans_dist($faire, $type, $id, $qui, $opt) {
  96. $r = sql_fetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . intval($id));
  97. return
  98. $id
  99. and ($r['id_parent'] == 0)
  100. and ($GLOBALS['meta']['activer_breves'] != 'non')
  101. and autoriser('voir', 'rubrique', $id);
  102. }
  103. /**
  104. * Autoriser à modifier la brève $id
  105. *
  106. * - admins & redac si la brève n'est pas publiée
  107. * - admins de rubrique parente si publiée
  108. *
  109. * @param string $faire Action demandée
  110. * @param string $type Type d'objet sur lequel appliquer l'action
  111. * @param int $id Identifiant de l'objet
  112. * @param array $qui Description de l'auteur demandant l'autorisation
  113. * @param array $opt Options de cette autorisation
  114. * @return bool true s'il a le droit, false sinon
  115. */
  116. function autoriser_breve_modifier_dist($faire, $type, $id, $qui, $opt) {
  117. $r = sql_fetsel('id_rubrique,statut', 'spip_breves', 'id_breve=' . intval($id));
  118. return
  119. $r and (
  120. ($r['statut'] == 'publie' or (isset($opt['statut']) and $opt['statut'] == 'publie'))
  121. ? autoriser('publierdans', 'rubrique', $r['id_rubrique'], $qui, $opt)
  122. : in_array($qui['statut'], array('0minirezo', '1comite'))
  123. );
  124. }