﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
20642	Deprecate `Option.get_(add|change|delete)_permission`.	Simon Charette	nobody	"In the whole ''Clean Model Options'' process we should deprecate those methods in favor of `contrib.auth` alternatives.

Even if those methods are undocumented it's no secret they are used in the wild. Django exclusively use them in `contrib.admin`:

{{{
(django)simon@simon-laptop:~/workspace/django$ grep -E ""get_(add|change|delete)_permission"" django/ -Rn --include=""*.py""
django/db/models/options.py:416:    def get_add_permission(self):
django/db/models/options.py:419:    def get_change_permission(self):
django/db/models/options.py:422:    def get_delete_permission(self):
django/contrib/admin/options.py:355:        return request.user.has_perm(opts.app_label + '.' + opts.get_add_permission())
django/contrib/admin/options.py:369:        return request.user.has_perm(opts.app_label + '.' + opts.get_change_permission())
django/contrib/admin/options.py:383:        return request.user.has_perm(opts.app_label + '.' + opts.get_delete_permission())
django/contrib/admin/options.py:1671:            self.opts.app_label + '.' + self.opts.get_add_permission())
django/contrib/admin/options.py:1683:            opts.app_label + '.' + opts.get_change_permission())
django/contrib/admin/options.py:1693:            self.opts.app_label + '.' + self.opts.get_delete_permission())
django/contrib/admin/util.py:122:                           opts.get_delete_permission())
}}}"	Cleanup/optimization	closed	Database layer (models, ORM)	dev	Normal	fixed			Ready for checkin	1	0	0	0	0	0
