Skip to content

Commit cccd3a4

Browse files
authored
update create group owned library logic (#7403)
1 parent 7626ea3 commit cccd3a4

File tree

1 file changed

+32
-44
lines changed

1 file changed

+32
-44
lines changed

seahub/api2/endpoints/admin/group_owned_libraries.py

Lines changed: 32 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -86,68 +86,56 @@ def post(self, request, group_id):
8686
error_msg = 'No group quota.'
8787
return api_error(status.HTTP_403_FORBIDDEN, error_msg)
8888

89+
group_id = int(group_id)
90+
91+
org_id = -1
8992
if is_org_context(request):
9093
# request called by org admin
9194
org_id = request.user.org.org_id
92-
else:
93-
org_id = -1
9495

9596
# create group owned repo
96-
group_id = int(group_id)
97-
if is_pro_version() and ENABLE_STORAGE_CLASSES:
97+
if org_id and org_id > 0:
9898

99-
if STORAGE_CLASS_MAPPING_POLICY in ('USER_SELECT', 'ROLE_BASED'):
99+
repo_id = seafile_api.org_add_group_owned_repo(
100+
org_id, group_id, repo_name, permission, password,
101+
enc_version=ENCRYPTED_LIBRARY_VERSION,
102+
pwd_hash_algo=ENCRYPTED_LIBRARY_PWD_HASH_ALGO or None,
103+
pwd_hash_params=ENCRYPTED_LIBRARY_PWD_HASH_PARAMS or None)
100104

101-
storages = get_library_storages(request)
102-
storage_id = request.data.get("storage_id", None)
103-
if storage_id and storage_id not in [s['storage_id'] for s in storages]:
104-
error_msg = 'storage_id invalid.'
105-
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
105+
elif is_pro_version() and ENABLE_STORAGE_CLASSES and \
106+
STORAGE_CLASS_MAPPING_POLICY in ('USER_SELECT', 'ROLE_BASED'):
106107

107-
repo_id = seafile_api.add_group_owned_repo(group_id, repo_name,
108-
permission, password, enc_version=ENCRYPTED_LIBRARY_VERSION,
109-
pwd_hash_algo=ENCRYPTED_LIBRARY_PWD_HASH_ALGO or None,
110-
pwd_hash_params=ENCRYPTED_LIBRARY_PWD_HASH_PARAMS or None,
111-
storage_id=storage_id)
112-
else:
113-
# STORAGE_CLASS_MAPPING_POLICY == 'REPO_ID_MAPPING'
114-
if org_id and org_id > 0:
115-
repo_id = seafile_api.org_add_group_owned_repo(
116-
org_id, group_id, repo_name, permission, password,
117-
enc_version=ENCRYPTED_LIBRARY_VERSION,
118-
pwd_hash_algo=ENCRYPTED_LIBRARY_PWD_HASH_ALGO or None,
119-
pwd_hash_params=ENCRYPTED_LIBRARY_PWD_HASH_PARAMS or None)
120-
else:
121-
repo_id = seafile_api.add_group_owned_repo(
122-
group_id, repo_name, permission, password,
123-
enc_version=ENCRYPTED_LIBRARY_VERSION,
124-
pwd_hash_algo=ENCRYPTED_LIBRARY_PWD_HASH_ALGO or None,
125-
pwd_hash_params=ENCRYPTED_LIBRARY_PWD_HASH_PARAMS or None)
108+
storages = get_library_storages(request)
109+
storage_id = request.data.get("storage_id", None)
110+
if storage_id and storage_id not in [s['storage_id'] for s in storages]:
111+
error_msg = 'storage_id invalid.'
112+
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
113+
114+
repo_id = seafile_api.add_group_owned_repo(
115+
group_id, repo_name, permission, password,
116+
enc_version=ENCRYPTED_LIBRARY_VERSION,
117+
pwd_hash_algo=ENCRYPTED_LIBRARY_PWD_HASH_ALGO or None,
118+
pwd_hash_params=ENCRYPTED_LIBRARY_PWD_HASH_PARAMS or None,
119+
storage_id=storage_id)
126120
else:
127-
if org_id and org_id > 0:
128-
repo_id = seafile_api.org_add_group_owned_repo(
129-
org_id, group_id, repo_name, permission, password,
130-
enc_version=ENCRYPTED_LIBRARY_VERSION,
131-
pwd_hash_algo=ENCRYPTED_LIBRARY_PWD_HASH_ALGO or None,
132-
pwd_hash_params=ENCRYPTED_LIBRARY_PWD_HASH_PARAMS or None)
133-
else:
134-
repo_id = seafile_api.add_group_owned_repo(group_id, repo_name,
135-
permission, password,
136-
enc_version=ENCRYPTED_LIBRARY_VERSION,
137-
pwd_hash_algo=ENCRYPTED_LIBRARY_PWD_HASH_ALGO or None,
138-
pwd_hash_params=ENCRYPTED_LIBRARY_PWD_HASH_PARAMS or None)
121+
repo_id = seafile_api.add_group_owned_repo(
122+
group_id, repo_name, permission, password,
123+
enc_version=ENCRYPTED_LIBRARY_VERSION,
124+
pwd_hash_algo=ENCRYPTED_LIBRARY_PWD_HASH_ALGO or None,
125+
pwd_hash_params=ENCRYPTED_LIBRARY_PWD_HASH_PARAMS or None)
139126

140127
# for activities
141128
username = request.user.username
142129
library_template = request.data.get("library_template", '')
143130
repo_created.send(sender=None, org_id=org_id, creator=username,
144-
repo_id=repo_id, repo_name=repo_name,
145-
library_template=library_template)
131+
repo_id=repo_id, repo_name=repo_name,
132+
library_template=library_template)
146133

147134
# for notification
148135
repo = seafile_api.get_repo(repo_id)
149136
share_repo_to_group_successful.send(sender=None, from_user=username,
150-
group_id=group_id, repo=repo, path='/', org_id=org_id)
137+
group_id=group_id, repo=repo,
138+
path='/', org_id=org_id)
151139

152140
info = get_group_owned_repo_info(request, repo_id)
153141
# TODO

0 commit comments

Comments
 (0)