mirror of
https://github.com/haiwen/seahub.git
synced 2025-06-29 16:37:56 +00:00
update-sharelink-with-new-dl-url (#7155)
This commit is contained in:
parent
b484b45f1a
commit
f4d15fb574
@ -53,7 +53,7 @@ class LinkDetails extends React.Component {
|
|||||||
|
|
||||||
onCopyDownloadLink = () => {
|
onCopyDownloadLink = () => {
|
||||||
const { sharedLinkInfo } = this.props;
|
const { sharedLinkInfo } = this.props;
|
||||||
copy(`${sharedLinkInfo.link}?dl=1`);
|
copy(`${sharedLinkInfo.download_link}`);
|
||||||
toaster.success(gettext('Direct download link is copied to the clipboard.'));
|
toaster.success(gettext('Direct download link is copied to the clipboard.'));
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -177,12 +177,12 @@ class LinkDetails extends React.Component {
|
|||||||
copyLink={this.onCopySharedLink}
|
copyLink={this.onCopySharedLink}
|
||||||
/>
|
/>
|
||||||
</dd>
|
</dd>
|
||||||
{!sharedLinkInfo.is_dir && sharedLinkInfo.permissions.can_download && ( // just for file
|
{!sharedLinkInfo.is_dir && sharedLinkInfo.permissions.can_download && sharedLinkInfo.show_download_link && ( // just for file
|
||||||
<>
|
<>
|
||||||
<dt className="text-secondary font-weight-normal">{gettext('Direct download link')}</dt>
|
<dt className="text-secondary font-weight-normal">{gettext('Direct download link')}</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<SharedLink
|
<SharedLink
|
||||||
link={`${sharedLinkInfo.link}?dl=1`}
|
link={`${sharedLinkInfo.download_link}`}
|
||||||
linkExpired={sharedLinkInfo.is_expired}
|
linkExpired={sharedLinkInfo.is_expired}
|
||||||
copyLink={this.onCopyDownloadLink}
|
copyLink={this.onCopyDownloadLink}
|
||||||
/>
|
/>
|
||||||
|
@ -19,6 +19,8 @@ class ShareLink {
|
|||||||
this.ctime = object.ctime;
|
this.ctime = object.ctime;
|
||||||
this.password = object.password;
|
this.password = object.password;
|
||||||
this.user_scope = object.user_scope;
|
this.user_scope = object.user_scope;
|
||||||
|
this.download_link = object.download_link;
|
||||||
|
this.show_download_link = object.show_download_link;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ from seahub.share.utils import VALID_SHARE_LINK_SCOPE, SCOPE_SPECIFIC_USERS, SCO
|
|||||||
from seahub.utils import gen_shared_link, is_org_context, normalize_file_path, \
|
from seahub.utils import gen_shared_link, is_org_context, normalize_file_path, \
|
||||||
normalize_dir_path, is_pro_version, get_file_type_and_ext, \
|
normalize_dir_path, is_pro_version, get_file_type_and_ext, \
|
||||||
check_filename_with_rename, gen_file_upload_url, \
|
check_filename_with_rename, gen_file_upload_url, \
|
||||||
get_password_strength_level, is_valid_password, is_valid_email, string2list
|
get_password_strength_level, is_valid_password, is_valid_email, string2list, gen_file_get_url_by_sharelink
|
||||||
from seahub.utils.file_op import if_locked_by_online_office
|
from seahub.utils.file_op import if_locked_by_online_office
|
||||||
from seahub.utils.file_types import IMAGE, VIDEO, XMIND
|
from seahub.utils.file_types import IMAGE, VIDEO, XMIND
|
||||||
from seahub.utils.file_tags import get_tagged_files, get_files_tags_in_dir
|
from seahub.utils.file_tags import get_tagged_files, get_files_tags_in_dir
|
||||||
@ -108,6 +108,8 @@ def get_share_link_info(fileshare):
|
|||||||
|
|
||||||
data['token'] = token
|
data['token'] = token
|
||||||
data['link'] = gen_shared_link(token, fileshare.s_type)
|
data['link'] = gen_shared_link(token, fileshare.s_type)
|
||||||
|
data['download_link'] = gen_file_get_url_by_sharelink(token)
|
||||||
|
data['show_download_link'] = fileshare.show_download_link
|
||||||
data['view_cnt'] = fileshare.view_cnt
|
data['view_cnt'] = fileshare.view_cnt
|
||||||
data['ctime'] = ctime
|
data['ctime'] = ctime
|
||||||
data['expire_date'] = expire_date
|
data['expire_date'] = expire_date
|
||||||
@ -284,6 +286,8 @@ class ShareLinks(APIView):
|
|||||||
link_info['is_dir'] = True if s_type == 'd' else False
|
link_info['is_dir'] = True if s_type == 'd' else False
|
||||||
link_info['token'] = token
|
link_info['token'] = token
|
||||||
link_info['link'] = gen_shared_link(token, s_type)
|
link_info['link'] = gen_shared_link(token, s_type)
|
||||||
|
link_info['download_link'] = gen_file_get_url_by_sharelink(token)
|
||||||
|
link_info['show_download_link'] = fs.show_download_link
|
||||||
link_info['view_cnt'] = fs.view_cnt
|
link_info['view_cnt'] = fs.view_cnt
|
||||||
link_info['ctime'] = datetime_to_isoformat_timestr(fs.ctime) if fs.ctime else ''
|
link_info['ctime'] = datetime_to_isoformat_timestr(fs.ctime) if fs.ctime else ''
|
||||||
link_info['expire_date'] = datetime_to_isoformat_timestr(fs.expire_date) if fs.expire_date else ''
|
link_info['expire_date'] = datetime_to_isoformat_timestr(fs.expire_date) if fs.expire_date else ''
|
||||||
|
@ -410,6 +410,14 @@ class FileShare(models.Model):
|
|||||||
else:
|
else:
|
||||||
return '%s/d/%s/' % (service_url, self.token)
|
return '%s/d/%s/' % (service_url, self.token)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def show_download_link(self):
|
||||||
|
if self.is_encrypted():
|
||||||
|
return False
|
||||||
|
if self.user_scope != 'all_users':
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
def get_permissions(self):
|
def get_permissions(self):
|
||||||
perm_dict = {}
|
perm_dict = {}
|
||||||
if self.permission == FileShare.PERM_VIEW_DL:
|
if self.permission == FileShare.PERM_VIEW_DL:
|
||||||
|
Loading…
Reference in New Issue
Block a user