*Description*: After renaming the model from "Group" to "CollegeGroup" in 
my Django project, duplicate permissions are being created for the renamed 
model. This results in two sets of permissions with the same functionality, 
one set with codenames like "add_group", "change_group", "view_group", 
"delete_group" and the other set with codenames like "add_collegegroup", 
"change_collegegroup", "view_collegegroup", "delete_collegegroup". This can 
lead to confusion and potential misuse of permissions.

*Steps to Reproduce:*
1. Create a Django project with an app containing a model named "Group."
2. Run migrations and create permissions for the model. Observe the 
permissions created for "Group."
3. Rename the model from "Group" to "CollegeGroup" in the app's `models.py`.
4. Create a new migration after renaming the model.
5. Run migrations again and observe the permissions created for 
"CollegeGroup."

*Expected Behavior*: After renaming the model from "Group" to 
"CollegeGroup," the existing permissions for "Group" should be updated to 
apply to "CollegeGroup." No new permissions with codenames like 
"add_collegegroup," "change_collegegroup," "view_collegegroup," and 
"delete_collegegroup" should be created. The permissions for "CollegeGroup" 
should have the same functionality as the previous permissions for "Group."

*Actual Behavior*: Upon renaming the model, Django creates new permissions 
with codenames like "add_collegegroup," "change_collegegroup," 
"view_collegegroup," and "delete_collegegroup" alongside the existing 
permissions for "Group" (e.g., "add_group," "change_group," etc.). This 
results in duplicate permissions for the same functionality, which can 
cause confusion and potential misuse of permissions.

*Environment:*
* Django version: 4.2.3
* Python version: 3.10.6
* Database: SQLite
* Operating System: Windows

*Screenshots:*
I have attached the screenshots that illustrate the issue.

I*mpact: *This bug can lead to confusion and potential security risks if 
users apply the wrong permissions using duplicate codenames. It affects the 
integrity of the permissions system and can result in unintended access 
controls.

*Proposed Solution:* Django should update the existing permissions when 
renaming a model, ensuring that the permissions continue to apply to the 
renamed model. No new permissions should be created unless explicitly 
specified.

*Possible Workaround:* As a temporary workaround, users can manually remove 
the duplicate permissions created after renaming the model. However, this 
is not a scalable solution and may result in data loss or misconfiguration.

[image: 1.png]
[image: 2.png]

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/b757651a-8e70-4370-9647-cfd10c8f2b80n%40googlegroups.com.

Reply via email to