def delete(profil_id): profils = Profil.objects.get(id=profil_id) profil_role_exist = ProfilRole.objects(profil_id=profils.id) if len(profil_role_exist): flash('Impossible de supprimer de profil car il contient des roles', 'warning') else: profils.delete() flash('Suppression reussie', 'success') return redirect(url_for('profil.index'))
def list(profil_id): profil = Profil.objects.get(id=profil_id) # liste des roles lie au profil en cours attrib = ProfilRole.objects(profil_id=profil.id) attrib_list = [role.role_id.id for role in attrib] # liste des roles lie au profil en cours avec le droit d'edition edit = ProfilRole.objects(Q(profil_id=profil.id) & Q(edit=True)) edit_list = [role.role_id.id for role in edit] # liste des roles lie au profil en cours avec le droit de modification delete = ProfilRole.objects(Q(profil_id=profil.id) & Q(deleted=True)) delete_list = [role.role_id.id for role in delete] liste_role = [] data_role = Roles.objects(valeur__ne='super_admin') for role in data_role: if not role.parent: module = {} module['titre'] = role.titre enfants = Roles.objects(parent=role.id) module['role'] = [] for enfant in enfants: rol = {} rol['id'] = enfant.id rol['titre'] = enfant.titre rol['action'] = enfant.action module['role'].append(rol) liste_role.append(module) success = False if request.method == 'POST': form_attrib = request.form.getlist('attrib') form_edit = request.form.getlist('edit') form_delete = request.form.getlist('delete') # liste des roles lie au profil et supprimer ce qui ne sont plus attribue current_profil_role = ProfilRole.objects(profil_id=profil.id) for current in current_profil_role: if current.role_id.id not in form_attrib: current.delete() # Insertion des roles et authorisation en provenance du formulaire for attrib in form_attrib: role_form = Roles.objects.get(id=attrib) profil_role_exist = ProfilRole.objects( Q(role_id=role_form.id) & Q(profil_id=profil.id)).first() if profil_role_exist: if attrib in form_edit: profil_role_exist.edit = True else: profil_role_exist.edit = False if attrib in form_delete: profil_role_exist.deleted = True else: profil_role_exist.deleted = False profil_role_exist.save() else: profil_role_create = ProfilRole() profil_role_create.role_id = role_form profil_role_create.profil_id = profil if attrib in form_edit: profil_role_create.edit = True else: profil_role_create.edit = False if attrib in form_delete: profil_role_create.deleted = True else: profil_role_create.deleted = False profil_role_create.save() flash('Enregistement effectue avec succes', 'success') success = True return render_template('profil/list.html', **locals())