mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-21 19:37:28 +00:00
Add trialuser
This commit is contained in:
@@ -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 %}
|
||||
|
@@ -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();
|
||||
|
@@ -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 <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' %}
|
||||
|
@@ -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'),
|
||||
|
@@ -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,
|
||||
|
Reference in New Issue
Block a user