1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-05-13 18:35:20 +00:00

Merge branch 'master' into 12.0

This commit is contained in:
杨顺强 2024-06-06 17:59:03 +08:00
commit e5b696b098
8 changed files with 38 additions and 15 deletions
frontend
media/css
seahub
adfs_auth
api2
endpoints/admin
views.py

View File

@ -16,7 +16,7 @@
"@seafile/resumablejs": "1.1.16",
"@seafile/sdoc-editor": "0.5.68",
"@seafile/seafile-calendar": "0.0.12",
"@seafile/seafile-editor": "1.0.82",
"@seafile/seafile-editor": "1.0.99",
"@uiw/codemirror-extensions-langs": "^4.19.4",
"@uiw/react-codemirror": "^4.19.4",
"chart.js": "2.9.4",
@ -4821,9 +4821,9 @@
}
},
"node_modules/@seafile/seafile-editor": {
"version": "1.0.82",
"resolved": "https://registry.npmjs.org/@seafile/seafile-editor/-/seafile-editor-1.0.82.tgz",
"integrity": "sha512-DW/C6gM4W7I/O3Px9XywRWAjsqBwy8orv/Gi24mEJST6+bBY767lZVJq6IcMhx1ZaHsWHDckUz5ilydzTwNRzA==",
"version": "1.0.99",
"resolved": "https://registry.npmjs.org/@seafile/seafile-editor/-/seafile-editor-1.0.99.tgz",
"integrity": "sha512-jn37mHp5yvfmr8TVKjuT6jocoseN1oFcnA1HFqyBGIVaGmgTuibiEAFZhN9bXE8ne3b7jr1x68T/MlZi0LT9pA==",
"dependencies": {
"@seafile/react-image-lightbox": "2.0.5",
"classnames": "2.3.2",
@ -31451,9 +31451,9 @@
}
},
"@seafile/seafile-editor": {
"version": "1.0.82",
"resolved": "https://registry.npmjs.org/@seafile/seafile-editor/-/seafile-editor-1.0.82.tgz",
"integrity": "sha512-DW/C6gM4W7I/O3Px9XywRWAjsqBwy8orv/Gi24mEJST6+bBY767lZVJq6IcMhx1ZaHsWHDckUz5ilydzTwNRzA==",
"version": "1.0.99",
"resolved": "https://registry.npmjs.org/@seafile/seafile-editor/-/seafile-editor-1.0.99.tgz",
"integrity": "sha512-jn37mHp5yvfmr8TVKjuT6jocoseN1oFcnA1HFqyBGIVaGmgTuibiEAFZhN9bXE8ne3b7jr1x68T/MlZi0LT9pA==",
"requires": {
"@seafile/react-image-lightbox": "2.0.5",
"classnames": "2.3.2",

View File

@ -11,7 +11,7 @@
"@seafile/resumablejs": "1.1.16",
"@seafile/sdoc-editor": "0.5.68",
"@seafile/seafile-calendar": "0.0.12",
"@seafile/seafile-editor": "1.0.82",
"@seafile/seafile-editor": "1.0.99",
"@uiw/codemirror-extensions-langs": "^4.19.4",
"@uiw/react-codemirror": "^4.19.4",
"chart.js": "2.9.4",

View File

@ -1 +1,15 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1715912574269" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13472" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M643.2 467.2l-217.6-64c-25.6-6.4-41.6-32-41.6-57.6 0-32 25.6-57.6 57.6-57.6H576c25.6 0 48 6.4 67.2 22.4 12.8 9.6 28.8 6.4 38.4-3.2l70.4-67.2c16-16 12.8-38.4-3.2-51.2C700.8 150.4 640 128 576 128V32c0-19.2-16-32-32-32h-64c-19.2 0-32 12.8-32 32v96h-6.4c-128 0-230.4 108.8-217.6 240 9.6 92.8 80 166.4 166.4 192l204.8 60.8c25.6 6.4 41.6 32 41.6 57.6 0 32-25.6 57.6-57.6 57.6H448c-25.6 0-48-6.4-67.2-22.4-12.8-9.6-28.8-6.4-38.4 3.2l-70.4 67.2c-16 16-12.8 38.4 3.2 51.2C323.2 873.6 384 896 448 896v96c0 16 16 32 32 32h64c19.2 0 32-16 32-32v-96c92.8-3.2 179.2-57.6 211.2-144 44.8-124.8-28.8-252.8-144-284.8z" fill="#949494" p-id="13473"></path></svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<style type="text/css">
.st0{fill:#999999;}
</style>
<title>currency</title>
<g id="currency">
<path id="路径" class="st0" d="M24.4,20.4c0,3.3-2.3,6.1-6.5,6.8V30c0,0.6-0.4,1-1,1h-1.6c-0.6,0-1-0.4-1-1v-2.5l0,0
c-2.5-0.1-4.9-0.8-6.2-1.6l1.1-4.3c1.5,0.8,3.7,1.6,6.1,1.6c2.1,0,3.6-0.8,3.6-2.3c0-1.4-1.2-2.3-3.9-3.2c-3.9-1.3-6.6-3.2-6.6-6.7
c0-3.3,2.3-5.8,6.2-6.5V2c0-0.6,0.4-1,1-1H17c0.6,0,1,0.4,1,1v2.2l0,0c2.4,0.1,4.1,0.6,5.4,1.2l-1.1,4.2c-0.9-0.4-2.6-1.3-5.3-1.3
c-2.4,0-3.2,1.1-3.2,2.1c0,1.2,1.3,2,4.4,3.1C22.7,15.1,24.4,17.1,24.4,20.4z"/>
</g>
</svg>

Before

(image error) Size: 976 B

After

(image error) Size: 908 B

View File

@ -484,7 +484,7 @@ class Subscription extends Component {
<div id="product-price" className="subscription-info">
<h3 className="subscription-info-heading">{'云服务付费方案'}</h3>
<p className="mb-2">
<a rel="noopener noreferrer" target="_blank" href="https://www.seafile.com/product/private_server/">{'查看详情'}</a>
<a rel="noopener noreferrer" target="_blank" href="https://www.seafile.com/seafile-docs/home/">{'查看详情'}</a>
</p>
</div>
{paymentTypeList.map((item, index) => {

View File

@ -688,6 +688,7 @@ a, a:hover { color: #ec8000; }
font-weight: bold;
}
.side-nav-con .active .seafile-multicolor-icon,
.side-nav-con .active [class^="sf2-icon-"],
.side-nav-con .active [class^="sf3-font-"],
.side-nav-con .active .nav-icon,

View File

@ -194,6 +194,10 @@ class Saml2Backend(ModelBackend):
if not seafile_groups:
return
# support a list of comma-separated IDs as seafile_groups claim
if len(seafile_groups) == 1 and ',' in seafile_groups[0]:
seafile_groups = seafile_groups[0].split(',')
saml_group_ids = [int(group_id) for group_id in seafile_groups]
joined_groups = ccnet_api.get_groups(user.username)

View File

@ -783,7 +783,11 @@ class AdminUsers(APIView):
info['last_access_time'] = get_user_last_access_time(user.email, '')
if getattr(settings, 'MULTI_INSTITUTION', False):
info['institution'] = profile.institution if profile else ''
if profile and profile.institution and \
profile.institution.lower() != "null":
info['institution'] = profile.institution
else:
info['institution'] = ''
data.append(info)

View File

@ -1590,10 +1590,10 @@ class DownloadRepo(APIView):
is_syncable = resp_json['is_syncable']
forbidden_path = resp_json.get('forbidden_path', '')
if 'seadrive' in request.META.get('HTTP_USER_AGENT', '').lower() and \
not is_syncable and forbidden_path == '/':
error_msg = 'unsyncable share permission'
return api_error(status.HTTP_403_FORBIDDEN, error_msg)
if 'seadrive' in request.META.get('HTTP_USER_AGENT', '').lower():
if not is_syncable and forbidden_path == '/':
error_msg = 'unsyncable share permission'
return api_error(status.HTTP_403_FORBIDDEN, error_msg)
else:
if not is_syncable:
error_msg = 'unsyncable share permission'