1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-21 03:18:23 +00:00

Merge pull request #1429 from haiwen/useradmin

Useradmin
This commit is contained in:
xiez
2017-01-06 14:01:59 +08:00
committed by GitHub
11 changed files with 538 additions and 183 deletions

View File

@@ -54,6 +54,7 @@ from seahub.views.ajax import (get_related_users_by_org_repo,
get_related_users_by_repo)
from seahub.forms import SetUserQuotaForm, AddUserForm, BatchAddUserForm, \
TermsAndConditionsForm
from seahub.profile.forms import ProfileForm, DetailedProfileForm
from seahub.options.models import UserOptions
from seahub.profile.models import Profile, DetailedProfile
from seahub.signals import repo_deleted
@@ -645,7 +646,6 @@ def user_set_quota(request, email):
f = SetUserQuotaForm(request.POST)
if f.is_valid():
email = f.cleaned_data['email']
space_quota_mb = f.cleaned_data['space_quota']
space_quota = space_quota_mb * get_file_size_unit('MB')
@@ -980,6 +980,8 @@ def user_add(request):
form = AddUserForm(post_values)
if form.is_valid():
email = form.cleaned_data['email']
name = form.cleaned_data['name']
department = form.cleaned_data['department']
role = form.cleaned_data['role']
password = form.cleaned_data['password1']
@@ -995,6 +997,10 @@ def user_add(request):
User.objects.update_role(email, role)
if config.FORCE_PASSWORD_CHANGE:
UserOptions.objects.set_force_passwd_change(email)
if name:
Profile.objects.add_or_update(email, name, '')
if department:
DetailedProfile.objects.add_or_update(email, department, '')
if request.user.org:
org_id = request.user.org.org_id
@@ -1834,12 +1840,31 @@ def batch_add_user(request):
username = row[0].strip()
password = row[1].strip()
# nickname & department are optional
try:
nickname = row[2].strip()
except IndexError:
nickname = ''
try:
department = row[3].strip()
except IndexError:
department = ''
if not is_valid_username(username):
continue
if password == '':
continue
if nickname:
if len(nickname) > 64 or '/' in nickname:
continue
if department:
if len(department) > 512:
continue
try:
User.objects.get(email=username)
continue
@@ -1847,6 +1872,11 @@ def batch_add_user(request):
User.objects.create_user(username, password, is_staff=False,
is_active=True)
if nickname:
Profile.objects.add_or_update(username, nickname, '')
if department:
DetailedProfile.objects.add_or_update(username, department, '')
send_html_email_with_dj_template(
username, dj_template='sysadmin/user_batch_add_email.html',
subject=_(u'You are invited to join %s') % SITE_NAME,