Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Kontr 2.0
Portal API Backend
Commits
9589f35c
Verified
Commit
9589f35c
authored
Oct 15, 2018
by
Peter Stanko
Browse files
Logging the get operation
parent
bb7a8b4f
Changes
8
Hide whitespace changes
Inline
Side-by-side
portal/rest/client.py
View file @
9589f35c
...
...
@@ -21,6 +21,7 @@ class ClientController(CustomResource):
def
get
(
self
):
client
=
self
.
permissions
.
client_owner
schema
=
SCHEMAS
.
user
()
if
client
.
type
==
ClientType
.
USER
else
SCHEMAS
.
worker
()
log
.
debug
(
f
"[REST] Get current client
{
client
.
log_name
}
by
{
self
.
client
.
log_name
}
"
)
return
schema
.
dump
(
client
)[
0
],
200
...
...
@@ -33,7 +34,7 @@ class ClientController(CustomResource):
def
get
(
self
,
cid
:
str
):
self
.
permissions
.
require
.
sysadmin_or_self
(
cid
)
client
=
self
.
rest
.
find
.
client
(
cid
)
log
.
debug
(
f
"[REST] Get client
{
client
.
log_name
}
by
{
self
.
client
.
log_name
}
"
)
schema
=
SCHEMAS
.
user
()
if
client
.
type
==
ClientType
.
USER
else
SCHEMAS
.
worker
()
return
schema
.
dump
(
client
)[
0
],
200
...
...
@@ -47,6 +48,7 @@ class ClientSecretsController(CustomResource):
def
get
(
self
,
cid
:
str
):
self
.
permissions
.
require
.
sysadmin_or_self
(
cid
)
client
=
self
.
rest
.
find
.
client
(
cid
)
log
.
debug
(
f
"[REST] Get client secrets
{
client
.
log_name
}
by
{
self
.
client
.
log_name
}
"
)
return
SCHEMAS
.
dump
(
'secrets'
,
client
.
secrets
)
@
jwt_required
...
...
@@ -56,6 +58,8 @@ class ClientSecretsController(CustomResource):
self
.
permissions
.
require
.
sysadmin_or_self
(
cid
)
data
=
rest_helpers
.
parse_request_data
(
action
=
'create'
,
resource
=
'secret'
)
client
=
self
.
find
.
client
(
cid
)
log
.
info
(
f
"[REST] Create new secret by
{
self
.
client
.
log_name
}
"
f
"for
{
client
.
log_name
}
:
{
data
}
"
)
new_secret
,
value
=
self
.
rest
.
secrets
(
client
=
client
).
create
(
**
data
)
return
{
'id'
:
new_secret
.
id
,
'value'
:
value
},
201
...
...
@@ -70,6 +74,7 @@ class ClientSecretController(CustomResource):
def
get
(
self
,
cid
:
str
,
sid
:
str
):
self
.
rest
.
permissions
.
require
.
sysadmin_or_self
(
cid
)
client
=
self
.
rest
.
find
.
client
(
cid
)
log
.
debug
(
f
"[REST] Get secret for
{
client
.
log_name
}
by
{
self
.
client
.
log_name
}
:
{
sid
}
"
)
secret
=
self
.
rest
.
find
.
secret
(
client
,
sid
)
return
SCHEMAS
.
dump
(
'secret'
,
secret
)
...
...
@@ -80,6 +85,8 @@ class ClientSecretController(CustomResource):
self
.
rest
.
permissions
.
require
.
sysadmin_or_self
(
cid
)
client
=
self
.
find
.
client
(
cid
)
secret
=
self
.
find
.
secret
(
client
,
sid
)
log
.
info
(
f
"[REST] Delete a secret by
{
self
.
client
.
log_name
}
:
{
secret
.
log_name
}
"
)
self
.
rest
.
secrets
(
secret
).
delete
()
return
''
,
204
...
...
@@ -94,5 +101,6 @@ class ClientSecretController(CustomResource):
client
=
self
.
find
.
client
(
cid
)
secret
=
self
.
find
.
secret
(
client
,
sid
)
log
.
info
(
f
"[REST] Update a secret
{
secret
.
log_name
}
by
{
self
.
client
.
log_name
}
:
{
data
}
"
)
self
.
rest
.
secrets
(
secret
).
update
(
**
data
)
return
''
,
204
portal/rest/courses.py
View file @
9589f35c
...
...
@@ -23,7 +23,7 @@ class CourseList(CustomResource):
def
get
(
self
):
# authorization
self
.
permissions
.
require
.
sysadmin
()
log
.
debug
(
f
"[REST] Get Courses by
{
self
.
client
.
log_name
}
"
)
courses_list
=
self
.
rest
.
courses
.
find_all
()
return
SCHEMAS
.
dump
(
'courses'
,
courses_list
)
...
...
@@ -51,6 +51,7 @@ class CourseResource(CustomResource):
client
=
self
.
rest
.
auth
.
client
course
=
self
.
rest
.
find
.
course
(
cid
)
# authorization
log
.
debug
(
f
"[REST] Get course
{
course
.
log_name
}
by
{
self
.
client
.
log_name
}
"
)
perm_service
=
self
.
permissions
(
course
=
course
)
if
perm_service
.
check
.
permissions
([
'view_course_full'
]):
return
SCHEMAS
.
dump
(
'course'
,
course
)
...
...
@@ -99,6 +100,7 @@ class CourseNotesToken(CustomResource):
def
get
(
self
,
cid
):
course
=
self
.
find
.
course
(
cid
)
# authorization
log
.
debug
(
f
"[REST] Get course notes token in
{
course
.
log_name
}
by
{
self
.
client
.
log_name
}
"
)
self
.
permissions
(
course
=
course
).
require
.
course_access_token
()
return
course
.
notes_access_token
...
...
@@ -173,6 +175,9 @@ class CourseClients(CustomResource):
group_ids
=
request
.
args
.
getlist
(
'group'
)
role_ids
=
request
.
args
.
getlist
(
'role'
)
client_type
=
extract_client_type
()
log
.
debug
(
f
"[REST] Get course clients in
{
course
.
log_name
}
"
f
"by
{
self
.
client
.
log_name
}
: roles=
{
role_ids
}
, groups=
{
group_ids
}
, "
f
"type=
{
client_type
}
"
)
clients
=
self
.
rest
.
courses
(
course
).
get_clients_filtered
(
group_ids
,
role_ids
,
client_type
=
client_type
)
return
SCHEMAS
.
dump
(
'clients'
,
clients
)
...
...
@@ -189,8 +194,11 @@ class CourseClients(CustomResource):
self
.
permissions
(
course
=
course
).
require
.
permissions
([
'view_course_full'
])
group_ids
=
request
.
args
.
getlist
(
'group'
)
role_ids
=
request
.
args
.
getlist
(
'role'
)
log
.
debug
(
f
"[REST] Get course users in
{
course
.
log_name
}
"
f
"by
{
self
.
client
.
log_name
}
: roles=
{
role_ids
}
, groups=
{
group_ids
}
"
)
users
=
self
.
rest
.
courses
(
course
).
get_clients_filtered
(
group_ids
,
role_ids
,
client_type
=
ClientType
.
USER
)
return
SCHEMAS
.
dump
(
'users'
,
users
)
@
courses_namespace
.
route
(
'/<string:cid>/workers'
)
...
...
@@ -205,6 +213,8 @@ class CourseClients(CustomResource):
self
.
permissions
(
course
=
course
).
require
.
permissions
([
'view_course_full'
])
group_ids
=
request
.
args
.
getlist
(
'group'
)
role_ids
=
request
.
args
.
getlist
(
'role'
)
log
.
debug
(
f
"[REST] Get course workers in
{
course
.
log_name
}
"
f
"by
{
self
.
client
.
log_name
}
: roles=
{
role_ids
}
, groups=
{
group_ids
}
"
)
workers
=
self
.
rest
.
courses
(
course
).
get_clients_filtered
(
group_ids
,
role_ids
,
client_type
=
ClientType
.
WORKER
)
return
SCHEMAS
.
dump
(
'workers'
,
workers
)
portal/rest/groups.py
View file @
9589f35c
...
...
@@ -21,6 +21,7 @@ class GroupsList(CustomResource):
# @groups_namespace.response(200, 'List of all groups', model=groups_schema)
def
get
(
self
,
cid
:
str
):
course
=
self
.
find
.
course
(
cid
)
log
.
debug
(
f
"[REST] Get groups in
{
course
.
log_name
}
by
{
self
.
client
.
log_name
}
"
)
groups
=
self
.
rest
.
groups
.
find_all
(
course
)
return
SCHEMAS
.
dump
(
'groups'
,
groups
)
...
...
@@ -51,8 +52,8 @@ class GroupResource(CustomResource):
def
get
(
self
,
cid
:
str
,
gid
:
str
):
course
=
self
.
find
.
course
(
cid
)
# authorization
log
.
debug
(
f
"[REST] Get group in
{
course
.
log_name
}
by
{
self
.
client
.
log_name
}
:
{
gid
}
"
)
self
.
permissions
(
course
=
course
).
require
.
view_course
()
group
=
self
.
find
.
group
(
course
,
gid
)
return
SCHEMAS
.
dump
(
'group'
,
group
)
...
...
@@ -97,6 +98,7 @@ class GroupUsersList(CustomResource):
group
=
self
.
find
.
group
(
course
,
gid
)
# authorization
log
.
debug
(
f
"[REST] Get group users in
{
group
.
log_name
}
by
{
self
.
client
.
log_name
}
"
)
self
.
permissions
(
course
=
course
).
require
.
belongs_to_group
(
group
)
users
=
self
.
rest
.
groups
(
group
).
find_users_by_role
(
role_id
=
role_id
)
...
...
@@ -179,7 +181,7 @@ class GroupProjectsList(CustomResource):
group
=
self
.
find
.
group
(
course
,
gid
)
# authorization
self
.
permissions
(
course
=
course
).
require
.
belongs_to_group
(
group
)
log
.
debug
(
f
"[REST] Get group projects in
{
group
.
log_name
}
by
{
self
.
client
.
log_name
}
"
)
projects
=
self
.
rest
.
groups
(
group
).
find_projects
()
return
SCHEMAS
.
dump
(
'projects'
,
projects
)
...
...
portal/rest/projects.py
View file @
9589f35c
...
...
@@ -24,6 +24,7 @@ class ProjectsList(CustomResource):
# @projects_namespace.response(200, 'Projects list', model=projects_schema)
def
get
(
self
,
cid
:
str
):
course
=
self
.
find
.
course
(
cid
)
log
.
debug
(
f
"[REST] Get projects in
{
course
.
log_name
}
by
{
self
.
client
.
log_name
}
"
)
projects
=
self
.
rest
.
projects
.
find_all
(
course
)
return
SCHEMAS
.
dump
(
'projects'
,
projects
)
...
...
@@ -56,7 +57,7 @@ class ProjectResource(CustomResource):
course
=
self
.
find
.
course
(
cid
)
# authorization
self
.
permissions
(
course
=
course
).
require
.
view_course
()
log
.
debug
(
f
"[REST] Get project in
{
course
.
log_name
}
by
{
self
.
client
.
log_name
}
:
{
pid
}
"
)
project
=
self
.
find
.
project
(
course
,
pid
)
return
SCHEMAS
.
dump
(
'project'
,
project
)
...
...
@@ -102,6 +103,8 @@ class ProjectConfigResource(CustomResource):
course
=
self
.
find
.
course
(
cid
)
project
=
self
.
find
.
project
(
course
,
pid
)
# authorization
log
.
debug
(
f
"[REST] Get project config in
{
project
.
log_name
}
"
f
" by
{
self
.
client
.
log_name
}
"
)
schema
=
self
.
get_config_schema_based_on_permissions
(
course
)
return
schema
.
dump
(
project
.
config
)
...
...
@@ -167,6 +170,8 @@ class ProjectSubmissions(CustomResource):
user_id
=
request
.
args
.
get
(
'user'
)
project
=
self
.
find
.
project
(
course
,
pid
)
log
.
debug
(
f
"[REST] Get project submissions in
{
project
.
log_name
}
"
f
" by
{
self
.
client
.
log_name
}
for user
{
user_id
}
"
)
submissions
=
self
.
rest
.
projects
(
project
).
find_project_submissions
(
user_id
)
return
SCHEMAS
.
dump
(
'submissions'
,
submissions
)
...
...
@@ -211,6 +216,8 @@ class ProjectTestFiles(CustomResource):
course
=
self
.
find
.
course
(
cid
)
self
.
permissions
(
course
=
course
).
require
.
view_course_full
()
project
=
self
.
find
.
project
(
course
,
pid
)
log
.
debug
(
f
"[REST] Get project test files in
{
project
.
log_name
}
"
f
" by
{
self
.
client
.
log_name
}
"
)
service
=
self
.
rest
.
storage
(
project
=
project
)
storage_entity
=
service
.
get_test_files_entity_from_storage
()
return
service
.
send_file_or_zip
(
storage_entity
)
portal/rest/roles.py
View file @
9589f35c
...
...
@@ -22,6 +22,7 @@ class RoleList(CustomResource):
def
get
(
self
,
cid
):
course
=
self
.
find
.
course
(
cid
)
roles
=
self
.
rest
.
roles
.
find_all
(
course
)
log
.
debug
(
f
"[REST] Get roles in
{
course
.
log_name
}
by
{
self
.
client
.
log_name
}
"
)
return
SCHEMAS
.
dump
(
'roles'
,
roles
)
@
jwt_required
...
...
@@ -51,7 +52,7 @@ class RoleResource(CustomResource):
course
=
self
.
find
.
course
(
cid
)
# authorization
self
.
permissions
(
course
=
course
).
require
.
view_course
()
log
.
debug
(
f
"[REST] Get role in
{
course
.
log_name
}
by
{
self
.
client
.
log_name
}
:
{
rid
}
"
)
role
=
self
.
find
.
role
(
course
,
rid
)
return
SCHEMAS
.
dump
(
'role'
,
role
)
...
...
@@ -95,7 +96,7 @@ class RolePermissions(CustomResource):
def
get
(
self
,
cid
:
str
,
rid
:
str
):
course
=
self
.
find
.
course
(
cid
)
role
=
self
.
find
.
role
(
course
,
rid
)
log
.
debug
(
f
"[REST] Get role permissions in
{
role
.
log_name
}
by
{
self
.
client
.
log_name
}
"
)
# authorization
self
.
permissions
(
course
=
course
).
require
.
belongs_to_role
(
role
)
...
...
@@ -130,7 +131,7 @@ class RoleUsersList(CustomResource):
role
=
self
.
find
.
role
(
course
,
rid
)
type
=
request
.
args
.
get
(
'type'
)
# authorization
log
.
debug
(
f
"[REST] Get role clients in
{
role
.
log_name
}
by
{
self
.
client
.
log_name
}
"
)
self
.
permissions
(
course
=
course
).
require
.
belongs_to_role
(
role
)
users
=
[
client
for
client
in
role
.
clients
if
client
.
type
==
ClientType
[
type
.
upper
()]]
...
...
portal/rest/submissions.py
View file @
9589f35c
...
...
@@ -17,6 +17,7 @@ class SubmissionsResource(CustomResource):
@
jwt_required
def
get
(
self
):
submissions
=
self
.
rest
.
submissions
.
find_all
()
log
.
debug
(
f
"[REST] Get submissions by
{
self
.
client
.
log_name
}
"
)
return
SCHEMAS
.
dump
(
'submissions'
,
submissions
)
...
...
@@ -30,6 +31,7 @@ class SubmissionResource(CustomResource):
submission
=
self
.
find
.
submission
(
sid
)
course
=
submission
.
project
.
course
# Authorization
log
.
debug
(
f
"[REST] Get submission by
{
self
.
client
.
log_name
}
:
{
submission
.
log_name
}
"
)
self
.
permissions
(
course
=
course
).
require
.
read_submission
(
submission
)
return
SCHEMAS
.
dump
(
'submission'
,
submission
)
...
...
@@ -53,6 +55,7 @@ class SubmissionState(CustomResource):
def
get
(
self
,
sid
:
str
):
submission
=
self
.
find
.
submission
(
sid
)
course
=
submission
.
project
.
course
log
.
debug
(
f
"[REST] Get submission state by
{
self
.
client
.
log_name
}
:
{
submission
.
log_name
}
"
)
self
.
permissions
(
course
=
course
).
require
.
read_submission
(
submission
)
return
SCHEMAS
.
dump
(
'submission'
,
submission
)
...
...
@@ -80,6 +83,8 @@ class SubmissionStatistics(CustomResource):
def
get
(
self
,
sid
:
str
):
submission
=
self
.
find
.
submission
(
sid
)
course
=
submission
.
project
.
course
log
.
debug
(
f
"[REST] Get submission statistics "
f
"by
{
self
.
client
.
log_name
}
:
{
submission
.
log_name
}
"
)
self
.
permissions
(
course
=
course
).
require
.
read_submission
(
submission
)
return
self
.
rest
.
submissions
(
submission
).
get_stats
()
...
...
@@ -101,6 +106,8 @@ class SubmissionSourcesTree(CustomResource):
def
get
(
self
,
sid
:
str
):
submission
=
self
.
find
.
submission
(
sid
)
course
=
submission
.
project
.
course
log
.
debug
(
f
"[REST] Get submission sources tree"
f
" by
{
self
.
client
.
log_name
}
:
{
submission
.
log_name
}
"
)
self
.
permissions
(
course
=
course
).
require
.
read_submission
(
submission
)
service
=
self
.
rest
.
storage
(
submission
)
return
service
.
send_files_tree
()
...
...
@@ -114,6 +121,8 @@ class SubmissionSourceFiles(CustomResource):
def
get
(
self
,
sid
:
str
):
submission
=
self
.
find
.
submission
(
sid
)
course
=
submission
.
project
.
course
log
.
debug
(
f
"[REST] Get submission source files "
f
"by
{
self
.
client
.
log_name
}
:
{
submission
.
log_name
}
"
)
self
.
permissions
(
course
=
course
).
require
.
read_submission
(
submission
)
service
=
self
.
rest
.
storage
(
submission
)
return
service
.
send_file_or_zip
()
...
...
@@ -127,6 +136,8 @@ class SubmissionTestFilesTree(CustomResource):
def
get
(
self
,
sid
:
str
):
submission
=
self
.
find
.
submission
(
sid
)
course
=
submission
.
project
.
course
log
.
debug
(
f
"[REST] Get submission test files tree by "
f
"
{
self
.
client
.
log_name
}
:
{
submission
.
log_name
}
"
)
self
.
permissions
(
course
=
course
).
require
.
read_submission_group
(
submission
)
service
=
self
.
rest
.
storage
(
project
=
submission
.
project
)
storage_entity
=
service
.
get_test_files_entity_from_storage
()
...
...
@@ -141,6 +152,8 @@ class SubmissionTestFiles(CustomResource):
def
get
(
self
,
sid
:
str
):
submission
=
self
.
find
.
submission
(
sid
)
course
=
submission
.
project
.
course
log
.
debug
(
f
"[REST] Get submission test files"
f
" by
{
self
.
client
.
log_name
}
:
{
submission
.
log_name
}
"
)
self
.
permissions
(
course
=
course
).
require
.
read_submission_group
(
submission
)
service
=
self
.
rest
.
storage
(
submission
=
submission
)
storage_entity
=
service
.
get_test_files_entity_from_storage
()
...
...
@@ -155,6 +168,8 @@ class SubmissionResultFilesTree(CustomResource):
def
get
(
self
,
sid
:
str
):
submission
=
self
.
find
.
submission
(
sid
)
course
=
submission
.
project
.
course
log
.
debug
(
f
"[REST] Get submission result tree"
f
" by
{
self
.
client
.
log_name
}
:
{
submission
.
log_name
}
"
)
self
.
permissions
(
course
=
course
).
require
.
read_submission_group
(
submission
)
storage_entity
=
storage
.
results
.
get
(
submission
.
id
)
service
=
self
.
rest
.
storage
(
submission
)
...
...
@@ -169,6 +184,8 @@ class SubmissionResultFiles(CustomResource):
def
get
(
self
,
sid
:
str
):
submission
=
self
.
find
.
submission
(
sid
)
course
=
submission
.
project
.
course
log
.
debug
(
f
"[REST] Get submission result files"
f
" by
{
self
.
client
.
log_name
}
:
{
submission
.
log_name
}
"
)
self
.
permissions
(
course
=
course
).
require
.
read_submission_group
(
submission
)
storage_entity
=
storage
.
results
.
get
(
submission
.
id
)
service
=
self
.
rest
.
storage
(
submission
=
submission
)
...
...
@@ -245,6 +262,8 @@ class SubmissionReview(CustomResource):
def
get
(
self
,
sid
:
str
):
submission
=
self
.
find
.
submission
(
sid
)
course
=
submission
.
project
.
course
log
.
debug
(
f
"[REST] Get submission review"
f
" by
{
self
.
client
.
log_name
}
:
{
submission
.
log_name
}
"
)
self
.
permissions
(
course
=
course
).
require
.
read_submission
(
submission
)
return
SCHEMAS
.
dump
(
'review'
,
submission
.
review
)
...
...
portal/rest/users.py
View file @
9589f35c
...
...
@@ -33,6 +33,7 @@ class UserList(CustomResource):
"Invalid filter combination at /get/users: "
"missing course id."
)
log
.
debug
(
f
"[REST] Get users by
{
self
.
client
.
log_name
}
"
)
filtered_users
=
self
.
rest
.
users
.
find_users_filtered
(
course_id
=
course_id
,
group_id
=
group_id
)
return
SCHEMAS
.
dump
(
'users'
,
filtered_users
),
200
...
...
@@ -58,6 +59,7 @@ class UserResource(CustomResource):
def
get
(
self
,
uid
:
str
):
user
=
self
.
find
.
user
(
uid
)
# authorization
log
.
debug
(
f
"[REST] Get user
{
user
.
log_name
}
by
{
self
.
client
.
log_name
}
"
)
schema
=
self
.
get_user_schema_based_on_permissions
(
user
)
return
schema
.
dump
(
user
)[
0
],
200
...
...
@@ -71,8 +73,7 @@ class UserResource(CustomResource):
@
users_namespace
.
response
(
204
,
'User updated'
)
def
put
(
self
,
uid
:
str
):
user
=
self
.
find
.
user
(
uid
)
permissions_service
=
self
.
permissions
()
permissions_service
.
require
.
sysadmin_or_self
(
uid
)
self
.
permissions
().
require
.
sysadmin_or_self
(
uid
)
data
=
rest_helpers
.
parse_request_data
(
action
=
'update'
,
resource
=
'user'
,
partial
=
True
)
log
.
info
(
f
"[REST] Update user
{
user
.
log_name
}
by
{
self
.
client
.
log_name
}
:
{
data
}
"
)
...
...
@@ -118,6 +119,9 @@ class UserSubmissionList(CustomResource):
course_id
=
request
.
args
.
get
(
'course'
)
project_ids
=
request
.
args
.
getlist
(
'project'
)
log
.
debug
(
f
"[REST] Get submissions list for
{
user
.
log_name
}
by
{
self
.
client
.
log_name
}
"
f
"in course=
{
course_id
}
projects=
{
project_ids
}
"
)
if
project_ids
and
not
course_id
:
raise
errors
.
PortalAPIError
(
400
,
f
"Invalid filter combination at "
...
...
@@ -144,6 +148,7 @@ class UserRoleList(CustomResource):
user
=
self
.
find
.
user
(
uid
)
self
.
permissions
().
require
.
sysadmin_or_self
(
uid
)
course_id
=
request
.
args
.
get
(
'course'
)
log
.
debug
(
f
"[REST] Get user roles for
{
user
.
log_name
}
by
{
self
.
client
.
log_name
}
"
)
roles
=
self
.
rest
.
users
(
user
).
find_roles_filtered
(
course_id
=
course_id
)
return
SCHEMAS
.
dump
(
'roles'
,
roles
)
...
...
@@ -156,6 +161,7 @@ class UserCourseList(CustomResource):
# @users_namespace.response(200, 'Courses roles list', model=courses_schema)
def
get
(
self
,
uid
:
str
):
user
=
self
.
find
.
user
(
uid
)
log
.
debug
(
f
"[REST] Get user roles for
{
user
.
log_name
}
by
{
self
.
client
.
log_name
}
"
)
self
.
permissions
().
require
.
sysadmin_or_self
(
uid
)
return
SCHEMAS
.
dump
(
'courses'
,
user
.
courses
)
...
...
@@ -169,6 +175,7 @@ class UserProjectsList(CustomResource):
def
get
(
self
,
uid
:
str
):
user
=
self
.
find
.
user
(
uid
)
# authorization
log
.
debug
(
f
"[REST] Get user projects for
{
user
.
log_name
}
by
{
self
.
client
.
log_name
}
"
)
self
.
permissions
().
require
.
sysadmin_or_self
(
uid
)
projects_dump
=
self
.
rest
.
users
(
user
).
dump_projects_with_wait
()
return
projects_dump
...
...
@@ -183,6 +190,7 @@ class UserGroupList(CustomResource):
def
get
(
self
,
uid
:
str
):
user
=
self
.
find
.
user
(
uid
)
# authorization
log
.
debug
(
f
"[REST] Get user groups for
{
user
.
log_name
}
by
{
self
.
client
.
log_name
}
"
)
self
.
permissions
().
require
.
sysadmin_or_self
(
uid
)
course_id
=
request
.
args
.
get
(
'course'
)
groups
=
self
.
rest
.
users
(
user
).
find_groups_filtered
(
course_id
=
course_id
)
...
...
@@ -198,8 +206,8 @@ class UserReviewList(CustomResource):
def
get
(
self
,
uid
:
str
):
user
=
self
.
find
.
user
(
uid
)
# authorization
log
.
debug
(
f
"[REST] Get user reviews for
{
user
.
log_name
}
by
{
self
.
client
.
log_name
}
"
)
self
.
permissions
().
require
.
sysadmin_or_self
(
uid
)
reviews
=
self
.
rest
.
users
(
user
).
find_reviews
()
return
SCHEMAS
.
dump
(
'reviews'
,
reviews
)
...
...
@@ -212,9 +220,12 @@ class UserEffectivePermissions(CustomResource):
@
users_namespace
.
response
(
200
,
'Effective permissions'
)
def
get
(
self
,
uid
:
str
):
user
=
self
.
find
.
user
(
uid
)
course_id
=
request
.
args
.
get
(
'course'
)
# authorization
log
.
debug
(
f
"[REST] Get user effective permissions"
f
" for
{
user
.
log_name
}
by
{
self
.
client
.
log_name
}
in course=
{
course_id
}
"
)
self
.
permissions
().
require
.
sysadmin_or_self
(
uid
)
course_id
=
request
.
args
.
get
(
'course'
)
perm
=
self
.
permissions
(
client
=
user
).
get_effective_permissions
(
course_id
)
return
perm
...
...
portal/rest/workers.py
View file @
9589f35c
...
...
@@ -17,6 +17,7 @@ class WorkerList(CustomResource):
# @workers_namespace.response(200, 'List of workers', model=workers_schema)
@
workers_namespace
.
response
(
403
,
'Not allowed to list workers'
)
def
get
(
self
):
log
.
debug
(
f
"[REST] Get workers by
{
self
.
client
.
log_name
}
"
)
self
.
permissions
().
require
.
sysadmin
()
workers_list
=
self
.
rest
.
workers
.
find_all
()
return
SCHEMAS
.
dump
(
'workers'
,
workers_list
)
...
...
@@ -42,6 +43,7 @@ class WorkerResource(CustomResource):
# @workers_namespace.response(200, 'Worker', model=worker_schema)
@
workers_namespace
.
response
(
403
,
'Not allowed to access worker'
)
def
get
(
self
,
wid
:
str
):
log
.
debug
(
f
"[REST] Get worker by
{
self
.
client
.
log_name
}
:
{
wid
}
"
)
self
.
permissions
().
require
.
sysadmin_or_self
(
wid
)
worker
=
self
.
find
.
worker
(
wid
)
return
SCHEMAS
.
dump
(
'worker'
,
worker
)
...
...
@@ -79,6 +81,7 @@ class WorkerStatusResource(CustomResource):
# @workers_namespace.response(200, 'Worker', model=worker_schema)
@
workers_namespace
.
response
(
403
,
'Not allowed to access worker'
)
def
get
(
self
,
wid
:
str
):
log
.
debug
(
f
"[REST] Get worker stats by
{
self
.
client
.
log_name
}
:
{
wid
}
"
)
self
.
permissions
().
require
.
sysadmin
(
wid
)
worker
=
self
.
find
.
worker
(
wid
)
return
self
.
rest
.
workers
(
worker
).
worker_client
.
status
()
...
...
@@ -92,6 +95,7 @@ class WorkerImagesResource(CustomResource):
# @workers_namespace.response(200, 'Worker', model=worker_schema)
@
workers_namespace
.
response
(
403
,
'Not allowed to access worker'
)
def
get
(
self
,
wid
:
str
):
log
.
debug
(
f
"[REST] Get worker images by
{
self
.
client
.
log_name
}
:
{
wid
}
"
)
self
.
permissions
().
require
.
sysadmin
(
wid
)
worker
=
self
.
find
.
worker
(
wid
)
return
self
.
rest
.
workers
(
worker
).
worker_client
.
list_images
()
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment