1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-01 23:20:51 +00:00

Removed org

This commit is contained in:
zhengxie
2013-04-02 19:56:44 +08:00
parent 12dae03ad5
commit 355d461521
8 changed files with 46 additions and 102 deletions

View File

@@ -15,39 +15,39 @@ def sys_staff_required(func):
raise Http404 raise Http404
return _decorated return _decorated
def ctx_switch_required(func): # def ctx_switch_required(func):
""" # """
Decorator for views to change navigation bar automatically that render # Decorator for views to change navigation bar automatically that render
same template when both in org context and personal context. # same template when both in org context and personal context.
""" # """
def _decorated(request, *args, **kwargs): # def _decorated(request, *args, **kwargs):
if not request.cloud_mode: # if not request.cloud_mode:
# no need to switch context when `CLOUD_MODE` is false # # no need to switch context when `CLOUD_MODE` is false
request.user.org = None # request.user.org = None
request.base_template = 'myhome_base.html' # request.base_template = 'myhome_base.html'
return func(request, *args, **kwargs) # return func(request, *args, **kwargs)
repo_id = kwargs.get('repo_id', '') # repo_id = kwargs.get('repo_id', '')
group_id = kwargs.get('group_id', '') # group_id = kwargs.get('group_id', '')
if repo_id and group_id: # if repo_id and group_id:
return func(request, *args, **kwargs) # return func(request, *args, **kwargs)
if not repo_id and not group_id: # if not repo_id and not group_id:
return func(request, *args, **kwargs) # return func(request, *args, **kwargs)
user = request.user.username # user = request.user.username
if repo_id: # if repo_id:
org, base_template = check_and_get_org_by_repo(repo_id, user) # org, base_template = check_and_get_org_by_repo(repo_id, user)
if group_id: # if group_id:
org, base_template = check_and_get_org_by_group(int(group_id), user) # org, base_template = check_and_get_org_by_group(int(group_id), user)
if org: # if org:
request.user.org = org._dict # request.user.org = org._dict
else: # else:
request.user.org = None # request.user.org = None
request.base_template = base_template # request.base_template = base_template
return func(request, *args, **kwargs) # return func(request, *args, **kwargs)
return _decorated # return _decorated
def repo_passwd_set_required(func): def repo_passwd_set_required(func):
""" """

View File

@@ -1,7 +1,7 @@
from django.utils.decorators import method_decorator from django.utils.decorators import method_decorator
from auth.decorators import login_required from auth.decorators import login_required
from base.decorators import ctx_switch_required # from base.decorators import ctx_switch_required
class LoginRequiredMixin(object): class LoginRequiredMixin(object):
""" """
@@ -15,8 +15,8 @@ class LoginRequiredMixin(object):
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
return super(LoginRequiredMixin, self).dispatch(*args, **kwargs) return super(LoginRequiredMixin, self).dispatch(*args, **kwargs)
class CtxSwitchRequiredMixin(object): # class CtxSwitchRequiredMixin(object):
@method_decorator(ctx_switch_required) # @method_decorator(ctx_switch_required)
def dispatch(self, *args, **kwargs): # def dispatch(self, *args, **kwargs):
return super(CtxSwitchRequiredMixin, self).dispatch(*args, **kwargs) # return super(CtxSwitchRequiredMixin, self).dispatch(*args, **kwargs)

View File

@@ -133,7 +133,7 @@ INSTALLED_APPS = (
'seahub.contacts', 'seahub.contacts',
'seahub.group', 'seahub.group',
'seahub.notifications', 'seahub.notifications',
'seahub.organizations', # 'seahub.organizations',
'seahub.profile', 'seahub.profile',
'seahub.share', 'seahub.share',
'api2', 'api2',

View File

@@ -31,31 +31,10 @@
<div class="top-bar-inner"> <div class="top-bar-inner">
<div class="top-bar-con"> <div class="top-bar-con">
<div class="manage fleft"> <div class="manage fleft">
{% if request.user.is_authenticated %}
{% if cloud_mode %}
<a href="#" id="account-context" data="no-popup">
{% if org %} {{ org.org_name }} {% else %} {% trans "Personal" %} {% endif %}
<span class="tri-bg tri-down-bg"></span>
</a>
<ul class="hide" id="account-context-selector">
<li><a href="{% url 'myhome' %}">{% trans "Personal" %}</a></li>
{% for org in request.user.orgs %}
<li><a href="{% url 'org_personal' org.url_prefix %}">{{ org.org_name }}</a></li>
{% endfor %}
<li><a href="{% url 'create_org' %}">{% trans "New Organization" %}</a></li>
</ul>
{% endif %}
{% endif %}
{% if request.user.is_staff %} {% if request.user.is_staff %}
<a href="{{ SITE_ROOT }}sys/useradmin/"{% block top_bar_sys_manager_class %}{% endblock %}>{% trans "System Admin" %}</a> <a href="{{ SITE_ROOT }}sys/useradmin/"{% block top_bar_sys_manager_class %}{% endblock %}>{% trans "System Admin" %}</a>
<a href="{{ SITE_ROOT }}home/my/"{% block top_bar_myaccount_class %}{% endblock %}>{% trans "Workspace" %}</a> <a href="{{ SITE_ROOT }}home/my/"{% block top_bar_myaccount_class %}{% endblock %}>{% trans "Workspace" %}</a>
{% endif %} {% endif %}
{% if org.is_staff %}
<a href="{% url 'org_admin' org.url_prefix %}"{% block top_bar_org_manager_class %}{% endblock %}>{% trans "Admin" %}</a>
<a href="{% url 'org_personal' org.url_prefix %}"{% block top_bar_org_myaccount_class %}{% endblock %}>{% trans "Workspace" %}</a>
{% endif %}
</div> </div>
<div class="account fright"> <div class="account fright">
@@ -133,7 +112,7 @@
<ul> <ul>
<li><a href="http://seafile.com/{% if LANGUAGE_CODE == 'en' %}en/{% endif %}home/" target="_blank">{% trans "Introduction" %}</a></li> <li><a href="http://seafile.com/{% if LANGUAGE_CODE == 'en' %}en/{% endif %}home/" target="_blank">{% trans "Introduction" %}</a></li>
<li><a href="https://github.com/haiwen/seafile/wiki{% if LANGUAGE_CODE == 'zh-cn' %}/Seafile-服务器手册中文版{% endif %}" target="_blank">Wiki</a></li> <li><a href="https://github.com/haiwen/seafile/wiki{% if LANGUAGE_CODE == 'zh-cn' %}/Seafile-服务器手册中文版{% endif %}" target="_blank">Wiki</a></li>
{% if LANGUAGE_CODE == 'zh-cn' %}<li><a href="http://gonggeng.org/vanilla/" target="_blank">{% trans "Forum" %}</a></li>{% endif %} {% if LANGUAGE_CODE == 'zh-cn' %}<li><a href="http://bbs.seafile.com/" target="_blank"> {% else %}<li><a href="https://groups.google.com/forum/#!forum/seafile" target="_blank"> {% endif %}{% trans "Forum" %}</a></li>
</ul> </ul>
</div> </div>
<div class="item"> <div class="item">
@@ -182,29 +161,6 @@ $('#info-bar .close').click(function() {
} }
} }
}); });
{% endif %}
{% if request.cloud_mode %}
$('#account-context').click(function() {
if ($(this).attr('data') == 'no-popup') {
$(this).parent().css('position', 'relative');
$('#account-context-selector').removeClass('hide');
$(this).attr('data', 'has-popup');
} else {
$('#account-context-selector').addClass('hide');
$(this).attr('data', 'no-popup');
}
return false;
}).focus(function() { $(this).blur(); });
$(document).click(function(e) {
var element = e.target || e.srcElement;
if (element.id != 'account-context-selector' && element.id != 'account-context') {
$('#account-context-selector').addClass('hide');
$('#account-context').attr('data', 'no-popup');
}
});
{% endif %} {% endif %}
{% endif %} {% endif %}
</script> </script>

View File

@@ -117,7 +117,7 @@ except ImportError:
CLOUD_MODE = False CLOUD_MODE = False
if CLOUD_MODE: if CLOUD_MODE:
urlpatterns += patterns('', urlpatterns += patterns('',
(r'^organizations/', include('seahub.organizations.urls')), # (r'^organizations/', include('seahub.organizations.urls')),
(r'^demo/', demo), (r'^demo/', demo),
) )
else: else:

View File

@@ -46,7 +46,7 @@ from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_repos, get_emailusers, \
from pysearpc import SearpcError from pysearpc import SearpcError
from seahub.base.accounts import User from seahub.base.accounts import User
from seahub.base.decorators import sys_staff_required, ctx_switch_required from seahub.base.decorators import sys_staff_required
from seahub.base.models import UuidObjidMap, FileComment, InnerPubMsg, InnerPubMsgReply from seahub.base.models import UuidObjidMap, FileComment, InnerPubMsg, InnerPubMsgReply
from seahub.contacts.models import Contact from seahub.contacts.models import Contact
from seahub.contacts.signals import mail_sended from seahub.contacts.signals import mail_sended
@@ -280,7 +280,6 @@ def render_recycle_dir(request, repo_id, commit_id):
}, context_instance=RequestContext(request)) }, context_instance=RequestContext(request))
@login_required @login_required
@ctx_switch_required
def repo_recycle_view(request, repo_id): def repo_recycle_view(request, repo_id):
if get_user_permission(request, repo_id) != 'rw': if get_user_permission(request, repo_id) != 'rw':
return render_permission_error(request, _(u'Unable to view recycle page')) return render_permission_error(request, _(u'Unable to view recycle page'))
@@ -292,7 +291,6 @@ def repo_recycle_view(request, repo_id):
return render_recycle_dir(request, repo_id, commit_id) return render_recycle_dir(request, repo_id, commit_id)
@login_required @login_required
@ctx_switch_required
def repo_save_settings(request): def repo_save_settings(request):
if request.method != 'POST': if request.method != 'POST':
raise Http404 raise Http404
@@ -360,7 +358,6 @@ def upload_error_msg (code):
err_msg = _(u'An error occurs during file transfer') err_msg = _(u'An error occurs during file transfer')
return err_msg return err_msg
@ctx_switch_required
def upload_file_error(request, repo_id): def upload_file_error(request, repo_id):
if request.method == 'GET': if request.method == 'GET':
repo = get_repo(repo_id) repo = get_repo(repo_id)
@@ -384,7 +381,6 @@ def upload_file_error(request, repo_id):
'err_msg': err_msg, 'err_msg': err_msg,
}, context_instance=RequestContext(request)) }, context_instance=RequestContext(request))
@ctx_switch_required
def update_file_error(request, repo_id): def update_file_error(request, repo_id):
if request.method == 'GET': if request.method == 'GET':
repo = get_repo(repo_id) repo = get_repo(repo_id)
@@ -451,7 +447,6 @@ def get_subdir(request):
content_type=content_type) content_type=content_type)
@login_required @login_required
@ctx_switch_required
def repo_history(request, repo_id): def repo_history(request, repo_id):
""" """
List library modification histories. List library modification histories.
@@ -504,7 +499,6 @@ def repo_history(request, repo_id):
}, context_instance=RequestContext(request)) }, context_instance=RequestContext(request))
@login_required @login_required
@ctx_switch_required
def repo_view_snapshot(request, repo_id): def repo_view_snapshot(request, repo_id):
if not access_to_repo(request, repo_id, ''): if not access_to_repo(request, repo_id, ''):
return render_permission_error(request, _(u'Unable to view library snapshots')) return render_permission_error(request, _(u'Unable to view library snapshots'))
@@ -697,7 +691,7 @@ def repo_remove(request, repo_id):
) )
else: else:
err_msg = _(u'Failed to remove library. Only staff or owner can perform this operation.') err_msg = _(u'Failed to remove library. Only staff or owner can perform this operation.')
return render_permission_error(request, err_msg) messages.error(request, err_msg)
else: else:
# Remove repo in personal context, only repo owner or site staff can # Remove repo in personal context, only repo owner or site staff can
# perform this operation. # perform this operation.
@@ -711,9 +705,10 @@ def repo_remove(request, repo_id):
repo_id=repo_id, repo_id=repo_id,
repo_name=repo.name, repo_name=repo.name,
) )
messages.success(request, _(u'Successfully deleted library "%s".') % repo.name)
else: else:
err_msg = _(u'Failed to remove library. Only staff or owner can perform this operation.') err_msg = _(u'Failed to remove library. Only staff or owner can perform this operation.')
return render_permission_error(request, err_msg) messages.error(request, err_msg)
next = request.META.get('HTTP_REFERER', None) next = request.META.get('HTTP_REFERER', None)
if not next: if not next:
@@ -1977,7 +1972,6 @@ def repo_revert_dir (request, repo_id):
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@login_required @login_required
@ctx_switch_required
def file_revisions(request, repo_id): def file_revisions(request, repo_id):
if request.method != 'GET': if request.method != 'GET':
return render_error(request) return render_error(request)

View File

@@ -28,7 +28,7 @@ from seaserv import list_dir_by_path, get_repo, web_get_access_token, \
from pysearpc import SearpcError from pysearpc import SearpcError
from auth.decorators import login_required from auth.decorators import login_required
from base.decorators import ctx_switch_required, repo_passwd_set_required from base.decorators import repo_passwd_set_required
from base.models import UuidObjidMap, FileComment from base.models import UuidObjidMap, FileComment
from contacts.models import Contact from contacts.models import Contact
from share.models import FileShare from share.models import FileShare
@@ -251,7 +251,6 @@ def convert_md_link(file_content, repo_id, username):
return re.sub(r'\[\[(.+)\]\]|(`.+`)', repl, file_content) return re.sub(r'\[\[(.+)\]\]|(`.+`)', repl, file_content)
@ctx_switch_required
@repo_passwd_set_required @repo_passwd_set_required
def view_file(request, repo_id): def view_file(request, repo_id):
""" """
@@ -489,7 +488,6 @@ def view_history_file_common(request, repo_id, ret_dict):
ret_dict['DOCUMENT_CONVERTOR_ROOT'] = DOCUMENT_CONVERTOR_ROOT ret_dict['DOCUMENT_CONVERTOR_ROOT'] = DOCUMENT_CONVERTOR_ROOT
ret_dict['use_pdfjs'] = USE_PDFJS ret_dict['use_pdfjs'] = USE_PDFJS
@ctx_switch_required
@repo_passwd_set_required @repo_passwd_set_required
def view_history_file(request, repo_id): def view_history_file(request, repo_id):
ret_dict = {} ret_dict = {}
@@ -505,7 +503,6 @@ def view_history_file(request, repo_id):
return render_to_response('view_history_file.html', ret_dict, return render_to_response('view_history_file.html', ret_dict,
context_instance=RequestContext(request)) context_instance=RequestContext(request))
@ctx_switch_required
@repo_passwd_set_required @repo_passwd_set_required
def view_trash_file(request, repo_id): def view_trash_file(request, repo_id):
ret_dict = {} ret_dict = {}
@@ -528,7 +525,6 @@ def view_trash_file(request, repo_id):
return render_to_response('view_trash_file.html', ret_dict, return render_to_response('view_trash_file.html', ret_dict,
context_instance=RequestContext(request), ) context_instance=RequestContext(request), )
@ctx_switch_required
@repo_passwd_set_required @repo_passwd_set_required
def view_snapshot_file(request, repo_id): def view_snapshot_file(request, repo_id):
ret_dict = {} ret_dict = {}
@@ -621,7 +617,6 @@ def file_edit_submit(request, repo_id):
return error_json(str(e)) return error_json(str(e))
@login_required @login_required
@ctx_switch_required
def file_edit(request, repo_id): def file_edit(request, repo_id):
repo = get_repo(repo_id) repo = get_repo(repo_id)
if not repo: if not repo:

View File

@@ -10,7 +10,7 @@ from seaserv import server_repo_size, is_passwd_set, get_commits, get_repo, \
check_quota, MAX_UPLOAD_FILE_SIZE, web_get_access_token, is_repo_owner, \ check_quota, MAX_UPLOAD_FILE_SIZE, web_get_access_token, is_repo_owner, \
is_org_repo_owner, get_repo_history_limit, get_commit is_org_repo_owner, get_repo_history_limit, get_commit
from base.mixins import LoginRequiredMixin, CtxSwitchRequiredMixin from base.mixins import LoginRequiredMixin
from contacts.models import Contact from contacts.models import Contact
from share.models import FileShare from share.models import FileShare
from seahub.forms import RepoPassowrdForm from seahub.forms import RepoPassowrdForm
@@ -97,8 +97,8 @@ class RepoMixin(object):
self.prepare_property() self.prepare_property()
return super(RepoMixin, self).post(request, *args, **kwargs) return super(RepoMixin, self).post(request, *args, **kwargs)
class RepoView(LoginRequiredMixin, CtxSwitchRequiredMixin, RepoMixin, class RepoView(LoginRequiredMixin, RepoMixin, TemplateResponseMixin,
TemplateResponseMixin, BaseFormView): BaseFormView):
""" """
View to show repo page and handle post request to decrypt repo. View to show repo page and handle post request to decrypt repo.
""" """
@@ -228,8 +228,7 @@ class RepoView(LoginRequiredMixin, CtxSwitchRequiredMixin, RepoMixin,
return kwargs return kwargs
class RepoHistoryView(LoginRequiredMixin, CtxSwitchRequiredMixin, RepoMixin, class RepoHistoryView(LoginRequiredMixin, RepoMixin, TemplateView):
TemplateView):
""" """
View to show repo page in history. View to show repo page in history.
""" """