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
40a4fd97
Verified
Commit
40a4fd97
authored
Oct 11, 2018
by
Peter Stanko
Browse files
Ability to import users from csv
parent
efe9a5e3
Changes
1
Hide whitespace changes
Inline
Side-by-side
management/data/__init__.py
View file @
40a4fd97
...
...
@@ -6,6 +6,7 @@ from flask import Flask
from
flask_sqlalchemy
import
SQLAlchemy
from
management.data
import
shared
from
management.data.data_cpp
import
init_cpp_data
from
management.data.data_dev
import
init_dev_data
from
management.data.data_prod
import
init_prod_data
from
management.data.data_test
import
init_test_data
...
...
@@ -45,6 +46,8 @@ class DataManagement(object):
init_prod_data
(
db
=
self
.
db
,
app
=
self
.
app
)
if
env
==
'test'
:
init_test_data
(
db
=
self
.
db
,
app
=
self
.
app
)
if
env
==
'cpp'
:
init_cpp_data
(
app
=
self
.
app
,
db
=
self
.
db
)
else
:
init_dev_data
(
db
=
self
.
db
,
app
=
self
.
app
)
...
...
@@ -196,16 +199,26 @@ class DataManagement(object):
users
=
self
.
_parse_csv_users
(
file
)
created_users
=
[]
for
user
in
users
:
if
self
.
rest
.
find
.
user
(
user
[
'username'
],
throws
=
False
):
log
.
debug
(
f
"[IMPORT] skipping already existing user
{
user
[
'username'
]
}
:
{
user
}
"
)
continue
log
.
debug
(
f
"[IMPORT] Adding user
{
user
[
'username'
]
}
:
{
user
}
"
)
created
=
self
.
rest
.
users
.
create
(
**
user
,
admin
=
False
)
created_users
.
append
(
created
)
self
.
_add_users_to_course
(
created_users
,
role
,
group
)
self
.
_add_users_to_course
(
created_users
,
role
,
group
)
def
_parse_csv_users
(
self
,
file
=
None
):
def
_parse_csv_users
(
self
,
file
=
None
)
->
list
:
fields
=
[
'username'
,
'uco'
,
'email'
,
'name'
]
def
__read_users
(
reader
):
return
[
user
for
user
in
reader
]
if
file
is
None
:
return
csv
.
DictReader
(
sys
.
stdin
,
fieldnames
=
fields
)
reader
=
csv
.
DictReader
(
sys
.
stdin
,
fieldnames
=
fields
)
return
__read_users
(
reader
)
with
open
(
file
)
as
f
:
return
csv
.
DictReader
(
f
,
fieldnames
=
fields
)
reader
=
csv
.
DictReader
(
f
,
fieldnames
=
fields
)
return
__read_users
(
reader
)
def
_add_users_to_course
(
self
,
created_users
,
role
:
Role
,
group
:
Group
):
for
user
in
created_users
:
...
...
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