From 95c79c3fd35d17f2fa249cd19ce1823b3063ca08 Mon Sep 17 00:00:00 2001 From: Zambom Date: Tue, 3 Jan 2017 16:04:53 -0200 Subject: [PATCH] Updating dependencies check in account deletion --- users/utils.py | 25 +++++++++++++++++++++++++ users/views.py | 3 ++- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 users/utils.py diff --git a/users/utils.py b/users/utils.py new file mode 100644 index 0000000..abbfbc2 --- /dev/null +++ b/users/utils.py @@ -0,0 +1,25 @@ +# File used to store useful user functions # + +from categories.models import Category +from subjects.models import Subject + +def has_dependencies(user): + if user.is_staff: #Check admin function + return True + + cats = Category.objects.filter(coordinators = user) + + if len(cats) > 0: #Check coordinator function + return True + + subs = Subject.objects.filter(professor = user) + + if len(subs) > 0: #Check professor function + return True + + subs = Subject.objects.filter(students = user) + + if len(subs) > 0: #Check student function + return True + + return False \ No newline at end of file diff --git a/users/views.py b/users/views.py index 954a4e8..52139b1 100644 --- a/users/views.py +++ b/users/views.py @@ -10,6 +10,7 @@ from django.db.models import Q from braces import views as braces_mixins from .models import User +from .utils import has_dependencies from .forms import RegisterUserForm, ProfileForm, UserForm, ChangePassForm, PassResetRequest, SetPasswordForm #RECOVER PASS IMPORTS @@ -168,7 +169,7 @@ class DeleteView(braces_mixins.LoginRequiredMixin, generic.DeleteView): success_msg = _('User removed successfully!') error_msg = _('Could not remove the account. The user is attach to one or more functions (administrator, coordinator, professor ou student) in the system.') - if user.has_dependencies(): + if has_dependencies(user): messages.error(self.request, error_msg) return redirect(error_url) -- libgit2 0.21.2