Newer
Older
serve the function to update the users in PiAnoS
"""
app.logger.info( "Copy all accounts to PiAnoS" )
return jsonify( {
"error": not do_pianos_update_all_accounts()
def do_pianos_update_all_accounts():
"""
Copy/update the credentials for all users.
This function keep the credentials in sync between ICNML and PiAnoS.
"""
try:
sql = """
SELECT users.username, users.password, account_type.name as g
FROM users
LEFT JOIN account_type ON users.type = account_type.id
WHERE users.password IS NOT NULL
for user in config.db.query_fetchall( sql ):
app.logger.debug( "Copy the user '{}' to PiAnoS".format( username ) )
groupid = config.pianosdb.create_group( group_name )

Marco De Donno
committed
pianos_user_id = config.pianosdb.create_user( username = username, hash = h, groupid = groupid )
config.pianosdb.reset_user( username, hash = h )

Marco De Donno
committed
config.pianosdb.create_folder( "{}'s folder".format( username ), pianos_user_id, None, pianos_user_id )
app.logger.info( "{} users copied to PiAnoS".format( nb ) )
@app.route( config.baseurl + "/pianos_api/add_segments/all" )
@admin_required
def pianos_copy_all_segments():
"""
Route to push all segments to PiAnoS.
"""
app.logger.info( "Copy all segments to PiAnoS" )
"error": not do_pianos_copy_all_segments()
} )
def do_pianos_copy_all_segments():
"""
Copy all segments images to PiAnoS. If the case already exists, the image is not pushed to PiAnoS.
"""
try:
folder_id = config.pianosdb.create_folder( "Annotation" )
img = Image.new( "L", ( 200, 200 ), 255 )
empty_img_res = 500
empty_img_id = config.pianosdb.create_image( "PRINT", img, empty_img_res, "empty" )
sql = """
SELECT files_segments.uuid, files_segments.data, files_v.resolution
FROM files_segments
LEFT JOIN files_v ON files_segments.tenprint = files_v.uuid
"""
for segment in config.db.query_fetchall( sql ):
img = str2img( segment[ "data" ] )
app.logger.debug( "{}: {}".format( segment[ "uuid" ], img ) )
try:
config.pianosdb.create_exercise(
folder_id,
segment[ "uuid" ], "",
img, segment[ "resolution" ],
empty_img_id, empty_img_res
)
except caseExistsInDB:
continue
except:
raise
config.pianosdb.commit()
return True
except:
return False
################################################################################
# Home page
@app.route( config.baseurl + "/" )
@login_required
"""
Serve the homepage to all users.
"""
if session[ "account_type_name" ] == "Donor":
return redirect( url_for( "user_myprofile_dek" ) )
elif session[ "account_type_name" ] == "Submitter":
return redirect( url_for( "submission_list" ) )
else:
return my_render_template( "index.html" )
################################################################################
gpg = gnupg.GPG( **config.gpg_options )
for key_file in os.listdir( config.keys_folder ):
with open( config.keys_folder + "/" + key_file, "r" ) as fp: