mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-25 14:50:29 +00:00
Add unregistered user to group
This commit is contained in:
9
group/templates/group/add_member_email.html
Normal file
9
group/templates/group/add_member_email.html
Normal file
@@ -0,0 +1,9 @@
|
||||
{% load url from future %}
|
||||
亲爱的 {{ to_email }}:
|
||||
|
||||
{{ email }} 邀请你加入小组 {{ group.group_name }}, 点击以下链接加入:
|
||||
{{ protocol }}://{{ domain }}{% url 'registration_register' %}?src={{ to_email }}
|
||||
|
||||
邮箱请填写当前邮箱,感谢使用我们的网站!
|
||||
|
||||
Seafile团队
|
@@ -50,6 +50,7 @@
|
||||
<label>邮箱:</label><br />
|
||||
<textarea id="added-member-name" name="user_name"></textarea><br />
|
||||
<input type="hidden" id="group_id" name="group_id" value="{{ group.id }}" />
|
||||
<p class="tip">可以是非网站注册用户,我们会以邮件通知对方。</p>
|
||||
<p class="error hide" id="member-add-error"></p>
|
||||
<input type="submit" value="提交" id="member-add-submit" />
|
||||
</form>
|
||||
@@ -89,16 +90,12 @@ $('#member-add-submit').click(function() {
|
||||
'user_name': $('#added-member-name').val()
|
||||
},
|
||||
success: function(data) {
|
||||
if (data['success']) {
|
||||
location.reload(true);
|
||||
} else {
|
||||
apply_form_error('member-add-form', data['error']);
|
||||
}
|
||||
},
|
||||
error: function(data, textStatus, jqXHR) {
|
||||
var errors = $.parseJSON(data.responseText);
|
||||
$.each(errors, function(index, value) {
|
||||
apply_form_error('member-add-form', value[0]);
|
||||
apply_form_error('member-add-form', value);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
@@ -1,12 +1,14 @@
|
||||
# encoding: utf-8
|
||||
import os
|
||||
import simplejson as json
|
||||
from django.core.mail import send_mail
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.contrib import messages
|
||||
from django.contrib.sites.models import RequestSite
|
||||
from django.http import HttpResponse, HttpResponseRedirect, Http404, \
|
||||
HttpResponseBadRequest
|
||||
from django.shortcuts import render_to_response, redirect
|
||||
from django.template import RequestContext
|
||||
from django.template import Context, loader, RequestContext
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.http import urlquote
|
||||
from django.utils.translation import ugettext as _
|
||||
@@ -501,14 +503,16 @@ def group_members(request, group_id):
|
||||
|
||||
if request.user.org:
|
||||
for member_name in member_list:
|
||||
# Add email to contacts
|
||||
# Add user to contacts.
|
||||
mail_sended.send(sender=None, user=request.user.username,
|
||||
email=member_name)
|
||||
|
||||
# Can not add unregistered user to group in org context.
|
||||
if not ccnet_threaded_rpc.org_user_exists(request.user.org['org_id'],
|
||||
member_name):
|
||||
err_msg = u'无法添加成员,当前企业不存在 %s 用户' % member_name
|
||||
result['error'] = err_msg
|
||||
return HttpResponse(json.dumps(result),
|
||||
return HttpResponse(json.dumps(result), status=400,
|
||||
content_type=content_type)
|
||||
else:
|
||||
try:
|
||||
@@ -517,29 +521,47 @@ def group_members(request, group_id):
|
||||
member_name)
|
||||
except SearpcError, e:
|
||||
result['error'] = _(e.msg)
|
||||
return HttpResponse(json.dumps(result),
|
||||
return HttpResponse(json.dumps(result), status=500,
|
||||
content_type=content_type)
|
||||
else:
|
||||
for member_name in member_list:
|
||||
# Add email to contacts
|
||||
# Add user to contacts.
|
||||
mail_sended.send(sender=None, user=request.user.username,
|
||||
email=member_name)
|
||||
|
||||
# Send email to unregistered user.
|
||||
if not is_registered_user(member_name):
|
||||
err_msg = u'无法添加成员,用户 %s 不存在' % member_name
|
||||
result['error'] = err_msg
|
||||
return HttpResponse(json.dumps(result),
|
||||
use_https = request.is_secure()
|
||||
domain = RequestSite(request).domain
|
||||
|
||||
t = loader.get_template('group/add_member_email.html')
|
||||
c = {
|
||||
'email': request.user.username,
|
||||
'to_email': member_name,
|
||||
'group': group,
|
||||
'domain': domain,
|
||||
'protocol': use_https and 'https' or 'http',
|
||||
}
|
||||
|
||||
try:
|
||||
send_mail('您的好友在SeaCloud上将你加入到小组',
|
||||
t.render(Context(c)), None, [member_name],
|
||||
fail_silently=False)
|
||||
except:
|
||||
data = json.dumps({'error': u'发送失败'})
|
||||
return HttpResponse(data, status=500,
|
||||
content_type=content_type)
|
||||
else:
|
||||
# Add user to group.
|
||||
try:
|
||||
ccnet_threaded_rpc.group_add_member(group_id_int,
|
||||
request.user.username,
|
||||
member_name)
|
||||
except SearpcError, e:
|
||||
result['error'] = _(e.msg)
|
||||
return HttpResponse(json.dumps(result),
|
||||
return HttpResponse(json.dumps(result), status=500,
|
||||
content_type=content_type)
|
||||
return HttpResponse(json.dumps({'success': True}),
|
||||
messages.success(request, u'操作成功')
|
||||
return HttpResponse(json.dumps('success'), status=200,
|
||||
content_type=content_type)
|
||||
|
||||
### GET ###
|
||||
|
@@ -199,6 +199,10 @@ def register(request, backend, success_url=None, form_class=None,
|
||||
for key, value in extra_context.items():
|
||||
context[key] = callable(value) and value() or value
|
||||
|
||||
src = request.GET.get('src', '')
|
||||
if src:
|
||||
form = form_class(initial={'email': src})
|
||||
|
||||
return render_to_response(template_name,
|
||||
{ 'form': form },
|
||||
context_instance=context)
|
||||
|
Reference in New Issue
Block a user