mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-09 10:50:24 +00:00
Add discuss module to public group, do not show email in user profile
This commit is contained in:
@@ -14,7 +14,7 @@ from registration import signals
|
|||||||
from seaserv import ccnet_threaded_rpc, unset_repo_passwd, is_passwd_set
|
from seaserv import ccnet_threaded_rpc, unset_repo_passwd, is_passwd_set
|
||||||
|
|
||||||
from profile.models import Profile
|
from profile.models import Profile
|
||||||
from seahub.utils import get_user_repos
|
|
||||||
|
|
||||||
UNUSABLE_PASSWORD = '!' # This will never be a valid hash
|
UNUSABLE_PASSWORD = '!' # This will never be a valid hash
|
||||||
|
|
||||||
@@ -155,6 +155,7 @@ class User(object):
|
|||||||
"""
|
"""
|
||||||
Remove all repo decryption passwords stored on server.
|
Remove all repo decryption passwords stored on server.
|
||||||
"""
|
"""
|
||||||
|
from seahub.utils import get_user_repos
|
||||||
owned_repos, shared_repos, groups_repos, public_repos = get_user_repos(self)
|
owned_repos, shared_repos, groups_repos, public_repos = get_user_repos(self)
|
||||||
|
|
||||||
def has_repo(repos, repo):
|
def has_repo(repos, repo):
|
||||||
|
@@ -14,10 +14,12 @@ from django.utils.translation import ungettext
|
|||||||
from django.utils.translation import pgettext
|
from django.utils.translation import pgettext
|
||||||
|
|
||||||
from profile.models import Profile
|
from profile.models import Profile
|
||||||
from profile.settings import NICKNAME_CACHE_TIMEOUT, NICKNAME_CACHE_PREFIX
|
from profile.settings import NICKNAME_CACHE_TIMEOUT, NICKNAME_CACHE_PREFIX, \
|
||||||
|
EMAIL_ID_CACHE_TIMEOUT, EMAIL_ID_CACHE_PREFIX
|
||||||
from seahub.cconvert import CConvert
|
from seahub.cconvert import CConvert
|
||||||
from seahub.po import TRANSLATION_MAP
|
from seahub.po import TRANSLATION_MAP
|
||||||
from seahub.shortcuts import get_first_object_or_none
|
from seahub.shortcuts import get_first_object_or_none
|
||||||
|
from base.accounts import User
|
||||||
|
|
||||||
|
|
||||||
register = template.Library()
|
register = template.Library()
|
||||||
@@ -227,6 +229,25 @@ def email2nickname(value):
|
|||||||
nickname = profile.nickname if profile else value.split('@')[0]
|
nickname = profile.nickname if profile else value.split('@')[0]
|
||||||
cache.set(NICKNAME_CACHE_PREFIX+value, nickname, NICKNAME_CACHE_TIMEOUT)
|
cache.set(NICKNAME_CACHE_PREFIX+value, nickname, NICKNAME_CACHE_TIMEOUT)
|
||||||
return nickname
|
return nickname
|
||||||
|
|
||||||
|
@register.filter(name='email2id')
|
||||||
|
def email2id(value):
|
||||||
|
"""
|
||||||
|
Return the user id of an email or -1.
|
||||||
|
"""
|
||||||
|
if not value:
|
||||||
|
return -1
|
||||||
|
|
||||||
|
user_id = cache.get(EMAIL_ID_CACHE_PREFIX+value)
|
||||||
|
if not user_id:
|
||||||
|
try:
|
||||||
|
user = User.objects.get(email=value)
|
||||||
|
user_id = user.id
|
||||||
|
except User.DoesNotExist:
|
||||||
|
user_id = -1
|
||||||
|
cache.set(EMAIL_ID_CACHE_PREFIX+value, user_id, EMAIL_ID_CACHE_TIMEOUT)
|
||||||
|
return user_id
|
||||||
|
|
||||||
|
|
||||||
@register.filter(name='url_target_blank')
|
@register.filter(name='url_target_blank')
|
||||||
def url_target_blank(text):
|
def url_target_blank(text):
|
||||||
|
@@ -30,7 +30,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
{% for member in members %}
|
{% for member in members %}
|
||||||
{% if forloop.counter0 < group_members_default_display %}
|
{% if forloop.counter0 < group_members_default_display %}
|
||||||
<li class="member">{% avatar member.user_name 16 %}<a class="name" href="{{ SITE_ROOT }}profile/{{ member.user_name }}/">{{ member.user_name|email2nickname }}</a></li>
|
<li class="member">{% avatar member.user_name 16 %}<a class="name" href="{{ SITE_ROOT }}profile/{{ member.user_name|email2id }}/">{{ member.user_name|email2nickname }}</a></li>
|
||||||
{% else %}
|
{% else %}
|
||||||
{% if forloop.last %}
|
{% if forloop.last %}
|
||||||
<li>...</li>
|
<li>...</li>
|
||||||
@@ -74,7 +74,7 @@
|
|||||||
{% if is_staff or msg.from_email == request.user.username %}
|
{% if is_staff or msg.from_email == request.user.username %}
|
||||||
<span class="msg-del op fright vh" data-url="{% url 'group_message_remove' group.id msg.id %}">{% trans "Delete" %}</span>
|
<span class="msg-del op fright vh" data-url="{% url 'group_message_remove' group.id msg.id %}">{% trans "Delete" %}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<a href="{% url 'user_profile' msg.from_email %}" title="{{ msg.from_email }}" class="author">{{ msg.from_email|email2nickname }}</a>
|
<a href="{{ SITE_ROOT }}profile/{{ msg.from_email|email2id }}/" title="{{ msg.from_email }}" class="author">{{ msg.from_email|email2nickname }}</a>
|
||||||
<span class="time">{{ msg.timestamp|translate_seahub_time }}</span>
|
<span class="time">{{ msg.timestamp|translate_seahub_time }}</span>
|
||||||
</div>
|
</div>
|
||||||
<p class="msg-con">{{ msg.message|seahub_urlize|find_at|linebreaksbr }}</p>
|
<p class="msg-con">{{ msg.message|seahub_urlize|find_at|linebreaksbr }}</p>
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
<li class="reply w100 ovhd">
|
<li class="reply w100 ovhd">
|
||||||
<a href="{% url 'user_profile' r.from_email %}" class="pic fleft">{% avatar r.from_email 28 %}</a>
|
<a href="{% url 'user_profile' r.from_email %}" class="pic fleft">{% avatar r.from_email 28 %}</a>
|
||||||
<div class="txt fright">
|
<div class="txt fright">
|
||||||
<a href="{% url 'user_profile' r.from_email %}">{{ r.from_email|email2nickname }}</a>
|
<a href="{{ SITE_ROOT }}profile/{{ r.from_email|email2id }}/">{{ r.from_email|email2nickname }}</a>
|
||||||
<span class="time">{{ r.timestamp|translate_seahub_time }}</span>
|
<span class="time">{{ r.timestamp|translate_seahub_time }}</span>
|
||||||
<span class="reply-at op vh" data="{{ r.from_email|email2nickname }}">{% trans 'Reply' %}</span>
|
<span class="reply-at op vh" data="{{ r.from_email|email2nickname }}">{% trans 'Reply' %}</span>
|
||||||
<p class="reply-con">{{ r.message|seahub_urlize|find_at }}</p>
|
<p class="reply-con">{{ r.message|seahub_urlize|find_at }}</p>
|
||||||
|
100
group/views.py
100
group/views.py
@@ -59,6 +59,12 @@ from seahub.forms import RepoCreateForm, SharedRepoCreateForm
|
|||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
def is_group_staff(group, user):
|
||||||
|
if user.is_anonymous():
|
||||||
|
return False
|
||||||
|
return ccnet_threaded_rpc.check_group_staff(group.id, user.username)
|
||||||
|
|
||||||
|
|
||||||
def group_check(func):
|
def group_check(func):
|
||||||
"""
|
"""
|
||||||
Decorator for initial group permission check tasks
|
Decorator for initial group permission check tasks
|
||||||
@@ -89,8 +95,7 @@ def group_check(func):
|
|||||||
joined = is_group_user(group_id_int, request.user.username)
|
joined = is_group_user(group_id_int, request.user.username)
|
||||||
if joined:
|
if joined:
|
||||||
group.view_perm = "joined"
|
group.view_perm = "joined"
|
||||||
if check_group_staff(group.id, request.user):
|
group.is_staff = is_group_staff(group, user)
|
||||||
group.is_staff = True
|
|
||||||
return func(request, group, *args, **kwargs)
|
return func(request, group, *args, **kwargs)
|
||||||
if request.user.is_staff:
|
if request.user.is_staff:
|
||||||
# viewed by system admin
|
# viewed by system admin
|
||||||
@@ -187,31 +192,23 @@ def group_dismiss(request, group_id):
|
|||||||
"""
|
"""
|
||||||
Dismiss a group, only group staff can perform this operation.
|
Dismiss a group, only group staff can perform this operation.
|
||||||
"""
|
"""
|
||||||
next = request.META.get('HTTP_REFERER', None)
|
|
||||||
if not next:
|
|
||||||
next = SITE_ROOT
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
group_id_int = int(group_id)
|
group_id_int = int(group_id)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
return HttpResponseRedirect(next)
|
return HttpResponseRedirect(reverse('group_list', args=[]))
|
||||||
|
|
||||||
|
group = get_group(group_id_int)
|
||||||
|
if not group:
|
||||||
|
return HttpResponseRedirect(reverse('group_list', args=[]))
|
||||||
|
|
||||||
# Check whether user is group staff
|
# Check whether user is group staff
|
||||||
user = request.user.username
|
if not is_group_staff(group, request.user):
|
||||||
if not ccnet_threaded_rpc.check_group_staff(group_id_int, user):
|
|
||||||
return render_permission_error(request, _(u'Only administrators can dismiss the group'))
|
return render_permission_error(request, _(u'Only administrators can dismiss the group'))
|
||||||
|
|
||||||
|
username = request.user.username
|
||||||
try:
|
try:
|
||||||
ccnet_threaded_rpc.remove_group(group_id_int, user)
|
ccnet_threaded_rpc.remove_group(group.id, username)
|
||||||
seafserv_threaded_rpc.remove_repo_group(group_id_int, None)
|
seafserv_threaded_rpc.remove_repo_group(group.id, None)
|
||||||
|
|
||||||
if request.user.org:
|
|
||||||
org_id = request.user.org['org_id']
|
|
||||||
url_prefix = request.user.org['url_prefix']
|
|
||||||
ccnet_threaded_rpc.remove_org_group(org_id, group_id_int)
|
|
||||||
return HttpResponseRedirect(reverse('org_groups',
|
|
||||||
args=[url_prefix]))
|
|
||||||
|
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
return render_error(request, _(e.msg))
|
return render_error(request, _(e.msg))
|
||||||
|
|
||||||
@@ -222,8 +219,8 @@ def group_quit(request, group_id):
|
|||||||
try:
|
try:
|
||||||
group_id_int = int(group_id)
|
group_id_int = int(group_id)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
return render_error(request, _(u'group id is not a valid argument.'))
|
return HttpResponseRedirect(reverse('group_list', args=[]))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
ccnet_threaded_rpc.quit_group(group_id_int, request.user.username)
|
ccnet_threaded_rpc.quit_group(group_id_int, request.user.username)
|
||||||
seafserv_threaded_rpc.remove_repo_group(group_id_int,
|
seafserv_threaded_rpc.remove_repo_group(group_id_int,
|
||||||
@@ -239,11 +236,14 @@ def group_message_remove(request, group_id, msg_id):
|
|||||||
Remove group message and all message replies and attachments.
|
Remove group message and all message replies and attachments.
|
||||||
"""
|
"""
|
||||||
# Checked by URL Conf
|
# Checked by URL Conf
|
||||||
group_id = int(group_id)
|
group_id_int = int(group_id)
|
||||||
msg_id = int(msg_id)
|
msg_id = int(msg_id)
|
||||||
|
group = get_group(group_id_int)
|
||||||
|
if not group:
|
||||||
|
raise Http404
|
||||||
|
|
||||||
# Test whether user is in the group
|
# Test whether user is in the group
|
||||||
if not is_group_user(group_id, request.user.username):
|
if not is_group_user(group, request.user):
|
||||||
raise Http404
|
raise Http404
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -253,7 +253,7 @@ def group_message_remove(request, group_id, msg_id):
|
|||||||
content_type='application/json; charset=utf-8')
|
content_type='application/json; charset=utf-8')
|
||||||
else:
|
else:
|
||||||
# Test whether user is group admin or message owner.
|
# Test whether user is group admin or message owner.
|
||||||
if check_group_staff(group_id, request.user) or \
|
if check_group_staff(group.id, request.user) or \
|
||||||
gm.from_email == request.user.username:
|
gm.from_email == request.user.username:
|
||||||
gm.delete()
|
gm.delete()
|
||||||
return HttpResponse(json.dumps({'success': True}),
|
return HttpResponse(json.dumps({'success': True}),
|
||||||
@@ -362,18 +362,18 @@ def msg_reply_new(request):
|
|||||||
}, context_instance=RequestContext(request))
|
}, context_instance=RequestContext(request))
|
||||||
|
|
||||||
|
|
||||||
def group_info_for_anonymous(request, group):
|
def group_info_for_pub(request, group):
|
||||||
return render_to_response("group/group_info_for_anonymous.html", {
|
return render_to_response("group/group_info_for_pub.html", {
|
||||||
"repos": [],
|
"repos": [],
|
||||||
"group" : group,
|
"group": group,
|
||||||
}, context_instance=RequestContext(request));
|
}, context_instance=RequestContext(request))
|
||||||
|
|
||||||
|
|
||||||
@group_check
|
@group_check
|
||||||
def group_info(request, group):
|
def group_info(request, group):
|
||||||
|
|
||||||
if group.view_perm == "pub":
|
if group.view_perm == "pub":
|
||||||
return group_info_for_anonymous(request, group)
|
return group_info_for_pub(request, group)
|
||||||
|
|
||||||
# Get all group members.
|
# Get all group members.
|
||||||
members = get_group_members(group.id)
|
members = get_group_members(group.id)
|
||||||
@@ -414,9 +414,11 @@ def group_info(request, group):
|
|||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@group_staff_required
|
@group_staff_required
|
||||||
@group_check
|
def group_manage(request, group_id):
|
||||||
def group_manage(request, group):
|
group_id_int = int(group_id) # Checked by URL Conf
|
||||||
|
group = get_group(group_id_int)
|
||||||
|
if not group:
|
||||||
|
return HttpResponseRedirect(reverse('group_list', args=[]))
|
||||||
user = request.user.username
|
user = request.user.username
|
||||||
|
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
@@ -602,21 +604,25 @@ def group_member_operations(request, group_id, user_name):
|
|||||||
else:
|
else:
|
||||||
return HttpResponseRedirect(reverse('group_manage', args=[group_id]))
|
return HttpResponseRedirect(reverse('group_manage', args=[group_id]))
|
||||||
|
|
||||||
@login_required
|
|
||||||
def group_remove_member(request, group_id, user_name):
|
def group_remove_member(request, group_id, user_name):
|
||||||
try:
|
try:
|
||||||
group_id_int = int(group_id)
|
group_id_int = int(group_id)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
return render_error(request, _(u'group id is not valid'))
|
return render_error(request, _(u'group id is not valid'))
|
||||||
|
|
||||||
if not check_group_staff(group_id_int, request.user):
|
group = get_group(group_id_int)
|
||||||
|
if not group:
|
||||||
|
raise Http404
|
||||||
|
|
||||||
|
if not is_group_staff(group, request.user):
|
||||||
raise Http404
|
raise Http404
|
||||||
|
|
||||||
try:
|
try:
|
||||||
ccnet_threaded_rpc.group_remove_member(group_id_int,
|
ccnet_threaded_rpc.group_remove_member(group.id,
|
||||||
request.user.username,
|
request.user.username,
|
||||||
user_name)
|
user_name)
|
||||||
seafserv_threaded_rpc.remove_repo_group(group_id_int, user_name)
|
seafserv_threaded_rpc.remove_repo_group(group.id, user_name)
|
||||||
messages.success(request, _(u'Operation succeeded.'))
|
messages.success(request, _(u'Operation succeeded.'))
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
messages.error(request, _(u'Failed:%s') % _(e.msg))
|
messages.error(request, _(u'Failed:%s') % _(e.msg))
|
||||||
@@ -728,7 +734,8 @@ def create_group_repo(request, group_id):
|
|||||||
return HttpResponseBadRequest(json.dumps(result),
|
return HttpResponseBadRequest(json.dumps(result),
|
||||||
content_type=content_type)
|
content_type=content_type)
|
||||||
group_id = int(group_id)
|
group_id = int(group_id)
|
||||||
if not get_group(group_id):
|
group = get_group(group_id)
|
||||||
|
if not group:
|
||||||
return json_error(_(u'Failed to create: the group does not exist.'))
|
return json_error(_(u'Failed to create: the group does not exist.'))
|
||||||
|
|
||||||
# Check whether user belongs to the group.
|
# Check whether user belongs to the group.
|
||||||
@@ -746,7 +753,7 @@ def create_group_repo(request, group_id):
|
|||||||
passwd = form.cleaned_data['passwd']
|
passwd = form.cleaned_data['passwd']
|
||||||
user = request.user.username
|
user = request.user.username
|
||||||
|
|
||||||
org, base_template = check_and_get_org_by_group(group_id, user)
|
org, base_template = check_and_get_org_by_group(group.id, user)
|
||||||
if org:
|
if org:
|
||||||
# create group repo in org context
|
# create group repo in org context
|
||||||
try:
|
try:
|
||||||
@@ -760,7 +767,7 @@ def create_group_repo(request, group_id):
|
|||||||
try:
|
try:
|
||||||
status = seafserv_threaded_rpc.add_org_group_repo(repo_id,
|
status = seafserv_threaded_rpc.add_org_group_repo(repo_id,
|
||||||
org.org_id,
|
org.org_id,
|
||||||
group_id,
|
group.id,
|
||||||
user,
|
user,
|
||||||
permission)
|
permission)
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
@@ -782,7 +789,7 @@ def create_group_repo(request, group_id):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
status = seafserv_threaded_rpc.group_share_repo(repo_id,
|
status = seafserv_threaded_rpc.group_share_repo(repo_id,
|
||||||
group_id,
|
group.id,
|
||||||
user,
|
user,
|
||||||
permission)
|
permission)
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
@@ -809,7 +816,7 @@ def group_joinrequest(request, group_id):
|
|||||||
content_type = 'application/json; charset=utf-8'
|
content_type = 'application/json; charset=utf-8'
|
||||||
|
|
||||||
group_id = int(group_id)
|
group_id = int(group_id)
|
||||||
group =get_group(group_id)
|
group = get_group(group_id)
|
||||||
if not group:
|
if not group:
|
||||||
raise Http404
|
raise Http404
|
||||||
|
|
||||||
@@ -933,10 +940,7 @@ def group_discuss(request, group):
|
|||||||
detail=str(group.id)).delete()
|
detail=str(group.id)).delete()
|
||||||
|
|
||||||
# Get all group members.
|
# Get all group members.
|
||||||
if group.view_perm == "pub":
|
members = get_group_members(group.id)
|
||||||
members = []
|
|
||||||
else:
|
|
||||||
members = get_group_members(group.id)
|
|
||||||
|
|
||||||
"""group messages"""
|
"""group messages"""
|
||||||
# Show 15 group messages per page.
|
# Show 15 group messages per page.
|
||||||
|
@@ -2,3 +2,6 @@ from django.conf import settings
|
|||||||
|
|
||||||
NICKNAME_CACHE_TIMEOUT = getattr(settings, 'NICKNAME_CACHE_TIMEOUT', 24 * 60 * 60)
|
NICKNAME_CACHE_TIMEOUT = getattr(settings, 'NICKNAME_CACHE_TIMEOUT', 24 * 60 * 60)
|
||||||
NICKNAME_CACHE_PREFIX = getattr(settings, 'NICKNAME_CACHE_PREFIX', 'NICKNAME_')
|
NICKNAME_CACHE_PREFIX = getattr(settings, 'NICKNAME_CACHE_PREFIX', 'NICKNAME_')
|
||||||
|
|
||||||
|
EMAIL_ID_CACHE_TIMEOUT = getattr(settings, 'EMAIL_ID_CACHE_TIMEOUT', 24 * 60 * 60)
|
||||||
|
EMAIL_ID_CACHE_PREFIX = getattr(settings, 'EMAIL_ID_CACHE_PREFIX', 'EMAIL_ID_')
|
||||||
|
@@ -1,12 +1,16 @@
|
|||||||
{% extends "profile/profile_base.html" %}
|
{% extends "profile/profile_base.html" %}
|
||||||
{% load avatar_tags i18n %}
|
{% load avatar_tags i18n seahub_tags %}
|
||||||
|
|
||||||
{% block main_panel %}
|
{% block main_panel %}
|
||||||
{% if not err_msg %}
|
|
||||||
<div class="user-profile narrow-panel ovhd">
|
<div class="user-profile narrow-panel ovhd">
|
||||||
<div class="pic fleft">
|
<div class="pic fleft">
|
||||||
{% avatar email 80 %}
|
{% if user %}
|
||||||
{% if new_user %}
|
{% avatar user.username 80 %}
|
||||||
|
{% else %}
|
||||||
|
{% avatar "" 80 %}
|
||||||
|
{% endif %}
|
||||||
|
{% if add_to_contact %}
|
||||||
<button id="add">{% trans "Add to contacts" %}</button>
|
<button id="add">{% trans "Add to contacts" %}</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
@@ -14,17 +18,17 @@
|
|||||||
<div class="txt fright">
|
<div class="txt fright">
|
||||||
{% if nickname %}
|
{% if nickname %}
|
||||||
<p>{{ nickname }}</p>
|
<p>{{ nickname }}</p>
|
||||||
|
{% else %}
|
||||||
|
<p>{{ email|email2nickname }}</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<p>{{ email }}</p>
|
|
||||||
|
|
||||||
{% if intro %}
|
{% if intro %}
|
||||||
<p class="intro">{{ intro }}</p>
|
<p class="intro">{{ intro }}</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if new_user %}
|
{% if add_to_contact %}
|
||||||
<form id="add-as-contact" class="hide" action="{{ SITE_ROOT }}contacts/add/" method="post">
|
<form id="add-as-contact" class="hide" action="{{ SITE_ROOT }}contacts/add/" method="post">
|
||||||
<input type="hidden" name="user_email" value="{{ request.user.username }}" id="id_user_email" />
|
<input type="hidden" name="user_email" value="{{ request.user.username }}" id="id_user_email" />
|
||||||
<label>{% trans "Email: " %}</label><br />
|
<label>{% trans "Email: " %}</label><br />
|
||||||
@@ -37,11 +41,6 @@
|
|||||||
</form>
|
</form>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% else %}
|
|
||||||
<div class="text-panel">
|
|
||||||
<p class="error">{{ err_msg }}</p>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block extra_script %}
|
{% block extra_script %}
|
||||||
|
@@ -3,7 +3,7 @@ from django.conf.urls.defaults import *
|
|||||||
urlpatterns = patterns('profile.views',
|
urlpatterns = patterns('profile.views',
|
||||||
# url(r'^list_user/$', 'list_userids', name="list_userids"),
|
# url(r'^list_user/$', 'list_userids', name="list_userids"),
|
||||||
url(r'^$', 'edit_profile', name="edit_profile"),
|
url(r'^$', 'edit_profile', name="edit_profile"),
|
||||||
url(r'^(?P<user>[^/]+)/$', 'user_profile', name="user_profile"),
|
url(r'^(?P<username_or_id>[^/]+)/$', 'user_profile', name="user_profile"),
|
||||||
url(r'^(?P<user>[^/]+)/get/$', 'get_user_profile', name="get_user_profile"),
|
url(r'^(?P<user>[^/]+)/get/$', 'get_user_profile', name="get_user_profile"),
|
||||||
# url(r'^logout/$', 'logout_relay', name="logout_relay"),
|
# url(r'^logout/$', 'logout_relay', name="logout_relay"),
|
||||||
)
|
)
|
||||||
|
@@ -60,37 +60,38 @@ def edit_profile(request):
|
|||||||
}, context_instance=RequestContext(request))
|
}, context_instance=RequestContext(request))
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def user_profile(request, user):
|
def user_profile(request, username_or_id):
|
||||||
user_nickname = ''
|
user_nickname = ''
|
||||||
user_intro = ''
|
user_intro = ''
|
||||||
|
user = None
|
||||||
|
|
||||||
|
# fetch the user by username or id, try id first
|
||||||
try:
|
try:
|
||||||
user_check = User.objects.get(email=user)
|
user_id = int(username_or_id)
|
||||||
except User.DoesNotExist:
|
try:
|
||||||
user_check = None
|
user = User.objects.get(id=user_id)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
except ValueError:
|
||||||
|
try:
|
||||||
|
user = User.objects.get(email=username_or_id)
|
||||||
|
except User.DoesNotExist:
|
||||||
|
pass
|
||||||
|
|
||||||
if user_check:
|
if user:
|
||||||
profile = Profile.objects.filter(user=user)
|
profile = Profile.objects.filter(user=user)
|
||||||
if profile:
|
if profile:
|
||||||
profile = profile[0]
|
profile = profile[0]
|
||||||
user_nickname = profile.nickname
|
user_nickname = profile.nickname
|
||||||
user_intro = profile.intro
|
user_intro = profile.intro
|
||||||
else:
|
else:
|
||||||
nickname = user
|
user_nickname = ""
|
||||||
user_intro = _(u'Has not accepted invitation yet')
|
user_intro = _(u'Has not accepted invitation yet')
|
||||||
|
|
||||||
if user == request.user.username or \
|
|
||||||
Contact.objects.filter(user_email=request.user.username,
|
|
||||||
contact_email=user).count() > 0:
|
|
||||||
new_user = False
|
|
||||||
else:
|
|
||||||
new_user = True
|
|
||||||
print new_user
|
|
||||||
return render_to_response('profile/user_profile.html', {
|
return render_to_response('profile/user_profile.html', {
|
||||||
'email': user,
|
'email': user.username,
|
||||||
'nickname': user_nickname,
|
'nickname': user_nickname,
|
||||||
'intro': user_intro,
|
'intro': user_intro,
|
||||||
'new_user': new_user,
|
|
||||||
}, context_instance=RequestContext(request))
|
}, context_instance=RequestContext(request))
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
Reference in New Issue
Block a user