Commit 547930acf00027fb71bbf32931ee928c29266124
1 parent
56d2b3c2
Exists in
master
and in
3 other branches
Adding user crud log
Showing
2 changed files
with
50 additions
and
8 deletions
Show diff stats
categories/views.py
... | ... | @@ -68,8 +68,9 @@ class CreateCategory(views.SuperuserRequiredMixin, LoginRequiredMixin, HasRoleMi |
68 | 68 | log_resource = 'category' |
69 | 69 | log_context = {} |
70 | 70 | |
71 | - allowed_rules = ['system_admin'] | |
72 | - login_url = reverse_lazy('users:login') | |
71 | + login_url = reverse_lazy("users:login") | |
72 | + redirect_field_name = 'next' | |
73 | + | |
73 | 74 | form_class = CategoryForm |
74 | 75 | template_name = 'categories/create.html' |
75 | 76 | success_url = reverse_lazy('categories:index') | ... | ... |
users/views.py
... | ... | @@ -12,6 +12,7 @@ from braces import views as braces_mixins |
12 | 12 | from security.models import Security |
13 | 13 | |
14 | 14 | from log.decorators import log_decorator |
15 | +from log.mixins import LogMixin | |
15 | 16 | |
16 | 17 | from .models import User |
17 | 18 | from .utils import has_dependencies |
... | ... | @@ -86,7 +87,12 @@ class SearchView(braces_mixins.LoginRequiredMixin, braces_mixins.StaffuserRequir |
86 | 87 | |
87 | 88 | return context |
88 | 89 | |
89 | -class CreateView(braces_mixins.LoginRequiredMixin, braces_mixins.StaffuserRequiredMixin, generic.edit.CreateView): | |
90 | +class CreateView(braces_mixins.LoginRequiredMixin, braces_mixins.StaffuserRequiredMixin, LogMixin, generic.edit.CreateView): | |
91 | + log_component = 'user' | |
92 | + log_action = 'create' | |
93 | + log_resource = 'user' | |
94 | + log_context = {} | |
95 | + | |
90 | 96 | login_url = reverse_lazy("users:login") |
91 | 97 | redirect_field_name = 'next' |
92 | 98 | |
... | ... | @@ -100,6 +106,12 @@ class CreateView(braces_mixins.LoginRequiredMixin, braces_mixins.StaffuserRequir |
100 | 106 | |
101 | 107 | msg = _("User %s created successfully" % self.object.get_short_name()) |
102 | 108 | |
109 | + self.log_context['user_id'] = self.object.id | |
110 | + self.log_context['user_name'] = self.object.get_short_name() | |
111 | + self.log_context['user_email'] = self.object.email | |
112 | + | |
113 | + super(CreateView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) | |
114 | + | |
103 | 115 | messages.success(self.request, msg) |
104 | 116 | |
105 | 117 | return super(CreateView, self).form_valid(form) |
... | ... | @@ -111,7 +123,12 @@ class CreateView(braces_mixins.LoginRequiredMixin, braces_mixins.StaffuserRequir |
111 | 123 | |
112 | 124 | return context |
113 | 125 | |
114 | -class UpdateView(braces_mixins.LoginRequiredMixin, braces_mixins.StaffuserRequiredMixin, generic.UpdateView): | |
126 | +class UpdateView(braces_mixins.LoginRequiredMixin, braces_mixins.StaffuserRequiredMixin, LogMixin, generic.UpdateView): | |
127 | + log_component = 'user' | |
128 | + log_action = 'update' | |
129 | + log_resource = 'user' | |
130 | + log_context = {} | |
131 | + | |
115 | 132 | login_url = reverse_lazy("users:login") |
116 | 133 | redirect_field_name = 'next' |
117 | 134 | |
... | ... | @@ -137,6 +154,12 @@ class UpdateView(braces_mixins.LoginRequiredMixin, braces_mixins.StaffuserRequir |
137 | 154 | |
138 | 155 | msg = _("User %s updated successfully" % self.object.get_short_name()) |
139 | 156 | |
157 | + self.log_context['user_id'] = self.object.id | |
158 | + self.log_context['user_name'] = self.object.get_short_name() | |
159 | + self.log_context['user_email'] = self.object.email | |
160 | + | |
161 | + super(UpdateView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) | |
162 | + | |
140 | 163 | messages.success(self.request, msg) |
141 | 164 | |
142 | 165 | return super(UpdateView, self).form_valid(form) |
... | ... | @@ -148,7 +171,12 @@ class UpdateView(braces_mixins.LoginRequiredMixin, braces_mixins.StaffuserRequir |
148 | 171 | |
149 | 172 | return context |
150 | 173 | |
151 | -class DeleteView(braces_mixins.LoginRequiredMixin, generic.DeleteView): | |
174 | +class DeleteView(braces_mixins.LoginRequiredMixin, LogMixin, generic.DeleteView): | |
175 | + log_component = 'user' | |
176 | + log_action = 'delete' | |
177 | + log_resource = 'user' | |
178 | + log_context = {} | |
179 | + | |
152 | 180 | login_url = reverse_lazy("users:login") |
153 | 181 | redirect_field_name = 'next' |
154 | 182 | |
... | ... | @@ -166,7 +194,6 @@ class DeleteView(braces_mixins.LoginRequiredMixin, generic.DeleteView): |
166 | 194 | |
167 | 195 | return super(DeleteView, self).dispatch(request, *args, **kwargs) |
168 | 196 | |
169 | - | |
170 | 197 | def get_object(self): |
171 | 198 | email = self.kwargs.get('email', None) |
172 | 199 | |
... | ... | @@ -182,9 +209,15 @@ class DeleteView(braces_mixins.LoginRequiredMixin, generic.DeleteView): |
182 | 209 | user = self.get_object() |
183 | 210 | |
184 | 211 | if email is None: |
212 | + self.log_action = 'remove_account' | |
213 | + | |
185 | 214 | success_url = reverse_lazy('users:login') |
186 | 215 | error_url = reverse_lazy('users:profile') |
187 | 216 | else: |
217 | + self.log_context['user_id'] = user.id | |
218 | + self.log_context['user_name'] = user.get_short_name() | |
219 | + self.log_context['user_email'] = user.email | |
220 | + | |
188 | 221 | success_url = reverse_lazy('users:manage') |
189 | 222 | error_url = reverse_lazy('users:manage') |
190 | 223 | |
... | ... | @@ -192,15 +225,23 @@ class DeleteView(braces_mixins.LoginRequiredMixin, generic.DeleteView): |
192 | 225 | error_msg = _('Could not remove the account. The user is attach to one or more functions (administrator, coordinator, professor ou student) in the system.') |
193 | 226 | |
194 | 227 | if has_dependencies(user): |
228 | + self.log_context['dependencies'] = True | |
229 | + | |
195 | 230 | messages.error(self.request, error_msg) |
196 | 231 | |
197 | - return redirect(error_url) | |
232 | + redirect_url = redirect(error_url) | |
198 | 233 | else: |
234 | + self.log_context['dependencies'] = False | |
235 | + | |
199 | 236 | user.delete() |
200 | 237 | |
201 | 238 | messages.success(self.request, success_msg) |
202 | 239 | |
203 | - return redirect(success_url) | |
240 | + redirect_url = redirect(success_url) | |
241 | + | |
242 | + super(DeleteView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) | |
243 | + | |
244 | + return redirect_url | |
204 | 245 | |
205 | 246 | def get_context_data(self, **kwargs): |
206 | 247 | context = super(DeleteView, self).get_context_data(**kwargs) | ... | ... |