**/
// Sécurité
-if (!defined("_ECRIRE_INC_VERSION")) return;
+if (!defined('_ECRIRE_INC_VERSION')) {
+ return;
+}
include_spip('action/editer_liens');
include_spip('inc/config');
*
*/
function formidable_autoriser_par_auteur($id, $id_auteur = 0) {
- if ($id == 0) return true;
+ if ($id == 0) {
+ return true;
+ }
$retour = false;
- if ($id_auteur == 0)
+ if ($id_auteur == 0) {
$id_auteur = session_get('id_auteur');
-
+ }
if ($id_auteur == null) {
$retour = false;
} else {
- $autorisations = objet_trouver_liens(array('formulaire'=>$id),array('auteur'=>$id_auteur));
+ $autorisations = objet_trouver_liens(array('formulaire' => $id), array('auteur' => $id_auteur));
$retour = count($autorisations) > 0;
}
* Fonction d'appel pour le pipeline
* @pipeline autoriser
*/
-function formidable_autoriser(){}
+function formidable_autoriser() {
+}
/**
* Autorisation d'éditer un formulaire formidable
* @param array $opt Options de cette autorisation
* @return bool true s'il a le droit, false sinon
**/
-function autoriser_formulaire_editer_dist($faire, $type, $id, $qui, $opt){
+function autoriser_formulaire_editer_dist($faire, $type, $id, $qui, $opt) {
$auteurs = lire_config('formidable/analyse/auteur');
/* administrateur ? */
- if (isset($qui['statut']) and $qui['statut'] <= '0minirezo' and (!$qui['restreint']))
+ if (isset($qui['statut']) and $qui['statut'] <= '0minirezo' and (count($qui['restreint']) == 0)) {
return true;
+ }
/* Test des autorisations par auteur */
if ($auteurs == 'on') {
return formidable_autoriser_par_auteur($id);
- } else {
- /* dans un else car la config 'auteurs' doit primer sur l'admin restreint */
- if ($GLOBALS['formulaires']['autoriser_admin_restreint'])
- return true;
- else
- return false;
+ }
+
+ /* Test des autorisations pour un admin restreint */
+ if (count($qui['restreint'])) {
+ $autoriser_admin_restreint = isset($GLOBALS['autoriser_admin_restreint'])
+ ? $GLOBALS['autoriser_admin_restreint']
+ : lire_config('formidable/analyse/autoriser_admin_restreint') == 'on'
+ ? true
+ : false;
+
+ return $autoriser_admin_restreint;
}
}
* @param array $opt Options de cette autorisation
* @return bool true s'il a le droit, false sinon
**/
-function autoriser_formulaires_menu_dist($faire, $type, $id, $qui, $opt){
- if (isset($qui['statut']) and $qui['statut'] <= '1comite') return true;
- else return false;
+function autoriser_formulaires_menu_dist($faire, $type, $id, $qui, $opt) {
+ if (isset($qui['statut']) and $qui['statut'] <= '1comite') {
+ return true;
+ } else {
+ return false;
+ }
}
* @param array $opt Options de cette autorisation
* @return bool true s'il a le droit, false sinon
**/
-function autoriser_formulaire_repondre_dist($faire, $type, $id, $qui, $opt){
-// On regarde si il y a déjà le formulaire dans les options
- if (isset($options['formulaire']))
- $formulaire = $options['formulaire'];
- // Sinon on va le chercher
- else{
- $formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = '.$id);
- }
-
- $traitements = unserialize($formulaire['traitements']);
-
- // S'il n'y a pas d'enregistrement, c'est forcément bon
- if (!($options = $traitements['enregistrement']))
- return true;
- // Sinon faut voir les options
- else{
- // Si multiple = oui c'est bon
- if ($options['multiple'])
- return true;
- else{
- // Si c'est modifiable, c'est bon
- if ($options['modifiable'])
- return true;
- else{
- include_spip('inc/formidable');
- // Si la personne n'a jamais répondu, c'est bon
- if (!formidable_verifier_reponse_formulaire($id))
- return true;
- else
- return false;
- }
- }
- }
+function autoriser_formulaire_repondre_dist($faire, $type, $id, $qui, $opt) {
+ $id = intval($id);
+
+ // On regarde si il y a déjà le formulaire dans les options
+ if (isset($opt['formulaire'])) {
+ $formulaire = $opt['formulaire'];
+ } else {
+ // Sinon on va le chercher
+ $formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = '.$id);
+ }
+
+ $traitements = unserialize($formulaire['traitements']);
+
+ // S'il n'y a pas d'enregistrement, c'est forcément bon
+ if (!isset($traitements['enregistrement']) or !($options = $traitements['enregistrement'])) {
+ return true;
+ } else {
+ // Sinon faut voir les options
+ // Si multiple = oui c'est bon
+ if ($options['multiple']) {
+ return true;
+ } else {
+ // Si c'est modifiable, c'est bon
+ if ($options['modifiable']) {
+ return true;
+ } else {
+ include_spip('inc/formidable');
+ // Si la personne n'a jamais répondu, c'est bon
+ if (!formidable_verifier_reponse_formulaire($id)) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ }
+ }
}
/**
* @param array $opt Options de cette autorisation
* @return bool true s'il a le droit, false sinon
**/
-function autoriser_formulairesreponse_instituer_dist($faire, $type, $id, $qui, $opt){
+function autoriser_formulairesreponse_instituer_dist($faire, $type, $id, $qui, $opt) {
return formidable_auteur_admin_reponse($qui);
}
* @param array $opt Options de cette autorisation
* @return bool true s'il a le droit, false sinon
**/
-function autoriser_formulairesreponse_voir_dist($faire, $type, $id, $qui, $opt){
+function autoriser_formulairesreponse_voir_dist($faire, $type, $id, $qui, $opt) {
return autoriser_formulaire_editer_dist($faire, $type, $id, $qui, $opt);
}
* @param array $opt Options de cette autorisation
* @return bool true s'il a le droit, false sinon
**/
-function autoriser_formulairesreponse_modifier_dist($faire, $type, $id, $qui, $opt){
- if ($id_formulaire = intval(sql_getfetsel(
- 'id_formulaire', 'spip_formulaires_reponses', "id_formulaires_reponse=$id"))) {
+function autoriser_formulairesreponse_modifier_dist($faire, $type, $id, $qui, $opt) {
+ $id = intval($id);
- $retour = (autoriser_formulaire_editer_dist($faire, $type, $id_formulaire, $qui, $opt)
- and formidable_auteur_admin_reponse($qui));
+ if ($id_formulaire = intval(
+ sql_getfetsel(
+ 'id_formulaire',
+ 'spip_formulaires_reponses',
+ "id_formulaires_reponse=$id"
+ )
+ )) {
+ return
+ autoriser_formulaire_editer_dist($faire, $type, $id_formulaire, $qui, $opt)
+ and formidable_auteur_admin_reponse($qui);
}
- return $retour;
+
+ return false;
}
/**
**/
function autoriser_formulairesreponse_supprimer_dist($faire, $type, $id, $qui, $opt) {
$retour = autoriser_formulairesreponse_modifier_dist($faire, $type, $id, $qui, $opt);
+
return $retour;
}
-?>
+/**
+ * Autorisation de poster une réponse en Collection+JSON
+ *
+ * Tout le monde peut, l'autorisation réelle se fera après pendant le traitement, suivant l'id_formulaire envoyé
+ *
+ * @param string $faire Action demandée
+ * @param string $type Type d'objet sur lequel appliquer l'action
+ * @param int $id Identifiant de l'objet
+ * @param array $qui Description de l'auteur demandant l'autorisation
+ * @param array $opt Options de cette autorisation
+ * @return bool true s'il a le droit, false sinon
+**/
+function autoriser_formulairesreponse_post_collection_dist($faire, $type, $id, $qui, $opt) {
+ return true;
+}