mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-04 08:28:11 +00:00
Add org user added notification
This commit is contained in:
@@ -385,6 +385,8 @@ table img {
|
|||||||
.new-reply {
|
.new-reply {
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
background-color: #FDF;
|
background-color: #FDF;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
display: block;
|
||||||
}
|
}
|
||||||
.new-reply a {
|
.new-reply a {
|
||||||
color: #000;
|
color: #000;
|
||||||
|
@@ -0,0 +1,4 @@
|
|||||||
|
from signals import *
|
||||||
|
from handlers import *
|
||||||
|
|
||||||
|
org_user_added.connect(org_user_added_cb, sender=None)
|
||||||
|
@@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
{% for user in users %}
|
{% for user in users %}
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="{{ SITE_ROOT }}useradmin/info/{{ user.props.email }}/">{{ user.props.email }}</a></td>
|
<td><a href="{% url user_profile user.email %}">{{ user.props.email }}</a></td>
|
||||||
<td>
|
<td>
|
||||||
{% if not user.is_self %}
|
{% if not user.is_self %}
|
||||||
<button class="remove-user-btn" data="{% url org_user_remove org.url_prefix user.email %}">删除</button>
|
<button class="remove-user-btn" data="{% url org_user_remove org.url_prefix user.email %}">删除</button>
|
||||||
@@ -69,8 +69,9 @@
|
|||||||
|
|
||||||
<form id="user-add-form" action="" method="post" name="user-add-form" class="hide">
|
<form id="user-add-form" action="" method="post" name="user-add-form" class="hide">
|
||||||
<label>邮箱:</label><br />
|
<label>邮箱:</label><br />
|
||||||
<textarea id="emails" name="emails"></textarea>
|
<textarea id="added-member-name" name="added-member-name"></textarea>
|
||||||
<p class="tip">可以是非网站注册用户,我们会以邮件通知对方。</p>
|
<p class="tip">可以是非网站注册用户,我们会以邮件通知对方。</p>
|
||||||
|
<p class="tip">(如未收到,请检查垃圾邮件)</p>
|
||||||
<p class="error hide">输入不能为空。</p>
|
<p class="error hide">输入不能为空。</p>
|
||||||
<input type="submit" value="提交" />
|
<input type="submit" value="提交" />
|
||||||
</form>
|
</form>
|
||||||
|
@@ -7,6 +7,8 @@ from seahub.views import repo, repo_history, org_seafadmin, \
|
|||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
url(r'^create/$', create_org, name='create_org'),
|
url(r'^create/$', create_org, name='create_org'),
|
||||||
(r'^change_account/$', change_account),
|
(r'^change_account/$', change_account),
|
||||||
|
url(r'^messages/$', org_msg, name='org_msg'),
|
||||||
|
|
||||||
url(r'^(?P<url_prefix>[^/]+)/$', org_info, name='org_info'),
|
url(r'^(?P<url_prefix>[^/]+)/$', org_info, name='org_info'),
|
||||||
url(r'^(?P<url_prefix>[^/]+)/groups/$', org_groups, name='org_groups'),
|
url(r'^(?P<url_prefix>[^/]+)/groups/$', org_groups, name='org_groups'),
|
||||||
|
|
||||||
|
@@ -15,8 +15,10 @@ from seaserv import ccnet_threaded_rpc, get_orgs_by_user, get_org_repos, \
|
|||||||
get_ccnetuser, remove_org_user, get_org_groups
|
get_ccnetuser, remove_org_user, get_org_groups
|
||||||
|
|
||||||
from forms import OrgCreateForm
|
from forms import OrgCreateForm
|
||||||
|
from signals import org_user_added
|
||||||
from settings import ORG_CACHE_PREFIX
|
from settings import ORG_CACHE_PREFIX
|
||||||
from utils import set_org_ctx
|
from utils import set_org_ctx
|
||||||
|
from notifications.models import UserNotification
|
||||||
from registration.models import RegistrationProfile
|
from registration.models import RegistrationProfile
|
||||||
import seahub.settings as seahub_settings
|
import seahub.settings as seahub_settings
|
||||||
from seahub.utils import go_error, go_permission_error, validate_group_name, \
|
from seahub.utils import go_error, go_permission_error, validate_group_name, \
|
||||||
@@ -142,7 +144,7 @@ def org_useradmin(request, url_prefix):
|
|||||||
raise Http404
|
raise Http404
|
||||||
|
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
emails = request.POST.get('emails')
|
emails = request.POST.get('added-member-name')
|
||||||
|
|
||||||
email_list = emails2list(emails)
|
email_list = emails2list(emails)
|
||||||
for email in email_list:
|
for email in email_list:
|
||||||
@@ -154,6 +156,11 @@ def org_useradmin(request, url_prefix):
|
|||||||
email = email.strip(' ')
|
email = email.strip(' ')
|
||||||
org_id = request.user.org['org_id']
|
org_id = request.user.org['org_id']
|
||||||
add_org_user(org_id, email, 0)
|
add_org_user(org_id, email, 0)
|
||||||
|
|
||||||
|
# send signal
|
||||||
|
org_user_added.send(sender=None, org_id=org_id,
|
||||||
|
from_email=request.user.username,
|
||||||
|
to_email=email)
|
||||||
else:
|
else:
|
||||||
# User is not registered, just create account and
|
# User is not registered, just create account and
|
||||||
# add that account to org
|
# add that account to org
|
||||||
@@ -211,3 +218,22 @@ def org_user_remove(request, user):
|
|||||||
remove_org_user(org_id, user)
|
remove_org_user(org_id, user)
|
||||||
|
|
||||||
return HttpResponseRedirect(reverse('org_useradmin', args=[url_prefix]))
|
return HttpResponseRedirect(reverse('org_useradmin', args=[url_prefix]))
|
||||||
|
|
||||||
|
def org_msg(request):
|
||||||
|
"""
|
||||||
|
Show organization user added messages
|
||||||
|
"""
|
||||||
|
orgmsg_list = []
|
||||||
|
notes = UserNotification.objects.filter(to_user=request.user.username)
|
||||||
|
for n in notes:
|
||||||
|
if n.msg_type == 'org_msg':
|
||||||
|
orgmsg_list.append(n.detail)
|
||||||
|
|
||||||
|
# remove new org msg notification
|
||||||
|
UserNotification.objects.filter(to_user=request.user.username,
|
||||||
|
msg_type='org_msg').delete()
|
||||||
|
print orgmsg_list
|
||||||
|
return render_to_response('organizations/new_msg.html', {
|
||||||
|
'orgmsg_list': orgmsg_list,
|
||||||
|
}, context_instance=RequestContext(request))
|
||||||
|
|
||||||
|
@@ -27,7 +27,9 @@
|
|||||||
<div class="top-bar-in">
|
<div class="top-bar-in">
|
||||||
<div class="fleft">
|
<div class="fleft">
|
||||||
{% if request.user.is_authenticated %}
|
{% if request.user.is_authenticated %}
|
||||||
<a href="#" id="team-account" data="no-popup">团体帐号<span class="bg"></span></a>
|
<a href="#" id="team-account" data="no-popup">
|
||||||
|
{% if org %} {{ org.org_name }} {% else %} 个人帐号 {% endif %}
|
||||||
|
<span class="bg"></span></a>
|
||||||
<ul class="hide" id="team-list">
|
<ul class="hide" id="team-list">
|
||||||
<li><a href="{% url myhome %}">个人帐号</a></li>
|
<li><a href="{% url myhome %}">个人帐号</a></li>
|
||||||
{% for org in request.user.orgs %}
|
{% for org in request.user.orgs %}
|
||||||
|
@@ -17,15 +17,13 @@
|
|||||||
{% if grpmsg_reply_list %}
|
{% if grpmsg_reply_list %}
|
||||||
<span class="new-reply"><a href="{{ SITE_ROOT }}group/reply/new/">{{ grpmsg_reply_list|length }}条留言有新回复</a></span>
|
<span class="new-reply"><a href="{{ SITE_ROOT }}group/reply/new/">{{ grpmsg_reply_list|length }}条留言有新回复</a></span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if orgmsg_list %}
|
||||||
|
<span class="new-reply"><a href="{% url org_msg %}">你有{{ orgmsg_list|length }}条团体消息</a></span>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<h3>已用空间</h3>
|
<h3>已用空间</h3>
|
||||||
<p>{{ quota_usage|filesizeformat }} / 2 GB</p>
|
<p>{{ quota_usage|filesizeformat }} / 2 GB</p>
|
||||||
|
|
||||||
{% if request.user.org %}
|
|
||||||
<h3>所属企业</h3>
|
|
||||||
<p>{{ request.user.org.org_name }}</p>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<h3>我管理的小组</h3>
|
<h3>我管理的小组</h3>
|
||||||
{% if groups_manage %}
|
{% if groups_manage %}
|
||||||
<ul>
|
<ul>
|
||||||
@@ -159,6 +157,7 @@
|
|||||||
<textarea id="email_or_group" name="email_or_group"></textarea>
|
<textarea id="email_or_group" name="email_or_group"></textarea>
|
||||||
<input id="repo_id" type="hidden" name="repo_id" value="" />
|
<input id="repo_id" type="hidden" name="repo_id" value="" />
|
||||||
<p class="tip">可以是非网站注册用户,我们会以邮件通知对方。</p>
|
<p class="tip">可以是非网站注册用户,我们会以邮件通知对方。</p>
|
||||||
|
<p class="tip">(如未收到,请检查垃圾邮件)</p>
|
||||||
<p class="error hide">输入不能为空。</p>
|
<p class="error hide">输入不能为空。</p>
|
||||||
<input type="submit" value="提交" id="share-submit-btn" />
|
<input type="submit" value="提交" id="share-submit-btn" />
|
||||||
</form>
|
</form>
|
||||||
|
@@ -4,10 +4,10 @@
|
|||||||
<ul class="nav">
|
<ul class="nav">
|
||||||
{% if request.user.org.is_staff %}
|
{% if request.user.org.is_staff %}
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url org_seafadmin request.user.org.url_prefix %}" {% block nav_seafadmin_class %}{% endblock %}>目录管理</a>
|
<a href="{% url org_useradmin request.user.org.url_prefix %}" {% block nav_useradmin_class %}{% endblock %}>用户管理</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url org_useradmin request.user.org.url_prefix %}" {% block nav_useradmin_class %}{% endblock %}>用户管理</a>
|
<a href="{% url org_seafadmin request.user.org.url_prefix %}" {% block nav_seafadmin_class %}{% endblock %}>目录管理</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url org_groupadmin request.user.org.url_prefix %}" {% block nav_groupadmin_class %}{% endblock %}>小组管理</a>
|
<a href="{% url org_groupadmin request.user.org.url_prefix %}" {% block nav_groupadmin_class %}{% endblock %}>小组管理</a>
|
||||||
|
@@ -9,7 +9,7 @@ from service import get_binding_peerids
|
|||||||
from service import get_ccnetuser, get_emailusers
|
from service import get_ccnetuser, get_emailusers
|
||||||
from service import get_group_repoids, check_group_staff
|
from service import get_group_repoids, check_group_staff
|
||||||
from service import create_org, get_orgs_by_user, get_org_by_url_prefix, \
|
from service import create_org, get_orgs_by_user, get_org_by_url_prefix, \
|
||||||
get_user_current_org, add_org_user, remove_org_user
|
get_user_current_org, add_org_user, remove_org_user, get_org_by_id
|
||||||
|
|
||||||
from service import CCNET_CONF_PATH
|
from service import CCNET_CONF_PATH
|
||||||
|
|
||||||
|
@@ -154,6 +154,14 @@ def get_org_by_url_prefix(url_prefix):
|
|||||||
|
|
||||||
return org
|
return org
|
||||||
|
|
||||||
|
def get_org_by_id(org_id):
|
||||||
|
try:
|
||||||
|
org = ccnet_threaded_rpc.get_org_by_id(org_id)
|
||||||
|
except SearpcError:
|
||||||
|
org = None
|
||||||
|
|
||||||
|
return org
|
||||||
|
|
||||||
def get_user_current_org(user, url_prefix):
|
def get_user_current_org(user, url_prefix):
|
||||||
orgs = get_orgs_by_user(user)
|
orgs = get_orgs_by_user(user)
|
||||||
for org in orgs:
|
for org in orgs:
|
||||||
|
4
views.py
4
views.py
@@ -697,12 +697,15 @@ def myhome(request):
|
|||||||
# user notifications
|
# user notifications
|
||||||
grpmsg_list = []
|
grpmsg_list = []
|
||||||
grpmsg_reply_list = []
|
grpmsg_reply_list = []
|
||||||
|
orgmsg_list = []
|
||||||
notes = UserNotification.objects.filter(to_user=request.user.username)
|
notes = UserNotification.objects.filter(to_user=request.user.username)
|
||||||
for n in notes:
|
for n in notes:
|
||||||
if n.msg_type == 'group_msg':
|
if n.msg_type == 'group_msg':
|
||||||
grpmsg_list.append(n.detail)
|
grpmsg_list.append(n.detail)
|
||||||
elif n.msg_type == 'grpmsg_reply':
|
elif n.msg_type == 'grpmsg_reply':
|
||||||
grpmsg_reply_list.append(n.detail)
|
grpmsg_reply_list.append(n.detail)
|
||||||
|
elif n.msg_type == 'org_msg':
|
||||||
|
orgmsg_list.append(n.detail)
|
||||||
|
|
||||||
# my groups
|
# my groups
|
||||||
groups = get_personal_groups(email)
|
groups = get_personal_groups(email)
|
||||||
@@ -738,6 +741,7 @@ def myhome(request):
|
|||||||
"contacts": contacts,
|
"contacts": contacts,
|
||||||
"groups": groups,
|
"groups": groups,
|
||||||
"grpmsg_reply_list": grpmsg_reply_list,
|
"grpmsg_reply_list": grpmsg_reply_list,
|
||||||
|
"orgmsg_list": orgmsg_list,
|
||||||
"groups_manage": groups_manage,
|
"groups_manage": groups_manage,
|
||||||
"groups_join": groups_join,
|
"groups_join": groups_join,
|
||||||
}, context_instance=RequestContext(request))
|
}, context_instance=RequestContext(request))
|
||||||
|
Reference in New Issue
Block a user