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

[feature] Allow viewing shared objects by non superadministrators as view only

Abierto
#1,013 0 comentarios 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
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
django, python

Línea de trabajo

Lee la solución enlazada desde el issue 238 y, después, inspecciona openwisp_controller/pki/api/serializers.py en la línea de CaListSerializer citada en el informe. Localiza las pruebas de objetos compartidos del admin y de la REST API, o su lógica de pruebas reutilizable existente. Se considera terminado cuando los objetos compartidos pueden ser vistos por usuarios que no son superusuarios, mientras que la creación, modificación y eliminación siguen restringidas a los superusuarios en ambas interfaces, con cobertura para cada modelo.

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

Descripción

⚠️ Not suited to beginner contributors.

Implement the solution devised in https://github.com/openwisp/openwisp-users/issues/238.

We must add tests (ideally reusable test logic to make maintainance sane) that for each model verify the following:

  • shared objects can be viewed in readonly mode also by non superusers (admin and REST API)
  • new shared object can be created only by superusers (admin and REST API)
  • existing shared objects can only be changed/deleted by superusers (admin and REST API)

I found that after upgrading DRF to 3.16 endpoints using the CaListSerializer were failing with the following error:

assert not (required and default is not empty), NOT_REQUIRED_DEFAULT
AssertionError: May not set both `required` and `default`

It happens because of this line:
https://github.com/openwisp/openwisp-controller/blob/1745a0a04f43708d7b402a292d208ca20a010376/openwisp_controller/pki/api/serializers.py#L81

If I remove that line, the tests pass, but I am then able to create a shared Ca with a non superuser org admin/manager user account, which is not what we want and is worrying: we need tests to protect us from these possible security holes.
I also verified that upgrading to DRF 3.16 allows to create objects by omitting the "organization" field, hence allowing non superusers to omit this field and create shared objects, opening security holes.

I think it may be necessary to work on these changes while also upgrading DRF to 3.16 and bind the version, otherwise we may have to work on this twice.

Lenguaje dominante
Python
Estrellas
779
Forks
328
Merge medio
2 d 19 h
PR fusionados (30 d)
7

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 openwisp/openwisp-controller

Todos los issues de openwisp/openwisp-controller

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.