master
parent
927a2514c1
commit
2c42b09713
15
main.py
15
main.py
|
@ -1185,6 +1185,21 @@ def UpdateMetier():
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
'''
|
||||||
|
Cette API effectue la migration d'un compte utilisateur
|
||||||
|
vers un compte pro (ou compte partenaire)
|
||||||
|
'''
|
||||||
|
@app.route('/myclass/api/UpgradetoPro/', methods=['GET','POST'])
|
||||||
|
@crossdomain(origin='*')
|
||||||
|
def UpgradetoPro():
|
||||||
|
# On recupere le corps (payload) de la requete
|
||||||
|
payload = request.form.to_dict()
|
||||||
|
print(" ### payload = ", payload)
|
||||||
|
status, result = pa.UpgradetoPro(payload)
|
||||||
|
return jsonify(status=status, message=result)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
print(" debut api")
|
print(" debut api")
|
||||||
context = SSL.Context(SSL.SSLv23_METHOD)
|
context = SSL.Context(SSL.SSLv23_METHOD)
|
||||||
|
|
178
partners.py
178
partners.py
|
@ -58,13 +58,13 @@ def add_partner_account(diction):
|
||||||
'''
|
'''
|
||||||
field_list = ['nom', 'adr_street', 'adr_city', 'adr_zip', 'adr_country','link_linkedin','link_facebook','link_twitter',
|
field_list = ['nom', 'adr_street', 'adr_city', 'adr_zip', 'adr_country','link_linkedin','link_facebook','link_twitter',
|
||||||
'email','pwd', 'telephone','contact_nom','contact_prenom','contact_tel','contact_mail']
|
'email','pwd', 'telephone','contact_nom','contact_prenom','contact_tel','contact_mail']
|
||||||
|
|
||||||
incom_keys = diction.keys()
|
incom_keys = diction.keys()
|
||||||
for val in incom_keys:
|
for val in incom_keys:
|
||||||
if val not in field_list:
|
if val not in field_list:
|
||||||
mycommon.myprint(str(inspect.stack()[0][3]) + " - Creation partner account : Le champ '" + val + "' n'existe pas, Creation partenaire annulée")
|
mycommon.myprint(str(inspect.stack()[0][3]) + " - Creation partner account : Le champ '" + val + "' n'est pas autorisé, Creation partenaire annulée")
|
||||||
return False, "Impossible de créer le partenaire"
|
return False, "Impossible de créer le partenaire"
|
||||||
|
|
||||||
|
|
||||||
'''
|
'''
|
||||||
Une fois qu'on a controlé que toutes les clés mise dans l'API sont correcte. etape precedente,
|
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
|
On controle que les champs obligatoires sont presents dans la liste
|
||||||
|
@ -732,3 +732,177 @@ def partner_login(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) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno))
|
mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno))
|
||||||
return False, " Impossible de recuperer la formation"
|
return False, " Impossible de recuperer la formation"
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
Cette fonction upgrade un compte utilisateur vers
|
||||||
|
un compte PRO (aussi appelé compte partenaire).
|
||||||
|
|
||||||
|
Ceci revient à créer un nouveau compte utilisateur. aini la personne en face
|
||||||
|
aura
|
||||||
|
- un compte utilisateur classique et
|
||||||
|
- un compte pro
|
||||||
|
|
||||||
|
En suite on desactive le compte utilisateur classique et on maintient que le compte pro.
|
||||||
|
|
||||||
|
Pour migrer un compte utilisateur classique vers un compte pro, voici ce qu'il faut faire :
|
||||||
|
|
||||||
|
1 - recuperer les infos du contact . ici à partir du token de la personne connectée, on peut aller chercher ses info.
|
||||||
|
2 - recuperer les infos de la société
|
||||||
|
3 - recuperer les infos sur pack
|
||||||
|
|
||||||
|
etape 1 : add_partner_account(diction)
|
||||||
|
etape 2 : Desactivation du compte utilisateur
|
||||||
|
"""
|
||||||
|
def UpgradetoPro(diction):
|
||||||
|
try:
|
||||||
|
field_list = ['token', 'nom', 'adr_street', 'adr_city', 'adr_zip', 'adr_country', 'link_linkedin', 'link_facebook',
|
||||||
|
'link_twitter', 'email', 'pwd', 'telephone', 'contact_nom', 'contact_prenom', 'contact_tel', 'contact_mail']
|
||||||
|
incom_keys = diction.keys()
|
||||||
|
for val in incom_keys:
|
||||||
|
if val not in field_list:
|
||||||
|
mycommon.myprint(str(inspect.stack()[0][
|
||||||
|
3]) + " - Creation partner account : Le champ '" + val + "' n'existe pas, UpgradetoPro annulée")
|
||||||
|
return False, "Impossible de créer le partenaire"
|
||||||
|
|
||||||
|
'''
|
||||||
|
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', 'nom', 'adr_street', 'adr_city', 'adr_zip', 'adr_country', 'email', 'telephone']
|
||||||
|
|
||||||
|
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, "Impossible de créer le partenaire"
|
||||||
|
|
||||||
|
token = ""
|
||||||
|
new_diction = {}
|
||||||
|
user_recid = "None"
|
||||||
|
|
||||||
|
if ("token" in diction.keys()):
|
||||||
|
if diction['token']:
|
||||||
|
token = diction['token']
|
||||||
|
|
||||||
|
|
||||||
|
if ( len(str(token)) > 0 ):
|
||||||
|
retval = mycommon.check_token_validity("", token)
|
||||||
|
|
||||||
|
if retval is False :
|
||||||
|
mycommon.myprint(str(inspect.stack()[0][3])+" - Le token n'est pas valide")
|
||||||
|
return False, "Le token n'est pas valide"
|
||||||
|
|
||||||
|
# Recuperation du recid de l'utilisateur
|
||||||
|
user_recid = mycommon.get_user_recid_from_token(token)
|
||||||
|
if user_recid is False:
|
||||||
|
mycommon.myprint(str(inspect.stack()[0][3])+" - Impossible de recuperer le token de l'utilisateur")
|
||||||
|
return False, " Impossible de migrer vers le compte pro"
|
||||||
|
|
||||||
|
|
||||||
|
# Recuperation des paramettre du compe
|
||||||
|
if ("nom" in diction.keys()):
|
||||||
|
if diction['nom']:
|
||||||
|
new_diction['nom'] = diction['nom']
|
||||||
|
|
||||||
|
if ("adr_street" in diction.keys()):
|
||||||
|
if diction['adr_street']:
|
||||||
|
new_diction['adr_street'] = diction['adr_street']
|
||||||
|
|
||||||
|
if ("adr_city" in diction.keys()):
|
||||||
|
if diction['adr_city']:
|
||||||
|
new_diction['adr_city'] = diction['adr_city']
|
||||||
|
|
||||||
|
if ("adr_zip" in diction.keys()):
|
||||||
|
if diction['adr_zip']:
|
||||||
|
new_diction['adr_zip'] = diction['adr_zip']
|
||||||
|
|
||||||
|
if ("adr_country" in diction.keys()):
|
||||||
|
if diction['adr_country']:
|
||||||
|
new_diction['adr_country'] = diction['adr_country']
|
||||||
|
|
||||||
|
if ("link_linkedin" in diction.keys()):
|
||||||
|
if diction['link_linkedin']:
|
||||||
|
new_diction['link_linkedin'] = diction['link_linkedin']
|
||||||
|
|
||||||
|
if ("link_facebook" in diction.keys()):
|
||||||
|
if diction['link_facebook']:
|
||||||
|
new_diction['link_facebook'] = diction['link_facebook']
|
||||||
|
|
||||||
|
if ("link_twitter" in diction.keys()):
|
||||||
|
if diction['link_twitter']:
|
||||||
|
new_diction['link_twitter'] = diction['link_twitter']
|
||||||
|
|
||||||
|
if ("email" in diction.keys()):
|
||||||
|
if diction['email']:
|
||||||
|
new_diction['email'] = diction['email']
|
||||||
|
|
||||||
|
if ("telephone" in diction.keys()):
|
||||||
|
if diction['telephone']:
|
||||||
|
new_diction['telephone'] = diction['telephone']
|
||||||
|
|
||||||
|
'''
|
||||||
|
Create default pwd for new account
|
||||||
|
'''
|
||||||
|
new_diction['pwd'] = mycommon.create_token_urlsafe();
|
||||||
|
|
||||||
|
|
||||||
|
'''
|
||||||
|
Recuperation des information du contact.
|
||||||
|
Pour memo, le compte utilisateur qui fait cette migration devient automatiquement
|
||||||
|
le contact principal du compte pro.
|
||||||
|
'''
|
||||||
|
coll_user_account = MYSY_GV.dbname['user_account']
|
||||||
|
for x in coll_user_account.find({"recid": user_recid}):
|
||||||
|
if ("email" in x.keys()):
|
||||||
|
if x['email']:
|
||||||
|
new_diction['contact_mail'] = x['email']
|
||||||
|
|
||||||
|
if x['last_name']:
|
||||||
|
new_diction['contact_nom'] = x['last_name']
|
||||||
|
|
||||||
|
if x['surname']:
|
||||||
|
new_diction['contact_prenom'] = x['surname']
|
||||||
|
|
||||||
|
if x['mob_phone']:
|
||||||
|
new_diction['contact_tel'] = x['mob_phone']
|
||||||
|
|
||||||
|
print(" new_diction la = "+str(new_diction))
|
||||||
|
|
||||||
|
status, retval = add_partner_account(new_diction)
|
||||||
|
|
||||||
|
if( status ):
|
||||||
|
'''
|
||||||
|
La migration s'est bien passée.
|
||||||
|
Maintenant mettre le compte utilisateur :
|
||||||
|
- "migrated : 1"
|
||||||
|
- "migrated_mail_account" : le mail du compte pro associé
|
||||||
|
- "migration_date" : datetime.now()
|
||||||
|
|
||||||
|
'''
|
||||||
|
mydata = {}
|
||||||
|
mydata['migrated'] = "1"
|
||||||
|
mydata['migrated_date'] = str(datetime.now())
|
||||||
|
mydata['migrated_mail_account'] = new_diction['email']
|
||||||
|
ret_val = coll_user_account.find_one_and_update(
|
||||||
|
{"recid": user_recid},
|
||||||
|
{"$set": mydata},
|
||||||
|
return_document=ReturnDocument.AFTER )
|
||||||
|
if (ret_val and ret_val['_id']):
|
||||||
|
mycommon.myprint(
|
||||||
|
str(inspect.stack()[0][3]) + " le compte recid "+str(user_recid)+" migré en compte pro "+str(mydata))
|
||||||
|
|
||||||
|
else:
|
||||||
|
mycommon.myprint(str(inspect.stack()[0][3]) + " impossible de migrer le user_account : " + str(user_recid)+" en compte pro")
|
||||||
|
return False, " Impossible de finaliser la migration vers le compte PRO : "
|
||||||
|
|
||||||
|
|
||||||
|
else:
|
||||||
|
return False, "Impossible de migrer le compte vers le compte pro"
|
||||||
|
|
||||||
|
return True, "Le compte à été bien migré vers un compte pro"
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
exc_type, exc_obj, exc_tb = sys.exc_info()
|
||||||
|
mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno))
|
||||||
|
return False, " Impossible de migrer vers le compte pro"
|
||||||
|
|
Loading…
Reference in New Issue