14/04/23 - 23h

master
cherif 2023-04-14 22:51:38 +02:00
parent 4d5118ecbd
commit c2b289d2ac
7 changed files with 2376 additions and 28 deletions

View File

@ -1,11 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="07/04/23 - 11h"> <list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="10/04/23 - 17h">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Inscription_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/Inscription_mgt.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/GlobalVariable.py" beforeDir="false" afterPath="$PROJECT_DIR$/GlobalVariable.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Log/log_file.log" beforeDir="false" afterPath="$PROJECT_DIR$/Log/log_file.log" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Log/log_file.log" beforeDir="false" afterPath="$PROJECT_DIR$/Log/log_file.log" afterDir="false" />
<change beforePath="$PROJECT_DIR$/prj_common.py" beforeDir="false" afterPath="$PROJECT_DIR$/prj_common.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/email_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/email_mgt.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/lms_chamilo/mysy_lms.py" beforeDir="false" afterPath="$PROJECT_DIR$/lms_chamilo/mysy_lms.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/tools_cherif/tools_cherif.py" beforeDir="false" afterPath="$PROJECT_DIR$/tools_cherif/tools_cherif.py" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -83,7 +86,14 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1680858757338</updated> <updated>1680858757338</updated>
</task> </task>
<option name="localTasksCounter" value="4" /> <task id="LOCAL-00004" summary="10/04/23 - 17h">
<created>1681138622687</created>
<option name="number" value="00004" />
<option name="presentableId" value="LOCAL-00004" />
<option name="project" value="LOCAL" />
<updated>1681138622687</updated>
</task>
<option name="localTasksCounter" value="5" />
<servers /> <servers />
</component> </component>
<component name="Vcs.Log.Tabs.Properties"> <component name="Vcs.Log.Tabs.Properties">
@ -100,6 +110,7 @@
<component name="VcsManagerConfiguration"> <component name="VcsManagerConfiguration">
<MESSAGE value="07/04/23 - 9h" /> <MESSAGE value="07/04/23 - 9h" />
<MESSAGE value="07/04/23 - 11h" /> <MESSAGE value="07/04/23 - 11h" />
<option name="LAST_COMMIT_MESSAGE" value="07/04/23 - 11h" /> <MESSAGE value="10/04/23 - 17h" />
<option name="LAST_COMMIT_MESSAGE" value="10/04/23 - 17h" />
</component> </component>
</project> </project>

View File

@ -318,7 +318,7 @@ elif (MYSY_ENV == "DEV"):
MYSY_MARIADB_USER_PASS = "fB5z%M)GG&g!n2c" MYSY_MARIADB_USER_PASS = "fB5z%M)GG&g!n2c"
MYSY_MARIADB_HOST = "192.168.1.21" MYSY_MARIADB_HOST = "192.168.1.21"
MYSY_MARIADB_PORT = 3306 MYSY_MARIADB_PORT = 3306
MYSY_LMS_BDD = "mysy_db_chamilo_dev" MYSY_LMS_BDD = "chamilo_dev2"
MYSY_LMS_URL = "https://lms.mysy-training.com/" MYSY_LMS_URL = "https://lms.mysy-training.com/"
@ -336,3 +336,10 @@ elif (MYSY_ENV == "REC"):
Variable pour definir les unité de durée acceptées pour une formation Variable pour definir les unité de durée acceptées pour une formation
""" """
CLASS_DURATION_UNIT = ['heure', 'jour', 'mois', 'annee'] CLASS_DURATION_UNIT = ['heure', 'jour', 'mois', 'annee']
"""
Cette variable est le l'url de base pour le lms.
cette valeur est utilisée pour la creation des url du lms
"""
LMS_BAS_URL = "mysy-training.fr"

File diff suppressed because one or more lines are too long

View File

@ -63,11 +63,11 @@ def send_user_account_mail_old(message, account_mail):
my_url = "" my_url = ""
if (MYSY_GV.MYSY_ENV == "PROD"): if (MYSY_GV.MYSY_ENV == "PROD"):
my_url = "https://apimysy.iexercice.com/myclass/api/valide_user_account/"+str(message) my_url = "https://apimysy.mysy-training.com/myclass/api/valide_user_account/"+str(message)
elif (MYSY_GV.MYSY_ENV == "DEV"): elif (MYSY_GV.MYSY_ENV == "DEV"):
my_url = "http://localhost:"+str(MYSY_GV.MYSY_PORT_DEV)+"/myclass/api/valide_user_account/"+str(message) my_url = "http://localhost:"+str(MYSY_GV.MYSY_PORT_DEV)+"/myclass/api/valide_user_account/"+str(message)
elif (MYSY_GV.MYSY_ENV == "REC"): elif (MYSY_GV.MYSY_ENV == "REC"):
my_url = "https://devapimysy.iexercice.com/myclass/api/valide_user_account/" + str(message) my_url = "https://devapimysy.mysy-training.com/myclass/api/valide_user_account/" + str(message)
send_smtp_email = sib_api_v3_sdk.SendSmtpEmail(template_id=15, params={"mysyurl": my_url, send_smtp_email = sib_api_v3_sdk.SendSmtpEmail(template_id=15, params={"mysyurl": my_url,
@ -111,11 +111,11 @@ def send_user_thks_mail_old(message, account_mail):
my_url = "" my_url = ""
if (MYSY_GV.MYSY_ENV == "PROD"): if (MYSY_GV.MYSY_ENV == "PROD"):
my_url = "https://apimysy.iexercice.com/myclass/api/valide_user_account/" + str(message) my_url = "https://apimysy.mysy-training.com/myclass/api/valide_user_account/" + str(message)
elif (MYSY_GV.MYSY_ENV == "DEV"): elif (MYSY_GV.MYSY_ENV == "DEV"):
my_url = "http://localhost:"+str(MYSY_GV.MYSY_PORT_DEV)+"/myclass/api/valide_user_account/" + str(message) my_url = "http://localhost:"+str(MYSY_GV.MYSY_PORT_DEV)+"/myclass/api/valide_user_account/" + str(message)
elif (MYSY_GV.MYSY_ENV == "REC"): elif (MYSY_GV.MYSY_ENV == "REC"):
my_url = "https://devapimysy.iexercice.com/myclass/api/valide_user_account/" + str(message) my_url = "https://devapimysy.mysy-training.com/myclass/api/valide_user_account/" + str(message)
@ -144,11 +144,11 @@ def send_partner_account_mail_old(message, account_mail):
my_url = "" my_url = ""
if (MYSY_GV.MYSY_ENV == "PROD"): if (MYSY_GV.MYSY_ENV == "PROD"):
my_url = "https://apimysy.iexercice.com/myclass/api/valide_partnair_account/" + str(message) my_url = "https://apimysy.mysy-training.com/myclass/api/valide_partnair_account/" + str(message)
elif (MYSY_GV.MYSY_ENV == "DEV"): elif (MYSY_GV.MYSY_ENV == "DEV"):
my_url = "http://localhost:"+str(MYSY_GV.MYSY_PORT_DEV)+"/myclass/api/valide_partnair_account/"+str(message) my_url = "http://localhost:"+str(MYSY_GV.MYSY_PORT_DEV)+"/myclass/api/valide_partnair_account/"+str(message)
elif (MYSY_GV.MYSY_ENV == "REC"): elif (MYSY_GV.MYSY_ENV == "REC"):
my_url = "https://devapimysy.iexercice.com/myclass/api/valide_partnair_account/"+str(message) my_url = "https://devapimysy.mysy-training.com/myclass/api/valide_partnair_account/"+str(message)
print(" mail enoye à toaddrs : "+toaddrs) print(" mail enoye à toaddrs : "+toaddrs)
@ -1121,11 +1121,11 @@ def send_user_account_mail(message, account_mail):
my_url = "" my_url = ""
if (MYSY_GV.MYSY_ENV == "PROD"): if (MYSY_GV.MYSY_ENV == "PROD"):
my_url = "https://apimysy.iexercice.com/myclass/api/valide_user_account/"+str(message) my_url = "https://apimysy.mysy-training.com/myclass/api/valide_user_account/"+str(message)
elif (MYSY_GV.MYSY_ENV == "DEV"): elif (MYSY_GV.MYSY_ENV == "DEV"):
my_url = "http://localhost:"+str(MYSY_GV.MYSY_PORT_DEV)+"/myclass/api/valide_user_account/"+str(message) my_url = "http://localhost:"+str(MYSY_GV.MYSY_PORT_DEV)+"/myclass/api/valide_user_account/"+str(message)
elif (MYSY_GV.MYSY_ENV == "REC"): elif (MYSY_GV.MYSY_ENV == "REC"):
my_url = "https://devapimysy.iexercice.com/myclass/api/valide_user_account/" + str(message) my_url = "https://devapimysy.mysy-training.com/myclass/api/valide_user_account/" + str(message)
@ -1190,11 +1190,11 @@ def send_partner_account_mail(message, account_mail):
my_url = "" my_url = ""
if (MYSY_GV.MYSY_ENV == "PROD"): if (MYSY_GV.MYSY_ENV == "PROD"):
my_url = "https://apimysy.iexercice.com/myclass/api/valide_partnair_account/" + str(message) my_url = "https://apimysy.mysy-training.com/myclass/api/valide_partnair_account/" + str(message)
elif (MYSY_GV.MYSY_ENV == "DEV"): elif (MYSY_GV.MYSY_ENV == "DEV"):
my_url = "http://localhost:"+str(MYSY_GV.MYSY_PORT_DEV)+"/myclass/api/valide_partnair_account/"+str(message) my_url = "http://localhost:"+str(MYSY_GV.MYSY_PORT_DEV)+"/myclass/api/valide_partnair_account/"+str(message)
elif (MYSY_GV.MYSY_ENV == "REC"): elif (MYSY_GV.MYSY_ENV == "REC"):
my_url = "https://devapimysy.iexercice.com/myclass/api/valide_partnair_account/" + str(message) my_url = "https://devapimysy.mysy-training.com/myclass/api/valide_partnair_account/" + str(message)
@ -1327,11 +1327,11 @@ def send_user_thks_mail(message, account_mail):
my_url = "" my_url = ""
if (MYSY_GV.MYSY_ENV == "PROD"): if (MYSY_GV.MYSY_ENV == "PROD"):
my_url = "https://apimysy.iexercice.com/myclass/api/valide_user_account/" + str(message) my_url = "https://apimysy.mysy-training.com/myclass/api/valide_user_account/" + str(message)
elif (MYSY_GV.MYSY_ENV == "DEV"): elif (MYSY_GV.MYSY_ENV == "DEV"):
my_url = "http://localhost:"+str(MYSY_GV.MYSY_PORT_DEV)+"/myclass/api/valide_user_account/" + str(message) my_url = "http://localhost:"+str(MYSY_GV.MYSY_PORT_DEV)+"/myclass/api/valide_user_account/" + str(message)
elif (MYSY_GV.MYSY_ENV == "REC"): elif (MYSY_GV.MYSY_ENV == "REC"):
my_url = "https://devapimysy.iexercice.com/myclass/api/valide_user_account/" + str(message) my_url = "https://devapimysy.mysy-training.com/myclass/api/valide_user_account/" + str(message)
""" """
@ -1733,11 +1733,11 @@ def SendEmargementMail( diction):
#myurl = "http://127.0.0.1:5001/myclass/api/UserEmargementValidation/"+str(val_emarge['_id'])+"/1" #myurl = "http://127.0.0.1:5001/myclass/api/UserEmargementValidation/"+str(val_emarge['_id'])+"/1"
if (MYSY_GV.MYSY_ENV == "PROD"): if (MYSY_GV.MYSY_ENV == "PROD"):
myurl = "https://apimysy.iexercice.com/myclass/api/UserEmargementValidation/" + str(val_emarge['_id']) + "/1" myurl = "https://apimysy.mysy-training.com/myclass/api/UserEmargementValidation/" + str(val_emarge['_id']) + "/1"
elif (MYSY_GV.MYSY_ENV == "DEV"): elif (MYSY_GV.MYSY_ENV == "DEV"):
myurl = "http://127.0.0.1:5001/myclass/api/UserEmargementValidation/"+str(val_emarge['_id'])+"/1" myurl = "http://127.0.0.1:5001/myclass/api/UserEmargementValidation/"+str(val_emarge['_id'])+"/1"
elif (MYSY_GV.MYSY_ENV == "REC"): elif (MYSY_GV.MYSY_ENV == "REC"):
myurl = "https://devapimysy.iexercice.com/myclass/api/UserEmargementValidation/" + str(val_emarge['_id']) + "/1" myurl = "https://devapimysy.mysy-training.com/myclass/api/UserEmargementValidation/" + str(val_emarge['_id']) + "/1"
body = { body = {
@ -1771,12 +1771,12 @@ def SendEmargementMail( diction):
myurl = "http://127.0.0.1:5001/myclass/api/UserEmargementValidation/" + str(val_emarge['_id']) + "/2" myurl = "http://127.0.0.1:5001/myclass/api/UserEmargementValidation/" + str(val_emarge['_id']) + "/2"
if (MYSY_GV.MYSY_ENV == "PROD"): if (MYSY_GV.MYSY_ENV == "PROD"):
myurl = "https://apimysy.iexercice.com/myclass/api/UserEmargementValidation/" + str( myurl = "https://apimysy.mysy-training.com/myclass/api/UserEmargementValidation/" + str(
val_emarge['_id']) + "/2" val_emarge['_id']) + "/2"
elif (MYSY_GV.MYSY_ENV == "DEV"): elif (MYSY_GV.MYSY_ENV == "DEV"):
myurl = "http://127.0.0.1:5001/myclass/api/UserEmargementValidation/" + str(val_emarge['_id']) + "/2" myurl = "http://127.0.0.1:5001/myclass/api/UserEmargementValidation/" + str(val_emarge['_id']) + "/2"
elif (MYSY_GV.MYSY_ENV == "REC"): elif (MYSY_GV.MYSY_ENV == "REC"):
myurl = "https://devapimysy.iexercice.com/myclass/api/UserEmargementValidation/" + str( myurl = "https://devapimysy.mysy-training.com/myclass/api/UserEmargementValidation/" + str(
val_emarge['_id']) + "/2" val_emarge['_id']) + "/2"

View File

@ -246,6 +246,8 @@ def Create_MySy_LMS_User(diction):
## Si l'insertion dans la table user s'est bien passé, alors on ajoute le user_id à la table 'access_url_rel_user' ## Si l'insertion dans la table user s'est bien passé, alors on ajoute le user_id à la table 'access_url_rel_user'
Cette table permet faire la recherche et d'envoyer des email dans le LMS. Cette table permet faire la recherche et d'envoyer des email dans le LMS.
Ainsi un utilisateur saisira juste les 3 première lettre du 'send to' Ainsi un utilisateur saisira juste les 3 première lettre du 'send to'
/!\ On l'ajout d'abord par defaut pour le l'url racine.
/!\ On va l'ajouter une 2ieme fois si le compte partenaire necessite la creation d'un nouvel url.
""" """
my_query_access_url_rel_user = "INSERT INTO access_url_rel_user SET access_url_id='1' , user_id='" + str( my_query_access_url_rel_user = "INSERT INTO access_url_rel_user SET access_url_id='1' , user_id='" + str(
new_lms_user_id) + "' " new_lms_user_id) + "' "
@ -280,10 +282,41 @@ def Create_MySy_LMS_User(diction):
local_status, local_message, local_value = Update_Pack_MySy_LMS_User(new_dicton) local_status, local_message, local_value = Update_Pack_MySy_LMS_User(new_dicton)
if( local_status is False): if( local_status is False):
mycommon.myprint(str(inspect.stack()[0][3]) + " - WARNING : impossible de créer les varibblers") mycommon.myprint(str(inspect.stack()[0][3]) + " - WARNING : impossible de créer les varible MySy dans le LMS")
lastrowid = cur.lastrowid lastrowid = cur.lastrowid
"""
A present que le compte est créé, on va créer l'url / virtualhost et affecter l'utilisateur à ce virtualHost
"""
virutal_host_id = ""
virutal_host_url = ""
local_data = {}
local_data['token'] = my_token
local_status, local_message, local_virtualhost_id, local_virtualhost_full_url = LMS_Create_VirtualHost(local_data)
if (local_status is False):
mycommon.myprint(str(inspect.stack()[0][3]) + " - WARNING : impossible de créer le virtualHost dans le LMS ")
else:
"""
/!\ On va l'ajouter une 2ieme fois si le compte partenaire necessite la creation d'un nouvel url.
"""
virutal_host_id = local_virtualhost_id
virutal_host_url = local_virtualhost_full_url
my_query_access_url_rel_user = "INSERT INTO access_url_rel_user SET access_url_id='"+ str(virutal_host_id)+"' , user_id='" + str(new_lms_user_id) + "' "
print(" ### my_query_access_url_rel_user = ", my_query_access_url_rel_user)
try:
# cur.execute("INSERT INTO employees (first_name,last_name) VALUES (?, ?)", ("Maria", "DB"))
cur.execute(my_query_access_url_rel_user)
except mariadb.Error as e:
# print(f"Error: {e}")
mycommon.myprint(str(inspect.stack()[0][3]) + " WARNING - impossible d'ajouter le user '" + str(
new_lms_user_id) + "' à la table access_url_rel_user pour la recheche et l'envoi des email")
conn.commit()
conn.close() conn.close()
# Crementation de la sequence de l'objet "lms_user_id" dans la collection : "mysy_sequence" # Crementation de la sequence de l'objet "lms_user_id" dans la collection : "mysy_sequence"
@ -1012,8 +1045,8 @@ def Check_MySy_LMS_Account(diction):
local_status, local_retval, new_lms_use_id = Create_MySy_LMS_User(new_diction) local_status, local_retval, new_lms_use_id = Create_MySy_LMS_User(new_diction)
if (local_status is False): if (local_status is False):
mycommon.myprint(str(inspect.stack()[0][3]) + " - Impossible de créer le compte LSM ") mycommon.myprint(str(inspect.stack()[0][3]) + " - Impossible de créer le compte LMS ")
return False, str(inspect.stack()[0][3]) + " - Impossible de créer le compte LSM " return False, str(inspect.stack()[0][3]) + " - Impossible de créer le compte LMS "
# Apres la creation du compte LSM, on met à jour le compte mysy avec la valeur du champs : mysy_lms_user_id # Apres la creation du compte LSM, on met à jour le compte mysy avec la valeur du champs : mysy_lms_user_id
mysy_coll_query = {} mysy_coll_query = {}
@ -1854,3 +1887,169 @@ def LMS_Get_Partner_Data(diction):
exc_type, exc_obj, exc_tb = sys.exc_info() exc_type, exc_obj, exc_tb = sys.exc_info()
mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno))
return False, " Impossible de recuperer les données LMS du partner" return False, " Impossible de recuperer les données LMS du partner"
"""
Une fois un compte LMS créé, cette fonction donne la possibilité de créer
une virtualhost associé à cet utilisateur
Le virtualhost revient à créer dans base de donnée de chamilo, la table "access_url" un enregistrement
- url,
- description
- active,
- date heure creation
"""
def LMS_Create_VirtualHost(diction):
try:
virtualHost_Id = ""
virtualHost_url = ""
'''
# Verification que les champs reçus dans l'API sont bien dans la liste des champs autorisés
# Cela evite le cas ou une entité tierce ajouter les valeurs inconnu dans l'API
# Ici on doit mettre tous les champs possible (obligatoire ou non) de la BDD dans la liste
# field_list.
'''
field_list = ['token']
incom_keys = diction.keys()
for val in incom_keys:
if val not in field_list:
mycommon.myprint(str(
inspect.stack()[0][3]) + " Le champ '" + val + "' n'existe pas, Creation virtualhost annulée")
return False, " Les informations fournies sont incorrecte", virtualHost_Id, virtualHost_url
'''
Une fois qu'on a controlé que toutes les clés mise dans l'API sont correcte. etape precedente,
On controle que les champs obligatoires sont presents dans la liste
'''
field_list_obligatoire = ['token']
for val in field_list_obligatoire:
if val not in diction:
mycommon.myprint(
str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans liste ")
return False, " Les informations fournies sont incorrecte", virtualHost_Id, virtualHost_url
my_token = ""
if ("token" in diction.keys()):
if diction['token']:
my_token = diction['token']
partner_recid = mycommon.get_parnter_recid_from_token(my_token)
if (partner_recid is False):
mycommon.myprint(
str(inspect.stack()[0][3]) + " - partner_recid KO : Impossible d'importer la liste des participants ")
return False, " Les information de connexion sont incorrectes.", virtualHost_Id, virtualHost_url
# Recuperation des données du partenaire
local_status, my_partner = mycommon.get_partner_data_from_recid(partner_recid)
if (local_status is False):
mycommon.myprint(str(inspect.stack()[0][3]) + " - impossible de recuperer les données du partenaire")
return False, str(inspect.stack()[0][3]) + " - impossible de recuperer les données du partenaire", virtualHost_Id, virtualHost_url
if ("nom" not in my_partner.keys()):
mycommon.myprint(
str(inspect.stack()[0][3]) + " - Le nom du partenaire est incorrect ")
return False, " Le nom du partenaire est incorrect ", virtualHost_Id, virtualHost_url
part_nom = my_partner['nom']
"""
/!\ : la regle pour definir l'url (url.iexercice.com) est :
1 - on prend le nom, on enleve tous les caratères non acceptés dans une url
2 - on met tout en minuscule
3 - Du mot restant, on prends les 10 premiers caractère.
4 - l'url global = prefixe_url.GV.LMS_BAS_URL
ex : pour un qui est : "MySy Demo 2303"
prefixe url = mysydemo23
l'url final est : mysydemo23.iexerice.com
"""
lms_prefixe_url = ''.join(filter(str.isalnum, part_nom))
lms_prefixe_url = str(lms_prefixe_url)[0:10]
if(len(lms_prefixe_url) < 3 ):
mycommon.myprint(
str(inspect.stack()[0][3]) + " - le lms_prefixe_url est trop court. Le nom du client comporte moins de 3 caractères alphanumerique")
return False, " Impossible de créer l'url dans le LMS. Le lms_prefixe_url est trop court. Le nom du client comporte moins de 3 caractères alphanumerique ", virtualHost_Id, virtualHost_url
print(" #### lms_prefixe_url = ", lms_prefixe_url)
conn = mariadb.connect(
user=MYSY_GV.MYSY_MARIADB_USER,
password=MYSY_GV.MYSY_MARIADB_USER_PASS,
host=MYSY_GV.MYSY_MARIADB_HOST,
port=MYSY_GV.MYSY_MARIADB_PORT,
database=MYSY_GV.MYSY_LMS_BDD
)
cur = conn.cursor()
# Verification d'abord si l'url existe.
query_compte_exist = " Select count(*), url From access_url WHERE url LIKE '%" + lms_prefixe_url + ".%' "
print(" ### query_compte_exist = ", query_compte_exist)
query_compte_exist_exec = cur.execute(query_compte_exist)
query_compte_exist_exec = ""
query_compte_exist_exec_val = "0"
existing_url = ""
for query_compte_exist_exec in cur:
query_compte_exist_exec_val = query_compte_exist_exec[0]
if (int(mycommon.tryInt(query_compte_exist_exec_val)) > 0):
existing_url = query_compte_exist_exec[1]
conn.commit()
if(len(existing_url) > 0 ):
mycommon.myprint(
str(inspect.stack()[0][
3]) + " - L'url '"+str(existing_url)+"' existe deja. Impossible de créer une nouvelle url")
return False, " L'url '"+str(existing_url)+"' existe deja. Impossible de créer une nouvelle url ", virtualHost_Id, virtualHost_url
print(" #### le prefixe d'url : '"+str(lms_prefixe_url)+"' N'EXISTE PAS. On va créer l'url")
registration_date = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
full_url = str("http://"+str(lms_prefixe_url)+"."+str(MYSY_GV.LMS_BAS_URL)).lower()
virtualHost_url = full_url
my_query = " INSERT INTO access_url (url, description, active, created_by, tms, url_type) "\
" VALUES('"+str(full_url)+"', 'Url pour "+str(part_nom)+"', '1', '1', '"+str(registration_date)+"', NULL);"
try:
print(" ### my_query iiii = ", my_query)
cur.execute(my_query)
except mariadb.Error as e:
# print(f"Error: {e}")
mycommon.myprint(" Impossible de créer l'url LMS " + str({e}))
return False, "Impossible de créer l'url LMS " + str({e}), virtualHost_Id, virtualHost_url
conn.commit()
if( cur.lastrowid ):
virtualHost_Id = cur.lastrowid
print(f"Last Inserted ID: {cur.lastrowid}")
conn.close()
""" Une fois que l'url/virtualhost a été crée, on met à jour le compte partnair dans MySy
"""
# Apres la creation du compte LSM, on met à jour le compte mysy avec la valeur du champs : mysy_lms_user_id
mysy_coll_query = {}
mysy_coll_query['lms_virtualhost_id'] = str(virtualHost_Id)
mysy_coll_query['lms_virtualhost_url'] = str(virtualHost_url)
mysy_coll_query['date_update'] = str(datetime.now())
ret_val = MYSY_GV.dbname['partnair_account'].find_one_and_update(
{'token': diction['token'], 'active': '1', 'locked': '0'},
{"$set": mysy_coll_query},
upsert=False,
return_document=ReturnDocument.AFTER
)
if (ret_val['_id'] is False):
mycommon.myprint(
str(inspect.stack()[0][
3]) + " : WARNING : Impossible de mettre à jour le compte MySy avec le lms_virtualhost_url = ",
str(virtualHost_url))
return True, " L'url LMS a été correctement crée", virtualHost_Id, virtualHost_url
except Exception as e:
exc_type, exc_obj, exc_tb = sys.exc_info()
mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno))
return False, " Impossible de créer une url (virtualhost) ", False, False

15
main.py
View File

@ -2823,6 +2823,21 @@ def LMS_Get_Partner_Data():
localStatus, message = mysy_lms.LMS_Get_Partner_Data(payload) localStatus, message = mysy_lms.LMS_Get_Partner_Data(payload)
return jsonify(status=localStatus, message=message ) return jsonify(status=localStatus, message=message )
"""
API de créer de l'url du lms
"""
@app.route('/myclass/api/LMS_Create_VirtualHost/', methods=['POST','GET'])
@crossdomain(origin='*')
def LMS_Create_VirtualHost():
# On recupere le corps (payload) de la requete
payload = request.form.to_dict()
print(" ### LMS_Create_VirtualHost : payload = ",payload)
localStatus, message, virtualHost_Id, full_url = mysy_lms.LMS_Create_VirtualHost(payload)
return jsonify(status=localStatus, message=message, virtualHost_Id= virtualHost_Id, full_url=full_url)
if __name__ == '__main__': if __name__ == '__main__':
print(" debut api") print(" debut api")
context = SSL.Context(SSL.SSLv23_METHOD) context = SSL.Context(SSL.SSLv23_METHOD)

View File

@ -809,13 +809,14 @@ def test_web_service(diction):
def test_web_service2(diction): def test_web_service2(diction):
try: try:
print(" #### ENVIRONNEMENT = "+str(MYSY_GV.MYSY_ENV)+" ")
if( diction ): if( diction ):
print(" ### diction dans la fonction = ", diction) print(" ### diction dans la fonction = ", diction)
else: else:
print(" ### diction dans la fonction est vide") print(" ### diction dans la fonction est vide")
return True, "Test WebService OK Diction = "+str(diction) return True, "ENV = "+str(MYSY_GV.MYSY_ENV)+" Test WebService OK Diction = "+str(diction)
except Exception as e: except Exception as e:
exc_type, exc_obj, exc_tb = sys.exc_info() exc_type, exc_obj, exc_tb = sys.exc_info()