Skip to content

Commit e979bff

Browse files
fix #3070 (#3075)
* fix #3070 * Apply suggestions from code review Co-authored-by: Yoshiki Vázquez Baeza <yoshiki@ucsd.edu> * flake8 Co-authored-by: Yoshiki Vázquez Baeza <yoshiki@ucsd.edu>
1 parent e177200 commit e979bff

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

qiita_pet/handlers/api_proxy/artifact.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from qiita_db.software import Command, Parameters, Software
2323
from qiita_db.processing_job import ProcessingJob
2424
from qiita_db.exceptions import QiitaDBError
25+
from qiita_db.logger import LogEntry
2526

2627
PREP_TEMPLATE_KEY_FORMAT = 'prep_template_%s'
2728

@@ -323,7 +324,8 @@ def artifact_status_put_req(artifact_id, user_id, visibility):
323324
'message': 'Unknown visibility value: %s' % visibility}
324325

325326
pd = Artifact(int(artifact_id))
326-
access_error = check_access(pd.study.id, user_id)
327+
sid = pd.study.id
328+
access_error = check_access(sid, user_id)
327329
if access_error:
328330
return access_error
329331
user = User(str(user_id))
@@ -343,5 +345,8 @@ def artifact_status_put_req(artifact_id, user_id, visibility):
343345
else:
344346
pd.visibility = visibility
345347

348+
LogEntry.create('Warning', '%s changed artifact %s (study %d) to %s' % (
349+
user_id, artifact_id, sid, visibility))
350+
346351
return {'status': status,
347352
'message': msg}

qiita_pet/handlers/api_proxy/tests/test_artifact.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
artifact_get_req, artifact_status_put_req, artifact_graph_get_req,
2929
artifact_types_get_req, artifact_post_req, artifact_get_prep_req,
3030
artifact_get_info)
31+
from qiita_db.logger import LogEntry
3132

3233

3334
class TestArtifactAPIReadOnly(TestCase):
@@ -311,6 +312,10 @@ def test_artifact_status_put_req_private(self):
311312
exp = {'status': 'success',
312313
'message': 'Artifact visibility changed to private'}
313314
self.assertEqual(obs, exp)
315+
# testing that the log message is generated
316+
self.assertEqual(
317+
LogEntry.newest_records(1)[0].msg,
318+
'admin@foo.bar changed artifact 1 (study 1) to private')
314319

315320
def test_artifact_status_put_req_private_bad_permissions(self):
316321
obs = artifact_status_put_req(1, 'test@foo.bar', 'private')

0 commit comments

Comments
 (0)