@@ 345-380 (lines=36) @@ | ||
342 | } |
|
343 | ||
344 | ||
345 | @blueprint.post('/<uuid:user_id>/unsuspend') |
|
346 | @permission_required('user.administrate') |
|
347 | def unsuspend_account(user_id): |
|
348 | """Unsuspend the user account.""" |
|
349 | user = _get_user_or_404(user_id) |
|
350 | ||
351 | if not user.suspended: |
|
352 | flash_error( |
|
353 | gettext( |
|
354 | "User '%(screen_name)s' is not suspended.", |
|
355 | screen_name=user.screen_name, |
|
356 | ) |
|
357 | ) |
|
358 | return redirect_to('.view', user_id=user.id) |
|
359 | ||
360 | form = SuspendAccountForm(request.form) |
|
361 | if not form.validate(): |
|
362 | return unsuspend_account_form(user.id, form) |
|
363 | ||
364 | initiator_id = g.user.id |
|
365 | reason = form.reason.data.strip() |
|
366 | ||
367 | event = user_command_service.unsuspend_account( |
|
368 | user.id, initiator_id, reason |
|
369 | ) |
|
370 | ||
371 | user_signals.account_unsuspended.send(None, event=event) |
|
372 | ||
373 | flash_success( |
|
374 | gettext( |
|
375 | "User '%(screen_name)s' has been unsuspended.", |
|
376 | screen_name=user.screen_name, |
|
377 | ) |
|
378 | ) |
|
379 | ||
380 | return redirect_to('.view', user_id=user.id) |
|
381 | ||
382 | ||
383 | @blueprint.get('/<uuid:user_id>/delete') |
|
@@ 284-317 (lines=34) @@ | ||
281 | } |
|
282 | ||
283 | ||
284 | @blueprint.post('/<uuid:user_id>/suspend') |
|
285 | @permission_required('user.administrate') |
|
286 | def suspend_account(user_id): |
|
287 | """Suspend the user account.""" |
|
288 | user = _get_user_or_404(user_id) |
|
289 | ||
290 | if user.suspended: |
|
291 | flash_error( |
|
292 | gettext( |
|
293 | "User '%(screen_name)s' is already suspended.", |
|
294 | screen_name=user.screen_name, |
|
295 | ) |
|
296 | ) |
|
297 | return redirect_to('.view', user_id=user.id) |
|
298 | ||
299 | form = SuspendAccountForm(request.form) |
|
300 | if not form.validate(): |
|
301 | return suspend_account_form(user.id, form) |
|
302 | ||
303 | initiator_id = g.user.id |
|
304 | reason = form.reason.data.strip() |
|
305 | ||
306 | event = user_command_service.suspend_account(user.id, initiator_id, reason) |
|
307 | ||
308 | user_signals.account_suspended.send(None, event=event) |
|
309 | ||
310 | flash_success( |
|
311 | gettext( |
|
312 | "User '%(screen_name)s' has been suspended.", |
|
313 | screen_name=user.screen_name, |
|
314 | ) |
|
315 | ) |
|
316 | ||
317 | return redirect_to('.view', user_id=user.id) |
|
318 | ||
319 | ||
320 | @blueprint.get('/<uuid:user_id>/unsuspend') |