[5.x]: “Save and send activation email” doesn’t send the email for users with only “Moderate users”

Abierto Apto para principiantes
#20,566 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
1/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
84/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
php

Línea de trabajo

El issue señala src/controllers/UsersController.php alrededor de la línea 1343. Lee la comprobación del permiso para el correo de activación y compárala con la acción «Enviar correo de activación», que ya permite a los usuarios con «Moderar usuarios». Actualiza la comprobación para que coincida con el permiso esperado y, después, verifica que un usuario con los permisos indicados pueda guardar y enviar el correo de activación.

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

Descripción

bug repo:cms
What happened?
Description

craftcms/cms#17362 (fixing craftcms/cms#17360) allowed users with the “Moderate users” permission to send activation emails. The button on a user’s Permissions screen is now shown with moderateUsers, but the code that sends the email still checks for administrateUsers:

https://github.com/craftcms/cms/blob/5.x/src/controllers/UsersController.php#L1343

if (
    !$user->getIsCredentialed() &&
    $currentUser->can('administrateUsers') &&
    $this->request->getBodyParam('sendActivationEmail')
) {

So these users see the button, and clicking it saves the permissions and shows “Permissions saved.” No activation email is sent and no error is shown.

Steps to reproduce
  1. Sign in as a non-admin user with “Edit users”, “Moderate users” and “Assign user permissions”, but without “Administrate users”.
  2. Open the Permissions screen of a user who hasn’t set a password yet.
  3. Click “Save and send activation email”.
Expected behavior

The activation email is sent, the same as with the “Send activation email” action, which already only requires moderateUsers.

Actual behavior

Permissions are saved, but no activation email is sent.

Suggested fix

Change administrateUsers to moderateUsers on https://github.com/craftcms/cms/blob/dc4734d0a4ec3eef7cbf9379909048c46c74ea16/src/controllers/UsersController.php#L1343

Craft CMS version

5.11.4

PHP version

No response

Operating system and version

No response

Database type and version

No response

Image driver and version

No response

Installed plugins and versions
Lenguaje dominante
PHP
Estrellas
3.6k
Forks
714
Merge medio
13 h 20 min
PR fusionados (30 d)
471

Preparar el entorno

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 craftcms/cms

Todos los issues de craftcms/cms

Issues similares

Más issues de PHP

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.