diff --git a/frontend/src/components/single-selector.js b/frontend/src/components/single-selector.js
index 2eab4daa13..77c6f36eb5 100644
--- a/frontend/src/components/single-selector.js
+++ b/frontend/src/components/single-selector.js
@@ -7,6 +7,7 @@ const propTypes = {
customSelectorToggle: PropTypes.object,
menuCustomClass: PropTypes.string,
isDropdownToggleShown: PropTypes.bool,
+ isDropdownToggleShown: PropTypes.bool,
currentSelectedOption: PropTypes.object,
options: PropTypes.array.isRequired,
selectOption: PropTypes.func.isRequired,
diff --git a/seahub/api2/endpoints/custom_share_permissions.py b/seahub/api2/endpoints/custom_share_permissions.py
index 66cff48d65..dedcf47093 100644
--- a/seahub/api2/endpoints/custom_share_permissions.py
+++ b/seahub/api2/endpoints/custom_share_permissions.py
@@ -29,9 +29,6 @@ class CustomSharePermissionsView(APIView):
"""List custom share permissions
"""
# permission check
- if not request.user.permissions.can_share_repo():
- return api_error(status.HTTP_403_FORBIDDEN, 'Permission denied.')
-
if not check_folder_permission(request, repo_id, '/'):
error_msg = 'Permission denied.'
return api_error(status.HTTP_403_FORBIDDEN, error_msg)
@@ -104,9 +101,6 @@ class CustomSharePermissionView(APIView):
"""get a custom share permission
"""
# permission check
- if not request.user.permissions.can_share_repo():
- return api_error(status.HTTP_403_FORBIDDEN, 'Permission denied.')
-
if not check_folder_permission(request, repo_id, '/'):
error_msg = 'Permission denied.'
return api_error(status.HTTP_403_FORBIDDEN, error_msg)
diff --git a/seahub/api2/endpoints/dir_shared_items.py b/seahub/api2/endpoints/dir_shared_items.py
index 79bfbc863d..e69e951a47 100644
--- a/seahub/api2/endpoints/dir_shared_items.py
+++ b/seahub/api2/endpoints/dir_shared_items.py
@@ -202,9 +202,6 @@ class DirSharedItemsEndpoint(APIView):
def get(self, request, repo_id, format=None):
"""List shared items(shared to users/groups) for a folder/library.
"""
- if not request.user.permissions.can_share_repo():
- return api_error(status.HTTP_403_FORBIDDEN, 'Permission denied.')
-
repo = seafile_api.get_repo(repo_id)
if not repo:
return api_error(status.HTTP_404_NOT_FOUND, 'Library %s not found.' % repo_id)
diff --git a/seahub/api2/endpoints/ocm.py b/seahub/api2/endpoints/ocm.py
index 443f5098c7..b7458ef86e 100644
--- a/seahub/api2/endpoints/ocm.py
+++ b/seahub/api2/endpoints/ocm.py
@@ -18,8 +18,10 @@ from seahub.api2.utils import api_error
from seaserv import seafile_api
from seahub.utils.repo import get_available_repo_perms, get_repo_owner
-from seahub.base.templatetags.seahub_tags import email2nickname
+from seahub.base.templatetags.seahub_tags import email2nickname, email2contact_email
from seahub.constants import PERMISSION_READ, PERMISSION_READ_WRITE
+
+from seahub.profile.models import Profile
from seahub.ocm.models import OCMShareReceived, OCMShare
from seahub.ocm.settings import ENABLE_OCM, SUPPORTED_OCM_PROTOCOLS, \
OCM_SEAFILE_PROTOCOL, OCM_RESOURCE_TYPE_LIBRARY, OCM_API_VERSION, \
@@ -198,10 +200,11 @@ class OCMSharesView(APIView):
else:
permission = PERMISSION_READ
+ share_with_ccnet_email = Profile.objects.get_username_by_contact_email(share_with)
OCMShareReceived.objects.add(
shared_secret=shared_secret,
from_user=sender,
- to_user=share_with,
+ to_user=share_with_ccnet_email or share_with,
from_server_url=from_server_url,
repo_id=repo_id,
repo_name=repo_name,
@@ -364,16 +367,15 @@ class OCMSharesPrepareView(APIView):
consumer_protocol = get_remote_protocol(to_server_url + OCM_PROTOCOL_URL)
shared_secret = gen_shared_secret()
- from_user = username
post_data = {
'shareWith': to_user,
'name': repo.repo_name,
'description': '',
'providerId': OCM_PROVIDER_ID,
'owner': repo_owner,
- 'sender': from_user,
+ 'sender': email2contact_email(username),
'ownerDisplayName': email2nickname(repo_owner),
- 'senderDisplayName': email2nickname(from_user),
+ 'senderDisplayName': email2nickname(username),
'shareType': consumer_protocol['resourceTypes']['shareTypes'][0], # currently only support user type
'resourceType': consumer_protocol['resourceTypes']['name'], # currently only support repo
'protocol': {
diff --git a/seahub/api2/endpoints/send_share_link_email.py b/seahub/api2/endpoints/send_share_link_email.py
index 8cfbefcfa4..507812dee6 100644
--- a/seahub/api2/endpoints/send_share_link_email.py
+++ b/seahub/api2/endpoints/send_share_link_email.py
@@ -16,7 +16,7 @@ from seahub.utils import IS_EMAIL_CONFIGURED, \
is_valid_email, string2list, gen_shared_link, send_html_email, \
get_site_name
from seahub.share.models import FileShare
-from seahub.settings import REPLACE_FROM_EMAIL, ADD_REPLY_TO_HEADER
+from seahub.settings import ADD_REPLY_TO_HEADER
from seahub.profile.models import Profile
logger = logging.getLogger(__name__)
@@ -84,11 +84,6 @@ class SendShareLinkView(APIView):
'password': link.get_password(),
}
- if REPLACE_FROM_EMAIL:
- from_email = useremail
- else:
- from_email = None # use default from email
-
if ADD_REPLY_TO_HEADER:
reply_to = useremail
else:
@@ -107,7 +102,7 @@ class SendShareLinkView(APIView):
# send email
try:
- send_html_email(title, template, c, from_email, [to_email], reply_to=reply_to)
+ send_html_email(title, template, c, None, [to_email], reply_to=reply_to)
result['success'].append(to_email)
except Exception as e:
logger.error(e)
diff --git a/seahub/api2/endpoints/send_upload_link_email.py b/seahub/api2/endpoints/send_upload_link_email.py
index d0c63a68c4..c873d80541 100644
--- a/seahub/api2/endpoints/send_upload_link_email.py
+++ b/seahub/api2/endpoints/send_upload_link_email.py
@@ -15,7 +15,7 @@ from seahub.utils import IS_EMAIL_CONFIGURED, \
is_valid_email, string2list, gen_shared_upload_link, send_html_email, \
get_site_name
from seahub.share.models import UploadLinkShare
-from seahub.settings import REPLACE_FROM_EMAIL, ADD_REPLY_TO_HEADER
+from seahub.settings import ADD_REPLY_TO_HEADER
from seahub.profile.models import Profile
logger = logging.getLogger(__name__)
@@ -83,11 +83,6 @@ class SendUploadLinkView(APIView):
'password': link.get_password(),
}
- if REPLACE_FROM_EMAIL:
- from_email = useremail
- else:
- from_email = None # use default from email
-
if ADD_REPLY_TO_HEADER:
reply_to = useremail
else:
@@ -99,7 +94,7 @@ class SendUploadLinkView(APIView):
# send email
try:
- send_html_email(title, template, c, from_email, [to_email], reply_to=reply_to)
+ send_html_email(title, template, c, None, [to_email], reply_to=reply_to)
result['success'].append(to_email)
except Exception as e:
logger.error(e)
diff --git a/seahub/api2/endpoints/shared_folders.py b/seahub/api2/endpoints/shared_folders.py
index 8e84372f10..40d637ebe5 100644
--- a/seahub/api2/endpoints/shared_folders.py
+++ b/seahub/api2/endpoints/shared_folders.py
@@ -33,9 +33,6 @@ class SharedFolders(APIView):
Permission checking:
1. all authenticated user can perform this action.
"""
- if not request.user.permissions.can_share_repo():
- return api_error(status.HTTP_403_FORBIDDEN, 'Permission denied.')
-
shared_repos = []
username = request.user.username
diff --git a/seahub/api2/endpoints/shared_repos.py b/seahub/api2/endpoints/shared_repos.py
index 7b91c21ced..918af74b02 100644
--- a/seahub/api2/endpoints/shared_repos.py
+++ b/seahub/api2/endpoints/shared_repos.py
@@ -38,9 +38,6 @@ class SharedRepos(APIView):
Permission checking:
1. all authenticated user can perform this action.
"""
- if not request.user.permissions.can_share_repo():
- return api_error(status.HTTP_403_FORBIDDEN, 'Permission denied.')
-
shared_repos = []
username = request.user.username
try:
diff --git a/seahub/base/accounts.py b/seahub/base/accounts.py
index afdf06d0d5..04239fdc71 100644
--- a/seahub/base/accounts.py
+++ b/seahub/base/accounts.py
@@ -924,7 +924,7 @@ class CustomLDAPBackend(object):
continue
try:
result_data = admin_bind.search_s(base, ldap.SCOPE_SUBTREE, filterstr)
- if result_data is not None:
+ if result_data:
break
except Exception as e:
raise Exception('ldap user search failed: %s' % e)
diff --git a/seahub/notifications/management/commands/send_file_updates.py b/seahub/notifications/management/commands/send_file_updates.py
index d13171afef..27a0622b45 100644
--- a/seahub/notifications/management/commands/send_file_updates.py
+++ b/seahub/notifications/management/commands/send_file_updates.py
@@ -1,9 +1,9 @@
# Copyright (c) 2012-2016 Seafile Ltd.
# encoding: utf-8
-from datetime import datetime
-import logging
import os
import re
+import logging
+from datetime import datetime, timedelta
from django.core.management.base import BaseCommand
from django.urls import reverse
@@ -14,7 +14,6 @@ from django.utils.translation import gettext as _
from seahub.avatar.templatetags.avatar_tags import avatar
from seahub.avatar.util import get_default_avatar_url
from seahub.base.templatetags.seahub_tags import email2nickname
-from seahub.constants import HASH_URLS
from seahub.options.models import (
UserOptions, KEY_FILE_UPDATES_EMAIL_INTERVAL,
KEY_FILE_UPDATES_LAST_EMAILED_TIME
@@ -27,34 +26,38 @@ from seahub.utils.timeutils import utc_to_local
# Get an instance of a logger
logger = logging.getLogger(__name__)
-########## Utility Functions ##########
+
+# Utility Functions
def td(con):
return con
# return '
%s | ' % con
+
def a_tag(con, href='#', style=''):
return '%s' % (href, style, e(con))
+
def repo_url(repo_id, repo_name):
p = reverse('lib_view', args=[repo_id, repo_name, ''])
return get_site_scheme_and_netloc() + p
+
def file_url(repo_id, file_path):
p = reverse('view_lib_file', args=[repo_id, file_path])
return get_site_scheme_and_netloc() + p
+
def dir_url(repo_id, repo_name, dir_path):
p = reverse('lib_view', args=[repo_id, repo_name, dir_path.strip('/')])
return get_site_scheme_and_netloc() + p
+
def user_info_url(username):
p = reverse('user_profile', args=[username])
return get_site_scheme_and_netloc() + p
-#######################################
-
class Command(BaseCommand):
help = 'Send Email notifications to user if he/she has '
@@ -216,7 +219,7 @@ class Command(BaseCommand):
self.stdout.write('[%s] Set language code to %s for user: %s' % (
str(datetime.now()), user_language, username))
- # get last_emailed_time if any, defaults to today 00:00:00.0
+ # get last_emailed_time if any, defaults to today 00:00:00
last_emailed_time = user_last_emailed_time_dict.get(username, None)
now = datetime.utcnow().replace(microsecond=0)
if not last_emailed_time:
@@ -226,16 +229,22 @@ class Command(BaseCommand):
if (now - last_emailed_time).total_seconds() < interval_val:
continue
+ # to avoid slow queries caused by retrieving too much data,
+ # only get file changes within the past week.
+ if (now - last_emailed_time).total_seconds() > 7 * 86400:
+ last_emailed_time = now - timedelta(days=7)
+
# get file updates(from: last_emailed_time, to: now) for repos
# user can access
- res = get_user_activities_by_timestamp(
- username, last_emailed_time, now)
+ res = get_user_activities_by_timestamp(username, last_emailed_time, now)
if not res:
+ UserOptions.objects.set_file_updates_last_emailed_time(username, now)
continue
# remove my activities
res = [x for x in res if x.op_user != username]
if not res:
+ UserOptions.objects.set_file_updates_last_emailed_time(username, now)
continue
# format mail content & send file updates email to user
@@ -269,8 +278,7 @@ class Command(BaseCommand):
'notifications/file_updates_email.html', c,
None, [contact_email])
# set new last_emailed_time
- UserOptions.objects.set_file_updates_last_emailed_time(
- username, now)
+ UserOptions.objects.set_file_updates_last_emailed_time(username, now)
self.stdout.write('[%s] Successful to send email to %s' %
(str(datetime.now()), contact_email))
except Exception as e:
diff --git a/seahub/settings.py b/seahub/settings.py
index 458c1cf422..b6504334be 100644
--- a/seahub/settings.py
+++ b/seahub/settings.py
@@ -83,13 +83,15 @@ STATIC_ROOT = '%s/assets/' % MEDIA_ROOT
STATIC_URL = '/media/assets/'
# Additional locations of static files
-STATICFILES_DIRS = (
+STATICFILES_DIRS = [
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
'%s/static' % PROJECT_ROOT,
- '%s/frontend/build' % PROJECT_ROOT,
-)
+]
+# %s/frontend/build perhaps not exists
+if os.path.isdir('%s/frontend/build' % PROJECT_ROOT):
+ STATICFILES_DIRS.append('%s/frontend/build' % PROJECT_ROOT)
WEBPACK_LOADER = {
'DEFAULT': {
@@ -829,9 +831,6 @@ SEADOC_SERVER_URL = 'http://127.0.0.1:7070'
# Settings for Seahub Priv #
############################
-# Replace from email to current user instead of email sender.
-REPLACE_FROM_EMAIL = False
-
# Add ``Reply-to`` header, see RFC #822.
ADD_REPLY_TO_HEADER = False
diff --git a/seahub/share/forms.py b/seahub/share/forms.py
deleted file mode 100644
index 2d39f811e4..0000000000
--- a/seahub/share/forms.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (c) 2012-2016 Seafile Ltd.
-from django import forms
-from django.utils.translation import gettext_lazy as _
-
-class RepoShareForm(forms.Form):
- """
- Form for sharing repo to user or group.
- """
-
- email_or_group = forms.CharField(max_length=512)
- repo_id = forms.CharField(max_length=36)
- permission = forms.ChoiceField(choices=(('rw', 'read-write'), ('r', 'read-only')))
-
-class FileLinkShareForm(forms.Form):
- """
- Form for sharing file shared link to emails.
- """
-
- email = forms.CharField(max_length=512, error_messages={
- 'required': _("Email is required"),
- 'max_length': _("Email is not longer than 512 characters"),
- })
- file_shared_link = forms.CharField()
- extra_msg = forms.CharField(required=False)
- file_shared_name = forms.CharField()
- file_shared_type = forms.CharField()
-
-class UploadLinkShareForm(forms.Form):
- """
- Form for sharing upload link to emails.
- """
- email = forms.CharField(max_length=512, error_messages={
- 'required': _("Email is required"),
- 'max_length': _("Email is not longer than 512 characters"),
- })
- shared_upload_link = forms.CharField()
- extra_msg = forms.CharField(required=False)
diff --git a/seahub/share/urls.py b/seahub/share/urls.py
index f06a2ce5ea..0c9431048a 100644
--- a/seahub/share/urls.py
+++ b/seahub/share/urls.py
@@ -4,10 +4,8 @@ from django.urls import path
from .views import *
urlpatterns = [
- path('link/send/', send_shared_link, name='send_shared_link'),
path('link/save/', save_shared_link, name='save_shared_link'),
path('link/export-excel/', export_shared_link, name='export_shared_link'),
- path('upload_link/send/', send_shared_upload_link, name='send_shared_upload_link'),
path('ajax/private-share-dir/', ajax_private_share_dir, name='ajax_private_share_dir'),
path('ajax/get-link-audit-code/', ajax_get_link_audit_code, name='ajax_get_link_audit_code'),
]
diff --git a/seahub/share/views.py b/seahub/share/views.py
index 921d2ea0fa..17a825bfc6 100644
--- a/seahub/share/views.py
+++ b/seahub/share/views.py
@@ -5,34 +5,27 @@ import json
import logging
from django.core.cache import cache
-from django.http import HttpResponse, HttpResponseRedirect, Http404, \
- HttpResponseBadRequest
-from django.utils.translation import gettext as _, activate
+from django.http import HttpResponse, HttpResponseRedirect, Http404
+from django.utils.translation import gettext as _
from django.contrib import messages
-from django.utils.html import escape
import seaserv
from seaserv import seafile_api
from pysearpc import SearpcError
-from seahub.share.forms import FileLinkShareForm, \
- UploadLinkShareForm
from seahub.share.models import FileShare, UploadLinkShare
from seahub.share.signals import share_repo_to_user_successful
from seahub.auth.decorators import login_required, login_required_ajax
from seahub.base.decorators import require_POST
from seahub.contacts.signals import mail_sended
from seahub.views import is_registered_user, check_folder_permission
-from seahub.utils import string2list, IS_EMAIL_CONFIGURED, check_filename_with_rename, \
- is_valid_username, is_valid_email, send_html_email, is_org_context, \
- gen_token, normalize_cache_key, get_site_name, gen_shared_link
+from seahub.utils import string2list, check_filename_with_rename, \
+ is_valid_username, is_valid_email, is_org_context, \
+ gen_token, normalize_cache_key, gen_shared_link
from seahub.utils.mail import send_html_email_with_dj_template
from seahub.utils.ms_excel import write_xls
from seahub.utils.timeutils import datetime_to_isoformat_timestr
-from seahub.settings import SITE_ROOT, REPLACE_FROM_EMAIL, \
- ADD_REPLY_TO_HEADER, SHARE_LINK_EMAIL_LANGUAGE, \
- SHARE_LINK_AUDIT_CODE_TIMEOUT
-from seahub.profile.models import Profile
+from seahub.settings import SITE_ROOT, SHARE_LINK_AUDIT_CODE_TIMEOUT
# Get an instance of a logger
logger = logging.getLogger(__name__)
@@ -123,95 +116,6 @@ def share_to_user(request, repo, to_user, permission):
return True
-# share link
-@login_required_ajax
-def send_shared_link(request):
- """
- Handle ajax post request to send file shared link.
- """
- if not request.method == 'POST':
- raise Http404
-
- content_type = 'application/json; charset=utf-8'
-
- if not IS_EMAIL_CONFIGURED:
- data = json.dumps({'error': _('Failed to send email, email service is not properly configured, please contact administrator.')})
- return HttpResponse(data, status=500, content_type=content_type)
-
- form = FileLinkShareForm(request.POST)
- if form.is_valid():
- email = form.cleaned_data['email']
- file_shared_link = form.cleaned_data['file_shared_link']
- file_shared_name = form.cleaned_data['file_shared_name']
- file_shared_type = form.cleaned_data['file_shared_type']
- extra_msg = escape(form.cleaned_data['extra_msg'])
-
- to_email_list = string2list(email)
- send_success, send_failed = [], []
- # use contact_email, if present
- username = Profile.objects.get_contact_email_by_user(request.user.username)
- for to_email in to_email_list:
- if not is_valid_email(to_email):
- send_failed.append(to_email)
- continue
-
- if SHARE_LINK_EMAIL_LANGUAGE:
- activate(SHARE_LINK_EMAIL_LANGUAGE)
-
- # Add email to contacts.
- mail_sended.send(sender=None, user=request.user.username,
- email=to_email)
-
- c = {
- 'email': request.user.username,
- 'to_email': to_email,
- 'file_shared_link': file_shared_link,
- 'file_shared_name': file_shared_name,
- }
-
- if extra_msg:
- c['extra_msg'] = extra_msg
-
- if REPLACE_FROM_EMAIL:
- from_email = username
- else:
- from_email = None # use default from email
-
- if ADD_REPLY_TO_HEADER:
- reply_to = username
- else:
- reply_to = None
-
- try:
- if file_shared_type == 'f':
- c['file_shared_type'] = _("file")
- send_html_email(_('A file is shared to you on %s') % get_site_name(),
- 'shared_link_email.html',
- c, from_email, [to_email],
- reply_to=reply_to
- )
- else:
- c['file_shared_type'] = _("directory")
- send_html_email(_('A directory is shared to you on %s') % get_site_name(),
- 'shared_link_email.html',
- c, from_email, [to_email],
- reply_to=reply_to)
-
- send_success.append(to_email)
- except Exception:
- send_failed.append(to_email)
-
- if len(send_success) > 0:
- data = json.dumps({"send_success": send_success, "send_failed": send_failed})
- return HttpResponse(data, status=200, content_type=content_type)
- else:
- data = json.dumps({"error": _("Internal server error, or please check the email(s) you entered")})
- return HttpResponse(data, status=400, content_type=content_type)
- else:
- return HttpResponseBadRequest(json.dumps(form.errors),
- content_type=content_type)
-
-
@login_required
def save_shared_link(request):
"""Save public share link to one's library.
@@ -335,78 +239,6 @@ def export_shared_link(request):
return response
-@login_required_ajax
-def send_shared_upload_link(request):
- """
- Handle ajax post request to send shared upload link.
- """
- if not request.method == 'POST':
- raise Http404
-
- content_type = 'application/json; charset=utf-8'
-
- if not IS_EMAIL_CONFIGURED:
- data = json.dumps({'error': _('Failed to send email, email service is not properly configured, please contact administrator.')})
- return HttpResponse(data, status=500, content_type=content_type)
-
- form = UploadLinkShareForm(request.POST)
- if form.is_valid():
- email = form.cleaned_data['email']
- shared_upload_link = form.cleaned_data['shared_upload_link']
- extra_msg = escape(form.cleaned_data['extra_msg'])
-
- to_email_list = string2list(email)
- send_success, send_failed = [], []
- # use contact_email, if present
- username = Profile.objects.get_contact_email_by_user(request.user.username)
- for to_email in to_email_list:
- if not is_valid_email(to_email):
- send_failed.append(to_email)
- continue
- # Add email to contacts.
- mail_sended.send(sender=None, user=request.user.username,
- email=to_email)
-
- c = {
- 'email': request.user.username,
- 'to_email': to_email,
- 'shared_upload_link': shared_upload_link,
- }
-
- if extra_msg:
- c['extra_msg'] = extra_msg
-
- if REPLACE_FROM_EMAIL:
- from_email = username
- else:
- from_email = None # use default from email
-
- if ADD_REPLY_TO_HEADER:
- reply_to = username
- else:
- reply_to = None
-
- try:
- send_html_email(_('An upload link is shared to you on %s') % get_site_name(),
- 'shared_upload_link_email.html',
- c, from_email, [to_email],
- reply_to=reply_to)
-
- send_success.append(to_email)
- except Exception:
- send_failed.append(to_email)
-
- if len(send_success) > 0:
- data = json.dumps({"send_success": send_success, "send_failed": send_failed})
- return HttpResponse(data, status=200, content_type=content_type)
- else:
- data = json.dumps({"error": _("Internal server error, or please check the email(s) you entered")})
- return HttpResponse(data, status=400, content_type=content_type)
- else:
- return HttpResponseBadRequest(json.dumps(form.errors),
- content_type=content_type)
-
-
@login_required_ajax
@require_POST
def ajax_private_share_dir(request):
diff --git a/tests/api/endpoints/test_send_share_link.py b/tests/api/endpoints/test_send_share_link.py
index d9dbf17924..904878fce7 100644
--- a/tests/api/endpoints/test_send_share_link.py
+++ b/tests/api/endpoints/test_send_share_link.py
@@ -1,11 +1,10 @@
-#coding: UTF-8
+# coding: UTF-8
import json
from mock import patch
from django.core import mail
from django.urls import reverse
from django.test import override_settings
-from seahub.utils import IS_EMAIL_CONFIGURED
from seahub.share.models import FileShare
from seahub.profile.models import Profile
from seahub.profile.utils import refresh_cache
@@ -16,7 +15,7 @@ class SendShareLinkApiTest(BaseTestCase):
def setUp(self):
fs = FileShare.objects.create_file_link(self.user.username,
- self.repo.id, self.file, None)
+ self.repo.id, self.file, None)
self.token = fs.token
mail.outbox = []
@@ -47,7 +46,6 @@ class SendShareLinkApiTest(BaseTestCase):
@patch('seahub.utils.IS_EMAIL_CONFIGURED', True)
@patch('seahub.api2.endpoints.send_share_link_email.IS_EMAIL_CONFIGURED', True)
- @patch('seahub.api2.endpoints.send_share_link_email.REPLACE_FROM_EMAIL', True)
@patch('seahub.api2.endpoints.send_share_link_email.ADD_REPLY_TO_HEADER', True)
def test_can_send_email_rewrite(self):
self.login_as(self.user)
@@ -63,17 +61,15 @@ class SendShareLinkApiTest(BaseTestCase):
json_resp = json.loads(resp.content)
assert json_resp['success'][0] == self.admin.email
assert 'test.txt' in mail.outbox[0].body
- assert mail.outbox[0].from_email == self.user.email
assert mail.outbox[0].extra_headers['Reply-to'] == self.user.email
@patch('seahub.utils.IS_EMAIL_CONFIGURED', True)
@patch('seahub.api2.endpoints.send_share_link_email.IS_EMAIL_CONFIGURED', True)
- @patch('seahub.api2.endpoints.send_share_link_email.REPLACE_FROM_EMAIL', True)
@patch('seahub.api2.endpoints.send_share_link_email.ADD_REPLY_TO_HEADER', True)
def test_can_send_email_rewrite_contact_email(self):
self.login_as(self.user)
nickname = 'Testuser'
- contact_email= 'contact_email@test.com'
+ contact_email = 'contact_email@test.com'
p = Profile.objects.add_or_update(self.user.email, nickname=nickname)
p.contact_email = contact_email
p.save()
@@ -92,7 +88,6 @@ class SendShareLinkApiTest(BaseTestCase):
json_resp = json.loads(resp.content)
assert json_resp['success'][0] == self.admin.email
assert 'test.txt' in mail.outbox[0].body
- assert mail.outbox[0].from_email == contact_email
assert mail.outbox[0].extra_headers['Reply-to'] == contact_email
@patch('seahub.utils.IS_EMAIL_CONFIGURED', False)
diff --git a/tests/api/endpoints/test_send_upload_link.py b/tests/api/endpoints/test_send_upload_link.py
index e12f98f9ed..45613ecc2a 100644
--- a/tests/api/endpoints/test_send_upload_link.py
+++ b/tests/api/endpoints/test_send_upload_link.py
@@ -1,11 +1,10 @@
-#coding: UTF-8
+# coding: UTF-8
import json
from mock import patch
from django.core import mail
from django.urls import reverse
from django.test import override_settings
-from seahub.utils import IS_EMAIL_CONFIGURED
from seahub.share.models import UploadLinkShare
from seahub.profile.models import Profile
from seahub.profile.utils import refresh_cache
@@ -16,7 +15,7 @@ class SendUploadLinkApiTest(BaseTestCase):
def setUp(self):
uls = UploadLinkShare.objects.create_upload_link_share(self.user.username,
- self.repo.id, '/')
+ self.repo.id, '/')
self.token = uls.token
def tearDown(self):
@@ -44,7 +43,6 @@ class SendUploadLinkApiTest(BaseTestCase):
@patch('seahub.utils.IS_EMAIL_CONFIGURED', True)
@patch('seahub.api2.endpoints.send_upload_link_email.IS_EMAIL_CONFIGURED', True)
- @patch('seahub.api2.endpoints.send_upload_link_email.REPLACE_FROM_EMAIL', True)
@patch('seahub.api2.endpoints.send_upload_link_email.ADD_REPLY_TO_HEADER', True)
def test_can_send_email_rewrite(self):
self.login_as(self.user)
@@ -59,17 +57,15 @@ class SendUploadLinkApiTest(BaseTestCase):
self.assertEqual(len(mail.outbox), 1)
json_resp = json.loads(resp.content)
assert json_resp['success'][0] == self.admin.email
- assert mail.outbox[0].from_email == self.user.email
assert mail.outbox[0].extra_headers['Reply-to'] == self.user.email
@patch('seahub.utils.IS_EMAIL_CONFIGURED', True)
@patch('seahub.api2.endpoints.send_upload_link_email.IS_EMAIL_CONFIGURED', True)
- @patch('seahub.api2.endpoints.send_upload_link_email.REPLACE_FROM_EMAIL', True)
@patch('seahub.api2.endpoints.send_upload_link_email.ADD_REPLY_TO_HEADER', True)
def test_can_send_email_rewrite_contact_email(self):
self.login_as(self.user)
nickname = 'Testuser'
- contact_email= 'contact_email@test.com'
+ contact_email = 'contact_email@test.com'
p = Profile.objects.add_or_update(self.user.email, nickname=nickname)
p.contact_email = contact_email
p.save()
@@ -87,7 +83,6 @@ class SendUploadLinkApiTest(BaseTestCase):
self.assertEqual(len(mail.outbox), 1)
json_resp = json.loads(resp.content)
assert json_resp['success'][0] == self.admin.email
- assert mail.outbox[0].from_email == contact_email
assert mail.outbox[0].extra_headers['Reply-to'] == contact_email
@patch('seahub.utils.IS_EMAIL_CONFIGURED', False)
diff --git a/tests/seahub/share/views/test_send_shared_link.py b/tests/seahub/share/views/test_send_shared_link.py
deleted file mode 100644
index b4e01cbdf3..0000000000
--- a/tests/seahub/share/views/test_send_shared_link.py
+++ /dev/null
@@ -1,80 +0,0 @@
-from mock import patch
-from django.core import mail
-from django.urls import reverse
-from django.test import override_settings
-
-from seahub.profile.models import Profile
-from seahub.profile.utils import refresh_cache
-from seahub.test_utils import BaseTestCase
-
-
-class SendSharedLinkTest(BaseTestCase):
- def setUp(self):
- mail.outbox = []
-
- @override_settings(DEFAULT_FROM_EMAIL='from_noreply@seafile.com')
- @patch('seahub.share.views.IS_EMAIL_CONFIGURED', True)
- def test_can_send(self):
- self.login_as(self.user)
-
- resp = self.client.post(reverse('send_shared_link'), {
- 'email': self.user.email,
- 'file_shared_link': 'http://xxx',
- 'file_shared_name': 'xxx',
- 'file_shared_type': 'd',
- 'extra_msg': ''
- }, HTTP_X_REQUESTED_WITH='XMLHttpRequest')
-
- self.assertEqual(200, resp.status_code)
- self.assertEqual(len(mail.outbox), 1)
- assert 'http://xxx' in mail.outbox[0].body
- assert mail.outbox[0].from_email == 'from_noreply@seafile.com'
-
- @patch('seahub.share.views.REPLACE_FROM_EMAIL', True)
- @patch('seahub.share.views.ADD_REPLY_TO_HEADER', True)
- @patch('seahub.share.views.IS_EMAIL_CONFIGURED', True)
- @patch('seahub.utils.IS_EMAIL_CONFIGURED', True)
- def test_can_send_from_replyto_rewrite(self):
- self.login_as(self.user)
-
- resp = self.client.post(reverse('send_shared_link'), {
- 'email': self.user.email,
- 'file_shared_link': 'http://xxx',
- 'file_shared_name': 'xxx',
- 'file_shared_type': 'd',
- 'extra_msg': ''
- }, HTTP_X_REQUESTED_WITH='XMLHttpRequest')
-
- self.assertEqual(200, resp.status_code)
- self.assertEqual(len(mail.outbox), 1)
- assert 'http://xxx' in mail.outbox[0].body
- assert mail.outbox[0].from_email == self.user.email
- assert mail.outbox[0].extra_headers['Reply-to'] == self.user.email
-
- @patch('seahub.share.views.REPLACE_FROM_EMAIL', True)
- @patch('seahub.share.views.ADD_REPLY_TO_HEADER', True)
- @patch('seahub.share.views.IS_EMAIL_CONFIGURED', True)
- @patch('seahub.utils.IS_EMAIL_CONFIGURED', True)
- def test_can_send_from_replyto_rewrite_contact_email(self):
- self.login_as(self.user)
- nickname = 'Testuser'
- contact_email= 'contact_email@test.com'
- p = Profile.objects.add_or_update(self.user.email, nickname=nickname)
- p.contact_email = contact_email
- p.save()
-
- refresh_cache(self.user.email)
-
- resp = self.client.post(reverse('send_shared_link'), {
- 'email': self.user.email,
- 'file_shared_link': 'http://xxx',
- 'file_shared_name': 'xxx',
- 'file_shared_type': 'd',
- 'extra_msg': ''
- }, HTTP_X_REQUESTED_WITH='XMLHttpRequest')
-
- self.assertEqual(200, resp.status_code)
- self.assertEqual(len(mail.outbox), 1)
- assert 'http://xxx' in mail.outbox[0].body
- assert mail.outbox[0].from_email == contact_email
- assert mail.outbox[0].extra_headers['Reply-to'] == contact_email
diff --git a/tests/seahub/share/views/test_send_shared_upload_link.py b/tests/seahub/share/views/test_send_shared_upload_link.py
deleted file mode 100644
index fb47a330df..0000000000
--- a/tests/seahub/share/views/test_send_shared_upload_link.py
+++ /dev/null
@@ -1,74 +0,0 @@
-from mock import patch
-from django.core import mail
-from django.urls import reverse
-from django.test import override_settings
-
-from seahub.profile.models import Profile
-from seahub.profile.utils import refresh_cache
-from seahub.test_utils import BaseTestCase
-
-
-class SendSharedUploadLinkTest(BaseTestCase):
- def setUp(self):
- mail.outbox = []
-
- @override_settings(DEFAULT_FROM_EMAIL='from_noreply@seafile.com')
- @patch('seahub.share.views.IS_EMAIL_CONFIGURED', True)
- def test_can_send(self):
- self.login_as(self.user)
-
- resp = self.client.post(reverse('send_shared_upload_link'), {
- 'email': self.user.email,
- 'shared_upload_link': 'http://xxx',
- 'extra_msg': ''
- }, HTTP_X_REQUESTED_WITH='XMLHttpRequest')
-
- self.assertEqual(200, resp.status_code)
- self.assertEqual(len(mail.outbox), 1)
- assert 'http://xxx' in mail.outbox[0].body
- assert mail.outbox[0].from_email == 'from_noreply@seafile.com'
-
- @patch('seahub.share.views.REPLACE_FROM_EMAIL', True)
- @patch('seahub.share.views.ADD_REPLY_TO_HEADER', True)
- @patch('seahub.share.views.IS_EMAIL_CONFIGURED', True)
- @patch('seahub.utils.IS_EMAIL_CONFIGURED', True)
- def test_can_send_from_replyto_rewrite(self):
- self.login_as(self.user)
-
- resp = self.client.post(reverse('send_shared_upload_link'), {
- 'email': self.user.email,
- 'shared_upload_link': 'http://xxx',
- 'extra_msg': ''
- }, HTTP_X_REQUESTED_WITH='XMLHttpRequest')
-
- self.assertEqual(200, resp.status_code)
- self.assertEqual(len(mail.outbox), 1)
- assert 'http://xxx' in mail.outbox[0].body
- assert mail.outbox[0].from_email == self.user.email
- assert mail.outbox[0].extra_headers['Reply-to'] == self.user.email
-
- @patch('seahub.share.views.REPLACE_FROM_EMAIL', True)
- @patch('seahub.share.views.ADD_REPLY_TO_HEADER', True)
- @patch('seahub.share.views.IS_EMAIL_CONFIGURED', True)
- @patch('seahub.utils.IS_EMAIL_CONFIGURED', True)
- def test_can_send_from_replyto_rewrite_contact_email(self):
- self.login_as(self.user)
- nickname = 'Testuser'
- contact_email= 'contact_email@test.com'
- p = Profile.objects.add_or_update(self.user.email, nickname=nickname)
- p.contact_email = contact_email
- p.save()
-
- refresh_cache(self.user.email)
-
- resp = self.client.post(reverse('send_shared_upload_link'), {
- 'email': self.user.email,
- 'shared_upload_link': 'http://xxx',
- 'extra_msg': ''
- }, HTTP_X_REQUESTED_WITH='XMLHttpRequest')
-
- self.assertEqual(200, resp.status_code)
- self.assertEqual(len(mail.outbox), 1)
- assert 'http://xxx' in mail.outbox[0].body
- assert mail.outbox[0].from_email == contact_email
- assert mail.outbox[0].extra_headers['Reply-to'] == contact_email