Exemplo n.º 1
0
    def relay_email(self):
        from app.models import StartupPermission

        mail_to = []
        for u in StartupPermission.users_allowed(self.mailbox.startup):
            if u.userprofile.relay_email and u.email.lower().strip(
            ) != self.mail_from.lower().strip():
                mail_to.append(u.email)

        # Don't continue if there's no recipient (smtplib doesn't like that)
        if len(mail_to) == 0:
            return

        # Edit the subject
        prepend_with = u"[{0}-Reporting] [{1}] ".format(
            os.getenv("FUND_NAME", "Kima"), self.mailbox.startup.name)
        e = email.message_from_string(self.messagecontent.email)
        if not prepend_with in self.subject:
            del e["Subject"]
            e["Subject"] = prepend_with + self.subject

        # TODO : See if it's possible to access the raw SMTP object within Django

        try:
            server = smtplib.SMTP(settings.EMAIL_HOST, settings.EMAIL_PORT)
            server.starttls()
            server.login(settings.EMAIL_HOST_USER,
                         settings.EMAIL_HOST_PASSWORD)
            server.sendmail(self.mail_from, mail_to, e.as_string())
            server.quit()
        except smtplib.SMTPSenderRefused:
            pass
Exemplo n.º 2
0
def startup_list(request):
    startup_list = []

    for startup in Startup.objects.all().annotate(latest_mail=Max(
            'mailbox__message__created_at')).order_by('-latest_mail'):
        if user_has_access(request, startup):
            startup.authorized_users = StartupPermission.users_allowed(startup)

            startup_list.append({
                "name":
                startup.name,
                "latest_mail":
                naturaltime(startup.latest_mail),
                "latest_mail_isodate":
                startup.latest_mail.isoformat(),
                "authorized_users":
                map(lambda x: x.first_name,
                    StartupPermission.users_allowed(startup)),
                "url":
                reverse("startup_detail", args=(startup.id, ))
            })

    # Convert the startup list in JSON
    if len(startup_list) == 0:
        startup_list = None
    else:
        startup_list = json.dumps(startup_list)

    # Get the search query from GET parameters
    search_query = request.GET.get("search")

    return render(
        request, "messages/startup_list.html", {
            "startup_list":
            startup_list,
            "warning_date":
            (timezone.now() - datetime.timedelta(days=60)).isoformat(),
            "search_query":
            search_query
        })
Exemplo n.º 3
0
def user_list(request):
    users = User.objects.filter(is_active=True).order_by('first_name')

    startup_per_user = {}
    for user in users:
        startup_per_user[user.id] = StartupPermission.startups_allowed(
            user).count()

    return render(
        request, "admin/admin_user_list.html", {
            "users": users,
            "startup_per_user": startup_per_user,
            "cur_admin_page": "user"
        })
Exemplo n.º 4
0
def startup_list(request):
    startups = Startup.objects.all().order_by('name')

    # TODO : This might not be efficient enough
    user_permissions = {}
    user_list = User.objects.filter(is_active=True)
    for startup in startups:
        permission_map = []
        for user in user_list:
            permission_map.append(
                (user, StartupPermission.has_user_permission(user, startup)))
        user_permissions[startup.id] = permission_map

    return render(
        request, "admin/admin_startup_list.html", {
            "startups": startups,
            "user_permissions": user_permissions,
            "cur_admin_page": "startup"
        })
Exemplo n.º 5
0
    def relay_email(self):
        from app.models import StartupPermission

        mail_to = []
        for u in StartupPermission.users_allowed(self.mailbox.startup):
            if u.userprofile.relay_email:
                mail_to.append(u.email)

        # Edit the subject
        e = email.message_from_string(self.email)
        if not "[Kima-Reporting] " in self.subject:
            del e["Subject"]
            e["Subject"] = u"[Kima-Reporting] "+self.subject

        # TODO : See if it's possible to access the raw SMTP object within Django
        server = smtplib.SMTP(settings.EMAIL_HOST, settings.EMAIL_PORT)
        server.starttls()
        server.login(settings.EMAIL_HOST_USER, settings.EMAIL_HOST_PASSWORD)
        server.sendmail(self.mail_from, mail_to, e.as_string())
        server.quit()
Exemplo n.º 6
0
def user_has_access(request, startup):
    return StartupPermission.has_user_permission(request.user, startup)
Exemplo n.º 7
0
def authorized_users(startup):
    return StartupPermission.users_allowed(startup)