示例#1
0
def create_new_user(request):
    if not request.user.is_superuser:
        return HttpResponseRedirect(reverse('sentry'))

    form = NewUserForm(request.POST or None,
                       initial={
                           'send_welcome_mail': True,
                           'create_project': True,
                       })
    if form.is_valid():
        user = form.save(commit=False)

        # create a random password
        password = uuid.uuid4().hex
        user.set_password(password)

        user.save()

        if form.cleaned_data['create_project']:
            project = Project.objects.create(owner=user,
                                             name='%s\'s New Project' %
                                             user.username.capitalize())
            member = project.team.member_set.get(user=user)
            key = project.key_set.get(user=user)

        if form.cleaned_data['send_welcome_mail']:
            context = {
                'username': user.username,
                'password': password,
                'url': absolute_uri(reverse('sentry')),
            }
            if form.cleaned_data['create_project']:
                context.update({
                    'project': project,
                    'member': member,
                    'dsn': key.get_dsn(),
                })
            body = render_to_string('sentry/emails/welcome_mail.txt', context,
                                    request)

            try:
                send_mail('%s Welcome to Sentry' %
                          (settings.EMAIL_SUBJECT_PREFIX, ),
                          body,
                          settings.SERVER_EMAIL, [user.email],
                          fail_silently=False)
            except Exception as e:
                logger = logging.getLogger('sentry.mail.errors')
                logger.exception(e)

        return HttpResponseRedirect(reverse('sentry-admin-users'))

    context = {
        'form': form,
    }
    context.update(csrf(request))

    return render_to_response('sentry/admin/users/new.html', context, request)
示例#2
0
def create_new_user(request):
    if not request.user.is_superuser:
        return HttpResponseRedirect(reverse('sentry'))

    form = NewUserForm(request.POST or None, initial={
        'send_welcome_mail': True,
        'create_project': True,
    })
    if form.is_valid():
        user = form.save(commit=False)

        # create a random password
        password = uuid.uuid4().hex
        user.set_password(password)

        user.save()

        if form.cleaned_data['create_project']:
            project = Project.objects.create(
                owner=user,
                name='%s\'s New Project' % user.username.capitalize()
            )
            member = project.team.member_set.get(user=user)
            key = project.key_set.get(user=user)

        if form.cleaned_data['send_welcome_mail']:
            context = {
                'username': user.username,
                'password': password,
                'url': absolute_uri(reverse('sentry')),
            }
            if form.cleaned_data['create_project']:
                context.update({
                    'project': project,
                    'member': member,
                    'dsn': key.get_dsn(),
                })
            body = render_to_string('sentry/emails/welcome_mail.txt', context, request)

            try:
                send_mail(
                    '%s Welcome to Sentry' % (settings.EMAIL_SUBJECT_PREFIX,),
                    body, settings.SERVER_EMAIL, [user.email],
                    fail_silently=False
                )
            except Exception as e:
                logger = logging.getLogger('sentry.mail.errors')
                logger.exception(e)

        return HttpResponseRedirect(reverse('sentry-admin-users'))

    context = {
        'form': form,
    }
    context.update(csrf(request))

    return render_to_response('sentry/admin/users/new.html', context, request)
示例#3
0
文件: admin.py 项目: snkashis/sentry
def create_new_user(request):
    if not request.user.has_perm('auth.can_add_user'):
        return HttpResponseRedirect(reverse('sentry'))

    form = NewUserForm(request.POST or None, initial={
        'send_welcome_mail': True,
        'create_project': True,
    })
    if form.is_valid():
        user = form.save(commit=False)

        # create a random password
        password = uuid.uuid4().hex
        user.set_password(password)

        user.save()

        if form.cleaned_data['create_project']:
            project = Project.objects.create(
                owner=user,
                name='New Project',
            )
            member = project.member_set.get()

        if form.cleaned_data['send_welcome_mail']:
            context = {
                'username': user.username,
                'password': password,
                'url': request.build_absolute_uri(reverse('sentry')),
            }
            if form.cleaned_data['create_project']:
                context.update({
                    'project': project,
                    'member': member,
                    'dsn': member.get_dsn(request.get_host(), secure=request.is_secure()),
                })
            body = render_to_string('sentry/emails/welcome_mail.txt', context, request)

            send_mail('%s Welcome to Sentry' % (settings.EMAIL_SUBJECT_PREFIX,),
                body, settings.SERVER_EMAIL, [user.email],
                fail_silently=True)

        return HttpResponseRedirect(reverse('sentry-admin-users'))

    context = {
        'form': form,
    }
    context.update(csrf(request))

    return render_to_response('sentry/admin/users/new.html', context, request)
示例#4
0
def create_new_user(request):
    if not request.is_superuser():
        return HttpResponseRedirect(auth.get_login_url())

    form = NewUserForm(
        request.POST or None, initial={
            'send_welcome_mail': True,
            'create_project': True,
        }
    )
    if form.is_valid():
        user = form.save(commit=False)

        # create a random password
        password = uuid.uuid4().hex
        user.set_password(password)

        user.save()

        if form.cleaned_data['send_welcome_mail']:
            context = {
                'username': user.username,
                'password': password,
                'url': absolute_uri(auth.get_login_url()),
            }
            body = render_to_string('sentry/emails/welcome_mail.txt', context, request)

            try:
                send_mail(
                    '%s Welcome to Sentry' % (options.get('mail.subject-prefix'), ),
                    body,
                    options.get('mail.from'), [user.email],
                    fail_silently=False
                )
            except Exception as e:
                logger = logging.getLogger('sentry.mail.errors')
                logger.exception(e)

        return HttpResponseRedirect(absolute_uri('/manage/users/'))

    context = {
        'form': form,
    }
    context.update(csrf(request))

    return render_to_response('sentry/admin/users/new.html', context, request)
示例#5
0
文件: admin.py 项目: syd520/sentry
def create_new_user(request):
    if not request.is_superuser():
        return HttpResponseRedirect(reverse('sentry'))

    form = NewUserForm(request.POST or None,
                       initial={
                           'send_welcome_mail': True,
                           'create_project': True,
                       })
    if form.is_valid():
        user = form.save(commit=False)

        # create a random password
        password = uuid.uuid4().hex
        user.set_password(password)

        user.save()

        if form.cleaned_data['send_welcome_mail']:
            context = {
                'username': user.username,
                'password': password,
                'url': absolute_uri(reverse('sentry')),
            }
            body = render_to_string('sentry/emails/welcome_mail.txt', context,
                                    request)

            try:
                send_mail('%s Welcome to Sentry' %
                          (options.get('mail.subject-prefix'), ),
                          body,
                          options.get('mail.from'), [user.email],
                          fail_silently=False)
            except Exception as e:
                logger = logging.getLogger('sentry.mail.errors')
                logger.exception(e)

        return HttpResponseRedirect(reverse('sentry-admin-users'))

    context = {
        'form': form,
    }
    context.update(csrf(request))

    return render_to_response('sentry/admin/users/new.html', context, request)
示例#6
0
文件: admin.py 项目: sunliwen/sentry
def create_new_user(request):
    if not request.user.is_superuser:
        return HttpResponseRedirect(reverse("sentry"))

    form = NewUserForm(request.POST or None, initial={"send_welcome_mail": True, "create_project": True})
    if form.is_valid():
        user = form.save(commit=False)

        # create a random password
        password = uuid.uuid4().hex
        user.set_password(password)

        user.save()

        if form.cleaned_data["create_project"]:
            project = Project.objects.create(owner=user, name="%s's New Project" % user.username.capitalize())
            member = project.team.member_set.get(user=user)
            key = project.key_set.get(user=user)

        if form.cleaned_data["send_welcome_mail"]:
            context = {"username": user.username, "password": password, "url": absolute_uri(reverse("sentry"))}
            if form.cleaned_data["create_project"]:
                context.update({"project": project, "member": member, "dsn": key.get_dsn()})
            body = render_to_string("sentry/emails/welcome_mail.txt", context, request)

            try:
                send_mail(
                    "%s Welcome to Sentry" % (settings.EMAIL_SUBJECT_PREFIX,),
                    body,
                    settings.SERVER_EMAIL,
                    [user.email],
                    fail_silently=False,
                )
            except Exception as e:
                logger = logging.getLogger("sentry.mail.errors")
                logger.exception(e)

        return HttpResponseRedirect(reverse("sentry-admin-users"))

    context = {"form": form}
    context.update(csrf(request))

    return render_to_response("sentry/admin/users/new.html", context, request)
示例#7
0
def create_new_user(request):
    if not request.is_superuser():
        return HttpResponseRedirect(reverse("sentry"))

    form = NewUserForm(request.POST or None, initial={"send_welcome_mail": True, "create_project": True})
    if form.is_valid():
        user = form.save(commit=False)

        # create a random password
        password = uuid.uuid4().hex
        user.set_password(password)

        user.save()

        if form.cleaned_data["send_welcome_mail"]:
            context = {"username": user.username, "password": password, "url": absolute_uri(reverse("sentry"))}
            body = render_to_string("sentry/emails/welcome_mail.txt", context, request)

            try:
                send_mail(
                    "%s Welcome to Sentry" % (options.get("mail.subject-prefix"),),
                    body,
                    options.get("mail.from"),
                    [user.email],
                    fail_silently=False,
                )
            except Exception as e:
                logger = logging.getLogger("sentry.mail.errors")
                logger.exception(e)

        return HttpResponseRedirect(reverse("sentry-admin-users"))

    context = {"form": form}
    context.update(csrf(request))

    return render_to_response("sentry/admin/users/new.html", context, request)