mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-04-27 03:00:12 -04:00
Allow sponsors to look up users by email.
This commit is contained in:
@@ -75,6 +75,7 @@ from r2.lib.validator import (
|
||||
validate,
|
||||
validatedForm,
|
||||
ValidCard,
|
||||
ValidEmail,
|
||||
VBoolean,
|
||||
VByName,
|
||||
VCollection,
|
||||
@@ -105,6 +106,7 @@ from r2.lib.validator import (
|
||||
)
|
||||
from r2.models import (
|
||||
Account,
|
||||
AccountsByCanonicalEmail,
|
||||
calc_impressions,
|
||||
Collection,
|
||||
Frontpage,
|
||||
@@ -290,11 +292,14 @@ class SponsorController(PromoteController):
|
||||
|
||||
@validate(
|
||||
VSponsorAdmin(),
|
||||
user=VByName('name', thing_cls=Account),
|
||||
id_user=VByName('name', thing_cls=Account),
|
||||
email=ValidEmail("email"),
|
||||
)
|
||||
def GET_lookup_user(self, user):
|
||||
content = SponsorLookupUser(user=user)
|
||||
return PromotePage(title=_("lookup user"), content=content).render()
|
||||
def GET_lookup_user(self, id_user, email):
|
||||
email_users = AccountsByCanonicalEmail.get_accounts(email)
|
||||
content = SponsorLookupUser(
|
||||
id_user=id_user, email=email, email_users=email_users)
|
||||
return PromotePage(title="look up user", content=content).render()
|
||||
|
||||
|
||||
class PromoteListingController(ListingController):
|
||||
|
||||
@@ -4003,8 +4003,9 @@ class Roadblocks(PromoteLinkBase):
|
||||
|
||||
|
||||
class SponsorLookupUser(PromoteLinkBase):
|
||||
def __init__(self, user=None):
|
||||
PromoteLinkBase.__init__(self, user=user)
|
||||
def __init__(self, id_user=None, email=None, email_users=None):
|
||||
PromoteLinkBase.__init__(
|
||||
self, id_user=id_user, email=email, email_users=email_users or [])
|
||||
|
||||
|
||||
class TabbedPane(Templated):
|
||||
|
||||
@@ -6274,8 +6274,15 @@ div #campaign-field {
|
||||
}
|
||||
}
|
||||
|
||||
.lookup-user input[name=name] {
|
||||
width: 10em;
|
||||
.lookup-user {
|
||||
input[name=name] {
|
||||
width: 10em;
|
||||
}
|
||||
|
||||
input[name=email] {
|
||||
width: 20em;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6747,16 +6754,6 @@ div #campaign-field {
|
||||
margin-right: 150px;
|
||||
}
|
||||
}
|
||||
|
||||
.lookup-user-field {
|
||||
.linefield-content {
|
||||
display: flex;
|
||||
}
|
||||
.form-group,
|
||||
.lookup-user-results {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.geotargeting-disabled {
|
||||
|
||||
@@ -26,19 +26,32 @@
|
||||
<form name="lookup-user" action="" method="get">
|
||||
<div class="editor lookup-user">
|
||||
<header>
|
||||
<h2>lookup a user by id</h2>
|
||||
<h2>look up a user</h2>
|
||||
</header>
|
||||
<div class="editor-group">
|
||||
<%utils:line_field title="${_('search')}" css_class="rounded lookup-user-field">
|
||||
<label class="form-group">
|
||||
<div class="label">${_('id')}</div>
|
||||
<input type="text" name="name" value="${thing.user._fullname if thing.user else ""}">
|
||||
<input type="text" name="name" value="${thing.id_user._fullname if thing.id_user else ""}">
|
||||
</label>
|
||||
<div class='form-group lookup-user-results'>
|
||||
<div class="label">${_('name')}</div>
|
||||
%if thing.user:
|
||||
<strong>${"%s is %s" % (thing.user._fullname, thing.user.name)}</strong>
|
||||
%endif:
|
||||
<div class="label">name</div>
|
||||
%if thing.id_user:
|
||||
${utils.plain_link(thing.id_user.name, "/user/%s/promoted" % thing.id_user.name)}
|
||||
%endif
|
||||
</div>
|
||||
|
||||
<label class="form-group">
|
||||
<div class="label">email</div>
|
||||
<input type="text" name="email" value="${thing.email or ""}">
|
||||
</label>
|
||||
<div class='form-group lookup-user-results'>
|
||||
<div class="label">name(s)</div>
|
||||
%for user in thing.email_users:
|
||||
<div>
|
||||
${utils.plain_link(user.name, "/user/%s/promoted" % user.name)}
|
||||
</div>
|
||||
%endfor
|
||||
</div>
|
||||
</%utils:line_field>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user