def render_repo(request, repo): """Steps to show repo page: If user has permission to view repo If repo is encrypt and password is not set on server return decrypt repo page If repo is not encrypt or password is set on server Show repo direntries based on requested path If user does not have permission to view repo return permission deny page """ username = request.user.username path = get_path_from_request(request) user_perm = check_repo_access_permission(repo.id, username) if user_perm is None: return render_to_response('repo_access_deny.html', { 'repo': repo, }, context_instance=RequestContext(request)) server_crypto = False if repo.encrypted: try: server_crypto = UserOptions.objects.is_server_crypto(username) except CryptoOptionNotSetError: return render_to_response('options/set_user_options.html', {}, context_instance=RequestContext(request)) if (repo.enc_version == 1 or (repo.enc_version == 2 and server_crypto)) \ and not is_password_set(repo.id, username): return render_to_response('decrypt_repo_form.html', { 'repo': repo, 'next': get_next_url_from_request(request) or \ reverse('repo', args=[repo.id]) }, context_instance=RequestContext(request)) # query context args applet_root = get_ccnetapplet_root() httpserver_root = get_httpserver_root() max_upload_file_size = MAX_UPLOAD_FILE_SIZE protocol = request.is_secure() and 'https' or 'http' domain = RequestSite(request).domain contacts = Contact.objects.get_contacts_by_user(username) accessible_repos = [ repo ] if repo.encrypted else get_unencry_rw_repos_by_user(username) head_commit = get_commit(repo.head_cmmt_id) if not head_commit: raise Http404 repo_size = get_repo_size(repo.id) no_quota = is_no_quota(repo.id) search_repo_id = None if repo.encrypted else repo.id repo_owner = seafile_api.get_repo_owner(repo.id) is_repo_owner = True if repo_owner == username else False more_start = None file_list, dir_list, dirent_more = get_repo_dirents(request, repo.id, head_commit, path, offset=0, limit=100) if dirent_more: more_start = 100 zipped = get_nav_path(path, repo.name) repo_groups = get_shared_groups_by_repo_and_user(repo.id, username) if len(repo_groups) > 1: repo_group_str = render_to_string("snippets/repo_group_list.html", {'groups': repo_groups}) else: repo_group_str = '' upload_url = get_upload_url(request, repo.id) if repo.encrypted and repo.enc_version == 2 and not server_crypto: ajax_upload_url = get_blks_upload_url(request, repo.id) ajax_update_url = get_blks_update_url(request, repo.id) else: ajax_upload_url = get_ajax_upload_url(request, repo.id) ajax_update_url = get_ajax_update_url(request, repo.id) fileshare = get_fileshare(repo.id, username, path) dir_shared_link = get_dir_share_link(fileshare) joined_groups = get_personal_groups_by_user(request.user.username) return render_to_response('repo.html', { 'repo': repo, 'user_perm': user_perm, 'repo_owner': repo_owner, 'is_repo_owner': is_repo_owner, 'current_commit': head_commit, 'password_set': True, 'repo_size': repo_size, 'dir_list': dir_list, 'file_list': file_list, 'dirent_more': dirent_more, 'more_start': more_start, 'path': path, 'zipped': zipped, 'accessible_repos': accessible_repos, 'applet_root': applet_root, 'groups': repo_groups, 'joined_groups': joined_groups, 'repo_group_str': repo_group_str, 'no_quota': no_quota, 'max_upload_file_size': max_upload_file_size, 'upload_url': upload_url, 'ajax_upload_url': ajax_upload_url, 'ajax_update_url': ajax_update_url, 'httpserver_root': httpserver_root, 'protocol': protocol, 'domain': domain, 'contacts': contacts, 'fileshare': fileshare, 'dir_shared_link': dir_shared_link, 'search_repo_id': search_repo_id, 'ENABLE_SUB_LIBRARY': ENABLE_SUB_LIBRARY, 'server_crypto': server_crypto, }, context_instance=RequestContext(request))
def render_repo(request, repo): """Steps to show repo page: If user has permission to view repo If repo is encrypt and password is not set on server return decrypt repo page If repo is not encrypt or password is set on server Show repo direntries based on requested path If user does not have permission to view repo return permission deny page """ username = request.user.username path = get_path_from_request(request) user_perm = check_repo_access_permission(repo.id, request.user) if user_perm is None: return render_to_response('repo_access_deny.html', { 'repo': repo, }, context_instance=RequestContext(request)) sub_lib_enabled = UserOptions.objects.is_sub_lib_enabled(username) server_crypto = False if repo.encrypted: try: server_crypto = UserOptions.objects.is_server_crypto(username) except CryptoOptionNotSetError: return render_to_response('options/set_user_options.html', { }, context_instance=RequestContext(request)) if (repo.enc_version == 1 or (repo.enc_version == 2 and server_crypto)) \ and not is_password_set(repo.id, username): return render_to_response('decrypt_repo_form.html', { 'repo': repo, 'next': get_next_url_from_request(request) or \ reverse('repo', args=[repo.id]), 'force_server_crypto': FORCE_SERVER_CRYPTO, }, context_instance=RequestContext(request)) # query context args httpserver_root = get_httpserver_root() max_upload_file_size = get_max_upload_file_size() protocol = request.is_secure() and 'https' or 'http' domain = RequestSite(request).domain for g in request.user.joined_groups: g.avatar = grp_avatar(g.id, 20) head_commit = get_commit(repo.id, repo.version, repo.head_cmmt_id) if not head_commit: raise Http404 if new_merge_with_no_conflict(head_commit): info_commit = get_commit_before_new_merge(head_commit) else: info_commit = head_commit repo_size = get_repo_size(repo.id) no_quota = is_no_quota(repo.id) search_repo_id = None if repo.encrypted else repo.id if is_org_context(request): repo_owner = seafile_api.get_org_repo_owner(repo.id) else: repo_owner = seafile_api.get_repo_owner(repo.id) is_repo_owner = True if repo_owner == username else False if is_repo_owner and not repo.is_virtual: show_repo_settings = True else: show_repo_settings = False more_start = None file_list, dir_list, dirent_more = get_repo_dirents(request, repo, head_commit, path, offset=0, limit=100) if dirent_more: more_start = 100 zipped = get_nav_path(path, repo.name) repo_groups = get_shared_groups_by_repo_and_user(repo.id, username) if len(repo_groups) > 1: repo_group_str = render_to_string("snippets/repo_group_list.html", {'groups': repo_groups}) else: repo_group_str = '' upload_url = get_upload_url(request, repo.id) fileshare = get_fileshare(repo.id, username, path) dir_shared_link = get_dir_share_link(fileshare) uploadlink = get_uploadlink(repo.id, username, path) dir_shared_upload_link = get_dir_shared_upload_link(uploadlink) return render_to_response('repo.html', { 'repo': repo, 'user_perm': user_perm, 'repo_owner': repo_owner, 'is_repo_owner': is_repo_owner, 'show_repo_settings': show_repo_settings, 'current_commit': head_commit, 'info_commit': info_commit, 'password_set': True, 'repo_size': repo_size, 'dir_list': dir_list, 'file_list': file_list, 'dirent_more': dirent_more, 'more_start': more_start, 'path': path, 'zipped': zipped, 'groups': repo_groups, 'repo_group_str': repo_group_str, 'no_quota': no_quota, 'max_upload_file_size': max_upload_file_size, 'upload_url': upload_url, 'httpserver_root': httpserver_root, 'protocol': protocol, 'domain': domain, 'fileshare': fileshare, 'dir_shared_link': dir_shared_link, 'uploadlink': uploadlink, 'dir_shared_upload_link': dir_shared_upload_link, 'search_repo_id': search_repo_id, 'ENABLE_SUB_LIBRARY': ENABLE_SUB_LIBRARY, 'server_crypto': server_crypto, "sub_lib_enabled": sub_lib_enabled, }, context_instance=RequestContext(request))
def render_repo(request, repo): """Steps to show repo page: If user has permission to view repo If repo is encrypt and password is not set on server return decrypt repo page If repo is not encrypt or password is set on server Show repo direntries based on requested path If user does not have permission to view repo return permission deny page """ username = request.user.username path = get_path_from_request(request) user_perm = check_repo_access_permission(repo.id, username) if user_perm is None: return render_to_response("repo_access_deny.html", {"repo": repo}, context_instance=RequestContext(request)) if ( repo.encrypted and (repo.enc_version == 1 or (repo.enc_version == 2 and SERVER_CRYPTO)) and not is_password_set(repo.id, username) ): return render_to_response( "decrypt_repo_form.html", {"repo": repo, "next": get_next_url_from_request(request) or reverse("repo", args=[repo.id])}, context_instance=RequestContext(request), ) # query context args applet_root = get_ccnetapplet_root() httpserver_root = get_httpserver_root() max_upload_file_size = MAX_UPLOAD_FILE_SIZE protocol = request.is_secure() and "https" or "http" domain = RequestSite(request).domain contacts = Contact.objects.get_contacts_by_user(username) accessible_repos = [repo] if repo.encrypted else get_unencry_rw_repos_by_user(username) head_commit = get_commit(repo.head_cmmt_id) if not head_commit: raise Http404 repo_size = get_repo_size(repo.id) no_quota = is_no_quota(repo.id) search_repo_id = None if repo.encrypted else repo.id repo_owner = seafile_api.get_repo_owner(repo.id) is_repo_owner = True if repo_owner == username else False more_start = None file_list, dir_list, dirent_more = get_repo_dirents(request, repo.id, head_commit, path, offset=0, limit=100) if dirent_more: more_start = 100 zipped = get_nav_path(path, repo.name) repo_groups = get_shared_groups_by_repo_and_user(repo.id, username) if len(repo_groups) > 1: repo_group_str = render_to_string("snippets/repo_group_list.html", {"groups": repo_groups}) else: repo_group_str = "" upload_url = get_upload_url(request, repo.id) if repo.encrypted and repo.enc_version == 2 and not SERVER_CRYPTO: ajax_upload_url = get_blks_upload_url(request, repo.id) ajax_update_url = get_blks_update_url(request, repo.id) else: ajax_upload_url = get_ajax_upload_url(request, repo.id) ajax_update_url = get_ajax_update_url(request, repo.id) fileshare = get_fileshare(repo.id, username, path) dir_shared_link = get_dir_share_link(fileshare) joined_groups = get_personal_groups_by_user(request.user.username) return render_to_response( "repo.html", { "repo": repo, "user_perm": user_perm, "repo_owner": repo_owner, "is_repo_owner": is_repo_owner, "current_commit": head_commit, "password_set": True, "repo_size": repo_size, "dir_list": dir_list, "file_list": file_list, "dirent_more": dirent_more, "more_start": more_start, "path": path, "zipped": zipped, "accessible_repos": accessible_repos, "applet_root": applet_root, "groups": repo_groups, "joined_groups": joined_groups, "repo_group_str": repo_group_str, "no_quota": no_quota, "max_upload_file_size": max_upload_file_size, "upload_url": upload_url, "ajax_upload_url": ajax_upload_url, "ajax_update_url": ajax_update_url, "httpserver_root": httpserver_root, "protocol": protocol, "domain": domain, "contacts": contacts, "fileshare": fileshare, "dir_shared_link": dir_shared_link, "search_repo_id": search_repo_id, "ENABLE_SUB_LIBRARY": ENABLE_SUB_LIBRARY, }, context_instance=RequestContext(request), )
def render_repo(request, repo): """Steps to show repo page: If user has permission to view repo If repo is encrypt and password is not set on server return decrypt repo page If repo is not encrypt or password is set on server Show repo direntries based on requested path If user does not have permission to view repo return permission deny page """ username = request.user.username user_perm = check_repo_access_permission(repo.id, username) if user_perm is None: return render_to_response('repo_access_deny.html', { 'repo': repo, }, context_instance=RequestContext(request)) if repo.encrypted and not is_password_set(repo.id, username): return render_to_response('decrypt_repo_form.html', { 'repo': repo, 'next': get_next_url_from_request(request) or \ reverse('repo', args=[repo.id]) }, context_instance=RequestContext(request)) # query context args applet_root = get_ccnetapplet_root() httpserver_root = get_httpserver_root() max_upload_file_size = MAX_UPLOAD_FILE_SIZE protocol = request.is_secure() and 'https' or 'http' domain = RequestSite(request).domain path = get_path_from_request(request) contacts = Contact.objects.get_contacts_by_user(username) accessible_repos = [repo] if repo.encrypted else get_unencry_rw_repos_by_user(username) head_commit = get_commit(repo.head_cmmt_id) if not head_commit: raise Http404 repo_size = get_repo_size(repo.id) no_quota = is_no_quota(repo.id) history_limit = seaserv.get_repo_history_limit(repo.id) search_repo_id = None if repo.encrypted else repo.id is_repo_owner = seafile_api.is_repo_owner(username, repo.id) file_list, dir_list = get_repo_dirents(request, repo.id, head_commit, path) zipped = get_nav_path(path, repo.name) repo_groups = get_shared_groups_by_repo_and_user(repo.id, username) if len(repo_groups) > 1: repo_group_str = render_to_string("snippets/repo_group_list.html", {'groups': repo_groups}) else: repo_group_str = '' upload_url = get_upload_url(request, repo.id) update_url = get_update_url(request, repo.id) fileshare = get_fileshare(repo.id, username, path) dir_shared_link = get_shared_link(request, fileshare) return render_to_response('repo.html', { 'repo': repo, 'user_perm': user_perm, 'is_repo_owner': is_repo_owner, 'current_commit': head_commit, 'password_set': True, 'repo_size': repo_size, 'dir_list': dir_list, 'file_list': file_list, 'path': path, 'zipped': zipped, 'accessible_repos': accessible_repos, 'applet_root': applet_root, 'groups': repo_groups, 'repo_group_str': repo_group_str, 'no_quota': no_quota, 'max_upload_file_size': max_upload_file_size, 'upload_url': upload_url, 'update_url': update_url, 'httpserver_root': httpserver_root, 'protocol': protocol, 'domain': domain, 'contacts': contacts, 'fileshare': fileshare, 'dir_shared_link': dir_shared_link, 'history_limit': history_limit, 'search_repo_id': search_repo_id, }, context_instance=RequestContext(request))
def get_httpserver_root(self): return get_httpserver_root()
def render_repo(request, repo): """Steps to show repo page: If user has permission to view repo If repo is encrypt and password is not set on server return decrypt repo page If repo is not encrypt or password is set on server Show repo direntries based on requested path If user does not have permission to view repo return permission deny page """ username = request.user.username path = get_path_from_request(request) user_perm = check_repo_access_permission(repo.id, username) if user_perm is None: return render_to_response('repo_access_deny.html', { 'repo': repo, }, context_instance=RequestContext(request)) server_crypto = False if repo.encrypted: try: server_crypto = UserOptions.objects.is_server_crypto(username) except CryptoOptionNotSetError: return render_to_response('options/set_user_options.html', { }, context_instance=RequestContext(request)) if (repo.enc_version == 1 or (repo.enc_version == 2 and server_crypto)) \ and not is_password_set(repo.id, username): return render_to_response('decrypt_repo_form.html', { 'repo': repo, 'next': get_next_url_from_request(request) or \ reverse('repo', args=[repo.id]) }, context_instance=RequestContext(request)) # query context args applet_root = get_ccnetapplet_root() httpserver_root = get_httpserver_root() max_upload_file_size = MAX_UPLOAD_FILE_SIZE protocol = request.is_secure() and 'https' or 'http' domain = RequestSite(request).domain contacts = Contact.objects.get_contacts_by_user(username) accessible_repos = [repo] if repo.encrypted else get_unencry_rw_repos_by_user(username) joined_groups = get_personal_groups_by_user(request.user.username) head_commit = get_commit(repo.head_cmmt_id) if not head_commit: raise Http404 repo_size = get_repo_size(repo.id) no_quota = is_no_quota(repo.id) search_repo_id = None if repo.encrypted else repo.id repo_owner = seafile_api.get_repo_owner(repo.id) is_repo_owner = True if repo_owner == username else False more_start = None file_list, dir_list, dirent_more = get_repo_dirents(request, repo.id, head_commit, path, offset=0, limit=100) if dirent_more: more_start = 100 zipped = get_nav_path(path, repo.name) repo_groups = get_shared_groups_by_repo_and_user(repo.id, username) if len(repo_groups) > 1: repo_group_str = render_to_string("snippets/repo_group_list.html", {'groups': repo_groups}) else: repo_group_str = '' upload_url = get_upload_url(request, repo.id) if repo.encrypted and repo.enc_version == 2 and not server_crypto: ajax_upload_url = get_blks_upload_url(request, repo.id) ajax_update_url = get_blks_update_url(request, repo.id) else: ajax_upload_url = get_ajax_upload_url(request, repo.id) ajax_update_url = get_ajax_update_url(request, repo.id) fileshare = get_fileshare(repo.id, username, path) dir_shared_link = get_dir_share_link(fileshare) uploadlink = get_uploadlink(repo.id, username, path) dir_shared_upload_link = get_dir_shared_upload_link(uploadlink) return render_to_response('repo.html', { 'repo': repo, 'user_perm': user_perm, 'repo_owner': repo_owner, 'is_repo_owner': is_repo_owner, 'current_commit': head_commit, 'password_set': True, 'repo_size': repo_size, 'dir_list': dir_list, 'file_list': file_list, 'dirent_more': dirent_more, 'more_start': more_start, 'path': path, 'zipped': zipped, 'accessible_repos': accessible_repos, 'applet_root': applet_root, 'groups': repo_groups, 'joined_groups': joined_groups, 'repo_group_str': repo_group_str, 'no_quota': no_quota, 'max_upload_file_size': max_upload_file_size, 'upload_url': upload_url, 'ajax_upload_url': ajax_upload_url, 'ajax_update_url': ajax_update_url, 'httpserver_root': httpserver_root, 'protocol': protocol, 'domain': domain, 'contacts': contacts, 'fileshare': fileshare, 'dir_shared_link': dir_shared_link, 'uploadlink': uploadlink, 'dir_shared_upload_link': dir_shared_upload_link, 'search_repo_id': search_repo_id, 'ENABLE_SUB_LIBRARY': ENABLE_SUB_LIBRARY, 'server_crypto': server_crypto, }, context_instance=RequestContext(request))
def render_repo(request, repo): """Steps to show repo page: If user has permission to view repo If repo is encrypt and password is not set on server return decrypt repo page If repo is not encrypt or password is set on server Show repo direntries based on requested path If user does not have permission to view repo return permission deny page """ username = request.user.username path = get_path_from_request(request) user_perm = check_repo_access_permission(repo.id, request.user) if user_perm is None: return render_to_response('repo_access_deny.html', { 'repo': repo, }, context_instance=RequestContext(request)) sub_lib_enabled = UserOptions.objects.is_sub_lib_enabled(username) server_crypto = False if repo.encrypted: try: server_crypto = UserOptions.objects.is_server_crypto(username) except CryptoOptionNotSetError: return render_to_response('options/set_user_options.html', {}, context_instance=RequestContext(request)) if (repo.enc_version == 1 or (repo.enc_version == 2 and server_crypto)) \ and not is_password_set(repo.id, username): return render_to_response('decrypt_repo_form.html', { 'repo': repo, 'next': get_next_url_from_request(request) or \ reverse('repo', args=[repo.id]), 'force_server_crypto': FORCE_SERVER_CRYPTO, }, context_instance=RequestContext(request)) # query context args httpserver_root = get_httpserver_root() max_upload_file_size = get_max_upload_file_size() protocol = request.is_secure() and 'https' or 'http' domain = RequestSite(request).domain contacts = Contact.objects.get_contacts_by_user(username) for c in contacts: c.avatar = avatar(c.contact_email, 16) for g in request.user.joined_groups: g.avatar = grp_avatar(g.id, 20) head_commit = get_commit(repo.id, repo.version, repo.head_cmmt_id) if not head_commit: raise Http404 if new_merge_with_no_conflict(head_commit): info_commit = get_commit_before_new_merge(head_commit) else: info_commit = head_commit repo_size = get_repo_size(repo.id) no_quota = is_no_quota(repo.id) search_repo_id = None if repo.encrypted else repo.id repo_owner = seafile_api.get_repo_owner(repo.id) is_repo_owner = True if repo_owner == username else False if is_repo_owner and not repo.is_virtual: show_repo_settings = True else: show_repo_settings = False more_start = None file_list, dir_list, dirent_more = get_repo_dirents(request, repo, head_commit, path, offset=0, limit=100) if dirent_more: more_start = 100 zipped = get_nav_path(path, repo.name) repo_groups = get_shared_groups_by_repo_and_user(repo.id, username) if len(repo_groups) > 1: repo_group_str = render_to_string("snippets/repo_group_list.html", {'groups': repo_groups}) else: repo_group_str = '' upload_url = get_upload_url(request, repo.id) fileshare = get_fileshare(repo.id, username, path) dir_shared_link = get_dir_share_link(fileshare) uploadlink = get_uploadlink(repo.id, username, path) dir_shared_upload_link = get_dir_shared_upload_link(uploadlink) return render_to_response('repo.html', { 'repo': repo, 'user_perm': user_perm, 'repo_owner': repo_owner, 'is_repo_owner': is_repo_owner, 'show_repo_settings': show_repo_settings, 'current_commit': head_commit, 'info_commit': info_commit, 'password_set': True, 'repo_size': repo_size, 'dir_list': dir_list, 'file_list': file_list, 'dirent_more': dirent_more, 'more_start': more_start, 'path': path, 'zipped': zipped, 'groups': repo_groups, 'repo_group_str': repo_group_str, 'no_quota': no_quota, 'max_upload_file_size': max_upload_file_size, 'upload_url': upload_url, 'httpserver_root': httpserver_root, 'protocol': protocol, 'domain': domain, 'contacts': contacts, 'fileshare': fileshare, 'dir_shared_link': dir_shared_link, 'uploadlink': uploadlink, 'dir_shared_upload_link': dir_shared_upload_link, 'search_repo_id': search_repo_id, 'ENABLE_SUB_LIBRARY': ENABLE_SUB_LIBRARY, 'server_crypto': server_crypto, "sub_lib_enabled": sub_lib_enabled, }, context_instance=RequestContext(request))