1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-21 19:37:28 +00:00

Add trialuser

This commit is contained in:
zhengxie
2015-01-08 16:23:18 +08:00
parent 9139b71e36
commit 8ec8d7d424
5 changed files with 52 additions and 1 deletions

View File

@@ -19,6 +19,10 @@
{% endif %}
</div>
{% endif %}
{% if user.trialing %}
<p><a href="#">Trial expires at {{user.trial_expire_date|date:"Y-m-d"}}</a></p>
{% endif %}
</div>
{% if TRAFFIC_STATS_ENABLED %}

View File

@@ -15,6 +15,10 @@ addConfirmTo($('.set-admin-btn'), {
'title':"{% trans "Set Admin" %}",
'con':"{% trans "Are you sure you want to set %s as admin?" %}"
});
addConfirmTo($('.unset-trial'), {
'title':"{% trans "Remove Trial" %}",
'con':"{% trans "Are you sure you want to remove trial for %s ?" %}"
});
$('#add-user-btn').click(function() {
$('#add-user-form').modal();

View File

@@ -15,6 +15,9 @@
{% if user.org %}
<p style="font-size:11px;"><a href="{% url 'sys_org_info_user' user.org.org_id %}">({{user.org.org_name}})</a></p>
{% endif %}
{% if user.trial_info %}
<p style="font-size:11px;">(Trial &nbsp;<a href="#" class="unset-trial" data-target="{{ user.email }}" data-url="{% url 'user_remove_trial' user.email %}">X</a>)</p>
{% endif %}
</td>
<td>
{% if user.source != 'LDAP' %}

View File

@@ -199,6 +199,7 @@ urlpatterns = patterns('',
url(r'^sys/notificationadmin/', notification_list, name='notification_list'),
url(r'^useradmin/add/$', user_add, name="user_add"),
url(r'^useradmin/remove/(?P<user_id>[^/]+)/$', user_remove, name="user_remove"),
url(r'^useradmin/removetrial/(?P<username>[^/]+)/$', user_remove_trial, name="user_remove_trial"),
url(r'^useradmin/search/$', user_search, name="user_search"),
url(r'^useradmin/makeadmin/(?P<user_id>[^/]+)/$', user_make_admin, name='user_make_admin'),
url(r'^useradmin/removeadmin/(?P<user_id>[^/]+)/$', user_remove_admin, name='user_remove_admin'),

View File

@@ -30,13 +30,17 @@ from seahub.views import get_system_default_repo_id
from seahub.forms import SetUserQuotaForm, AddUserForm, BatchAddUserForm
from seahub.profile.models import Profile, DetailedProfile
from seahub.share.models import FileShare, UploadLinkShare
import seahub.settings as settings
from seahub.settings import INIT_PASSWD, SITE_NAME, \
SEND_EMAIL_ON_ADDING_SYSTEM_MEMBER, SEND_EMAIL_ON_RESETTING_USER_PASSWD, \
ENABLE_GUEST
from seahub.utils import send_html_email, get_user_traffic_list, get_server_id
from seahub.utils.sysinfo import get_platform_name
try:
from seahub_extra.trialuser.models import TrialUser
enable_trial_user = True
except:
enable_trial_user = False
logger = logging.getLogger(__name__)
@@ -198,6 +202,10 @@ def sys_user_admin(request):
users = users_plus_one[:per_page]
last_logins = UserLastLogin.objects.filter(username__in=[x.email for x in users])
if enable_trial_user:
trial_users = TrialUser.objects.filter(username__in=[x.email for x in users])
else:
trial_users = []
for user in users:
if user.props.id == request.user.id:
user.is_self = True
@@ -209,12 +217,18 @@ def sys_user_admin(request):
user.is_guest = True
else:
user.is_guest = False
# populate user last login time
user.last_login = None
for last_login in last_logins:
if last_login.username == user.email:
user.last_login = last_login.last_login
user.trial_info = None
for trial_user in trial_users:
if trial_user.username == user.email:
user.trial_info = {'expire_date': trial_user.expire_date}
have_ldap = True if len(get_emailusers('LDAP', 0, 1)) > 0 else False
platform = get_platform_name()
@@ -529,6 +543,22 @@ def user_remove(request, user_id):
return HttpResponseRedirect(next)
@login_required
@sys_staff_required
def user_remove_trial(request, username):
"""
Arguments:
- `request`:
"""
referer = request.META.get('HTTP_REFERER', None)
next = reverse('sys_useradmin') if referer is None else referer
TrialUser.objects.filter(username=username).delete()
messages.success(request, _('Successfully remove trial for user: %s') % username)
return HttpResponseRedirect(next)
@login_required
@sys_staff_required
def user_make_admin(request, user_id):
@@ -1060,6 +1090,10 @@ def user_search(request):
users = ccnet_threaded_rpc.search_emailusers(email, -1, -1)
last_logins = UserLastLogin.objects.filter(username__in=[x.email for x in users])
if enable_trial_user:
trial_users = TrialUser.objects.filter(username__in=[x.email for x in users])
else:
trial_users = []
for user in users:
_populate_user_quota_usage(user)
@@ -1075,6 +1109,11 @@ def user_search(request):
if last_login.username == user.email:
user.last_login = last_login.last_login
user.trial_info = None
for trial_user in trial_users:
if trial_user.username == user.email:
user.trial_info = {'expire_date': trial_user.expire_date}
return render_to_response('sysadmin/user_search.html', {
'users': users,
'email': email,