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 />
|
<label>邮箱:</label><br />
|
||||||
<textarea id="added-member-name" name="user_name"></textarea><br />
|
<textarea id="added-member-name" name="user_name"></textarea><br />
|
||||||
<input type="hidden" id="group_id" name="group_id" value="{{ group.id }}" />
|
<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>
|
<p class="error hide" id="member-add-error"></p>
|
||||||
<input type="submit" value="提交" id="member-add-submit" />
|
<input type="submit" value="提交" id="member-add-submit" />
|
||||||
</form>
|
</form>
|
||||||
@@ -89,16 +90,12 @@ $('#member-add-submit').click(function() {
|
|||||||
'user_name': $('#added-member-name').val()
|
'user_name': $('#added-member-name').val()
|
||||||
},
|
},
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
if (data['success']) {
|
location.reload(true);
|
||||||
location.reload(true);
|
|
||||||
} else {
|
|
||||||
apply_form_error('member-add-form', data['error']);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
error: function(data, textStatus, jqXHR) {
|
error: function(data, textStatus, jqXHR) {
|
||||||
var errors = $.parseJSON(data.responseText);
|
var errors = $.parseJSON(data.responseText);
|
||||||
$.each(errors, function(index, value) {
|
$.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
|
# encoding: utf-8
|
||||||
import os
|
import os
|
||||||
import simplejson as json
|
import simplejson as json
|
||||||
|
from django.core.mail import send_mail
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
|
from django.contrib.sites.models import RequestSite
|
||||||
from django.http import HttpResponse, HttpResponseRedirect, Http404, \
|
from django.http import HttpResponse, HttpResponseRedirect, Http404, \
|
||||||
HttpResponseBadRequest
|
HttpResponseBadRequest
|
||||||
from django.shortcuts import render_to_response, redirect
|
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.template.loader import render_to_string
|
||||||
from django.utils.http import urlquote
|
from django.utils.http import urlquote
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
@@ -501,14 +503,16 @@ def group_members(request, group_id):
|
|||||||
|
|
||||||
if request.user.org:
|
if request.user.org:
|
||||||
for member_name in member_list:
|
for member_name in member_list:
|
||||||
# Add email to contacts
|
# Add user to contacts.
|
||||||
mail_sended.send(sender=None, user=request.user.username,
|
mail_sended.send(sender=None, user=request.user.username,
|
||||||
email=member_name)
|
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'],
|
if not ccnet_threaded_rpc.org_user_exists(request.user.org['org_id'],
|
||||||
member_name):
|
member_name):
|
||||||
err_msg = u'无法添加成员,当前企业不存在 %s 用户' % member_name
|
err_msg = u'无法添加成员,当前企业不存在 %s 用户' % member_name
|
||||||
result['error'] = err_msg
|
result['error'] = err_msg
|
||||||
return HttpResponse(json.dumps(result),
|
return HttpResponse(json.dumps(result), status=400,
|
||||||
content_type=content_type)
|
content_type=content_type)
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
@@ -517,29 +521,47 @@ def group_members(request, group_id):
|
|||||||
member_name)
|
member_name)
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
result['error'] = _(e.msg)
|
result['error'] = _(e.msg)
|
||||||
return HttpResponse(json.dumps(result),
|
return HttpResponse(json.dumps(result), status=500,
|
||||||
content_type=content_type)
|
content_type=content_type)
|
||||||
else:
|
else:
|
||||||
for member_name in member_list:
|
for member_name in member_list:
|
||||||
# Add email to contacts
|
# Add user to contacts.
|
||||||
mail_sended.send(sender=None, user=request.user.username,
|
mail_sended.send(sender=None, user=request.user.username,
|
||||||
email=member_name)
|
email=member_name)
|
||||||
|
|
||||||
|
# Send email to unregistered user.
|
||||||
if not is_registered_user(member_name):
|
if not is_registered_user(member_name):
|
||||||
err_msg = u'无法添加成员,用户 %s 不存在' % member_name
|
use_https = request.is_secure()
|
||||||
result['error'] = err_msg
|
domain = RequestSite(request).domain
|
||||||
return HttpResponse(json.dumps(result),
|
|
||||||
content_type=content_type)
|
t = loader.get_template('group/add_member_email.html')
|
||||||
else:
|
c = {
|
||||||
|
'email': request.user.username,
|
||||||
|
'to_email': member_name,
|
||||||
|
'group': group,
|
||||||
|
'domain': domain,
|
||||||
|
'protocol': use_https and 'https' or 'http',
|
||||||
|
}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
ccnet_threaded_rpc.group_add_member(group_id_int,
|
send_mail('您的好友在SeaCloud上将你加入到小组',
|
||||||
request.user.username,
|
t.render(Context(c)), None, [member_name],
|
||||||
member_name)
|
fail_silently=False)
|
||||||
except SearpcError, e:
|
except:
|
||||||
result['error'] = _(e.msg)
|
data = json.dumps({'error': u'发送失败'})
|
||||||
return HttpResponse(json.dumps(result),
|
return HttpResponse(data, status=500,
|
||||||
content_type=content_type)
|
content_type=content_type)
|
||||||
return HttpResponse(json.dumps({'success': True}),
|
# 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), status=500,
|
||||||
|
content_type=content_type)
|
||||||
|
messages.success(request, u'操作成功')
|
||||||
|
return HttpResponse(json.dumps('success'), status=200,
|
||||||
content_type=content_type)
|
content_type=content_type)
|
||||||
|
|
||||||
### GET ###
|
### GET ###
|
||||||
|
@@ -199,6 +199,10 @@ def register(request, backend, success_url=None, form_class=None,
|
|||||||
for key, value in extra_context.items():
|
for key, value in extra_context.items():
|
||||||
context[key] = callable(value) and value() or value
|
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,
|
return render_to_response(template_name,
|
||||||
{ 'form': form },
|
{ 'form': form },
|
||||||
context_instance=context)
|
context_instance=context)
|
||||||
|
Reference in New Issue
Block a user