Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Unanticipated User Role setting causes error

Abierto
#28 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
38/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Estancado
Stack tecnológico
php

Línea de trabajo

Comienza en CommentingPlugin::showComments y compara views/public/comments.php con el propuesto views/public/commentingHeader.php. Sigue las comprobaciones de roles para ver y añadir comentarios, y verifica después que un rol al que se permite comentar, pero no ver comentarios, siga recibiendo la etiqueta, el mensaje flash y el formulario de comentarios sin un error.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

I came across an issue which gets triggered by the scenario that a certain User Role is able to make a comment, but not allowed to view them. In this case the $view variable along with $view->addHelperPath is not set since this is currently dependent on the ability to view comments. Also in this scenario the Label as well as the flash message does not get output, since they currently reside in views/public/comments.php, which gets bypassed.

To fix the issue, I updated the showComments function in CommentingPlugin to the following:

public static function showComments($args = array())
    {    
        echo "<div id='comments-container'>";

        // presume we will need the view in any case
        if(isset($args['view'])) {
            $view = $args['view'];
        } else {
            $view = get_view();
        }

        $view->addHelperPath(COMMENTING_PLUGIN_DIR . '/helpers', 'Commenting_View_Helper_');

        // output the header
        echo $view->partial('commentingHeader.php');

        if( (get_option('commenting_allow_public') == 1) 
                || (get_option('commenting_allow_public_view') == 1) 
                || is_allowed('Commenting_Comment', 'show') ) {

            $options = array('threaded'=> get_option('commenting_threaded'), 'approved'=>true);

            $comments = isset($args['comments']) ? $args['comments'] : $view->getComments($options);
            echo $view->partial('comments.php', array('comments'=>$comments, 'threaded'=>$options['threaded']));
        }

        if( (get_option('commenting_allow_public') == 1) 
                || is_allowed('Commenting_Comment', 'add') ) {
            echo "<div id='comment-main-container'>";
            echo $view->getCommentForm();
            echo "</div>";
        }    
        echo "</div>";
    }

This presumes that we need the $views set in any case.

I also created a new file views/public/commentingHeader.php which contains:

<?php $label = get_option('commenting_comments_label'); ?>
<?php if ($label == ''):?>
    <h2><?php echo __('Comments'); ?></h2>
<?php else: ?>
    <h2><?php echo $label; ?></h2>
<?php endif; ?>
<div id='comments-flash'><?php echo flash(true); ?></div>

This code has been removed from views/public/comments.php.

Lenguaje dominante
PHP
Estrellas
4
Forks
5
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de omeka/plugin-Commenting

Todos los issues de omeka/plugin-Commenting

Issues similares

Más issues de PHP

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.