def METHOD_NAME(request):
    userid = d.get_int(request.params.get('userid', ''))
    if request.userid != userid and userid in staff.ADMINS and request.userid not in staff.TECHNICAL:
        raise WeasylError('InsufficientPermissions')
    profile.do_manage(request.userid, userid,
                      username=request.params.get('username', '').strip() if 'ch_username' in request.params else None,
                      full_name=request.params.get('full_name', '').strip() if 'ch_full_name' in request.params else None,
                      catchphrase=request.params.get('catchphrase', '').strip() if 'ch_catchphrase' in request.params else None,
                      birthday=request.params.get('birthday', '') if 'ch_birthday' in request.params else None,
                      gender=request.params.get('gender', '') if 'ch_gender' in request.params else None,
                      country=request.params.get('country', '') if 'ch_country' in request.params else None,
                      remove_social=request.params.getall('remove_social'),
                      permission_tag='permission-tag' in request.params)
    raise HTTPSeeOther(location="/admincontrol")