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