Commit b588c771 authored by Antoine Bernard's avatar Antoine Bernard

[grammar] PEP8, lisibilité, et quelques commentaires.

* https://www.python.org/dev/peps/pep-0008/
* https://github.com/cbrueffer/pep8-git-hook
* On va faire une task qui consiste à PEP8-iser tout les projets Crans tiens.
parent b849cae3
This diff is collapsed.
......@@ -39,7 +39,7 @@ class RedirectHomeMixin(object):
"""
Mixin permettant de rediriger vers le compte de l'utilisateur modifié et non du request.user
"""
def dispatch(self, request, uid, ptype=u'adh', next = None, *args, **kwargs):
def dispatch(self, request, uid, ptype=u'adh', next=None, *args, **kwargs):
if not next:
if not uid:
next = reverse('compte:afficher')
......@@ -47,7 +47,7 @@ class RedirectHomeMixin(object):
next = reverse('compte:afficher_club', args=(uid,))
else:
next = reverse('compte:afficher', args=(uid,))
return super(RedirectHomeMixin, self).dispatch(request, uid=uid, next=next, ptype = ptype, *args, **kwargs)
return super(RedirectHomeMixin, self).dispatch(request, uid=uid, next=next, ptype=ptype, *args, **kwargs)
def get_luser(request, uid, ptype, mode='ro'):
if ptype == 'adh':
......@@ -72,7 +72,7 @@ class ClubView(CableurOrSelfMixin, View):
# On a juste a peupler le form avec les informations de l'utilisateur
luser = conn_pool.get_conn(request.user).search(u'cid=%s' % cid)[0]
# Si il n'y a pas de compte crans derrière, uid vaut false et l'app de cablage n'affiche pas tout
uid = luser.get('uid',False)
uid = luser.get('uid', False)
form = BaseCompteForm(luser)
context = {
'form': form,
......@@ -85,7 +85,7 @@ class ClubView(CableurOrSelfMixin, View):
def post(self, request, cid, *args, **kwargs):
luser = conn_pool.get_conn(request.user).search(u'cid=%s' % cid)[0]
# Si il n'y a pas de compte crans derrière, uid vaut false et l'app de cablage n'affiche pas tout
uid = luser.get('uid',False)
uid = luser.get('uid', False)
form = BaseCompteForm(luser, request.POST)
if form.is_valid():
luser = conn_pool.get_conn(request.user).search(u'cid=%s' % cid, mode="w")[0]
......@@ -130,7 +130,7 @@ class CompteView(CableurOrSelfMixin, View):
def get(self, request, aid, *args, **kwargs):
luser = conn_pool.get_conn(request.user).search(u'aid=%s' % aid)[0]
# Si il n'y a pas de compte crans derrière, uid vaut false et l'app de cablage n'affiche pas tout
uid = luser.get('uid',False)
uid = luser.get('uid', False)
if uid:
redirection_mail = subprocess.Popen(["sudo", "-n", "/usr/scripts/utils/forward.py", "--read", "--name=%s" % luser['uid'][0]], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
mailredirect = redirection_mail.stdout.readlines()
......@@ -153,7 +153,7 @@ class CompteView(CableurOrSelfMixin, View):
def post(self, request, aid, *args, **kwargs):
luser = conn_pool.get_conn(request.user).search(u'aid=%s' % aid)[0]
uid = luser.get('uid',False)
uid = luser.get('uid', False)
form = CompteForm(luser, request.POST)
if form.is_valid():
luser = conn_pool.get_conn(request.user).search(u'aid=%s' % aid, mode="w")[0]
......@@ -192,10 +192,19 @@ class ChgPassView(CableurOrSelfMixin, RedirectHomeMixin, View):
form = BasePassForm()
else:
form = PassForm()
return render(request, self.template_name, {'form': form, 'ptype': ptype, 'ide': uid, 'cablage': cablage})
return render(
request,
self.template_name,
{
'form': form,
'ptype': ptype,
'ide': uid,
'cablage': cablage,
},
)
@method_decorator(sensitive_post_parameters())
def post(self, request, uid, ptype, cablage, next = '/compte/', *args, **kwargs):
def post(self, request, uid, ptype, cablage, next='/compte/', *args, **kwargs):
# Selon si on est cableur on a besoin ou pas de rentrer l'ancien mdp
if cablage:
form = BasePassForm(request.POST)
......@@ -204,7 +213,10 @@ class ChgPassView(CableurOrSelfMixin, RedirectHomeMixin, View):
luser = get_luser(request, uid, ptype, 'w')
if form.is_valid():
# Soit on est en train de cabler soit l'ancien mot de passe est bon
if cablage or ldap_context.verify(unicode(form.cleaned_data['passwdexists']), unicode(luser['userPassword'][0])):
if cablage or ldap_context.verify(
unicode(form.cleaned_data['passwdexists']),
unicode(luser['userPassword'][0])
):
if form.apply(luser):
luser.history_gen()
luser.save()
......@@ -255,7 +267,7 @@ class RedirectionView(CableurOrSelfMixin, RedirectHomeMixin, View):
else:
luser = conn_pool.get_conn(request.user).search(u'aid=%s' % uid, mode='w')[0]
with luser as adh:
adh['mailExt']=mailredirect
adh['mailExt'] = mailredirect
adh.history_gen()
adh.save()
messages.success(request, _(u"""Votre redirection a bien été prise en compte"""))
......@@ -267,22 +279,33 @@ redirection = RedirectionView.as_view()
class DeleteForwardView(CableurOrSelfMixin, RedirectHomeMixin, View):
"""
Classe pour la suppresion d'une redirection mail.
Classe pour la suppresion d'une redirection mail.
"""
def get(self,request,uid,next="/compte/",*args,**kwargs):
def get(self, request, uid, next="/compte/", *args, **kwargs):
luser = conn_pool.get_conn(request.user).search(u'aid=%s' % uid, mode='w')[0]
try:
redirection_mail = subprocess.Popen(["sudo","-n","/usr/scripts/utils/forward.py", "--delete", "--name=%s" %luser['uid'][0]])
messages.success(request, _(u"Votre redirection a été supprimée, pensez à consulter régulièrement votre adresse Cr@ns !"))
redirection_mail = subprocess.Popen(
[
"sudo",
"-n",
"/usr/scripts/utils/forward.py",
"--delete",
"--name=%s" % luser['uid'][0]
]
)
messages.success(
request,
_(u"Votre redirection a été supprimée, pensez à consulter régulièrement votre adresse Cr@ns !")
)
except ValueError as e:
messages.error(request,e)
messages.error(request, e)
return redirect(next)
deleteforward = DeleteForwardView.as_view()
class DeleteAliasView(CableurMixin, RedirectHomeMixin, View):
"""
Classe pour la réinitialisation du mot de passe et l'impression d'un ticket
Classe pour la réinitialisation du mot de passe et l'impression d'un ticket
"""
def get(self, request, uid, ptype, alias_id, next='/compte/', *args, **kwargs):
# Vue de suppresion d'un alias. N'a pas de visuel, redirige juste vers le home
......@@ -339,15 +362,22 @@ class SoldeView(CableurMixin, RedirectHomeMixin, View):
template_name = "compte/solde.html"
def get(self, request, uid, ptype, *args, **kwargs):
form = SoldeForm()
return render(request, self.template_name, {'form': form, 'ptype': ptype, 'ide': uid})
return render(request,
self.template_name,
{
'form': form,
'ptype': ptype,
'ide': uid,
}
)
def post(self, request, uid, ptype, next='/compte/', *args, **kwargs):
form = SoldeForm(request.POST)
luser = get_luser(request, uid, ptype, 'w')
if form.is_valid():
fact = {
'modePaiement': [form.cleaned_data['mode']],
'article': [u'%s~~%s~~1~~%s' % ('SOLDE', 'Rechargement de solde ' + form.cleaned_data['commentaire'],float(form.cleaned_data['montant']))],
'modePaiement': [form.cleaned_data['mode']],
'article': [u'%s~~%s~~1~~%s' % ('SOLDE', 'Rechargement de solde ' + form.cleaned_data['commentaire'],float(form.cleaned_data['montant']))],
}
with conn_pool.get_conn(request.user).newFacture(luser.dn, fact) as facture:
try:
......@@ -408,14 +438,23 @@ vente = VenteView.as_view()
class AdhesionView(CableurOrSelfMixin, RedirectHomeMixin, View):
"""
Classe de base pour l'adhésion
Classe de base pour l'adhésion
"""
template_name = "compte/adhesion.html"
def get(self, request, uid, ptype, cablage, *args, **kwargs):
form = AdhesionForm(request.POST, is_cableur=cablage)
return render(request, self.template_name, {'form': form, 'ptype': ptype, 'ide': uid, 'cablage': cablage})
return render(
request,
self.template_name,
{
'form': form,
'ptype': ptype,
'ide': uid,
'cablage': cablage,
}
)
def post(self, request, uid, ptype, cablage, next = '/compte/', *args, **kwargs):
def post(self, request, uid, ptype, cablage, next='/compte/', *args, **kwargs):
def connexion_possible(nbrmois, luser):
# Determine le nombre de mois possible avant la readhesion
......@@ -424,7 +463,7 @@ class AdhesionView(CableurOrSelfMixin, RedirectHomeMixin, View):
if reste_adhesion.months < 0:
nbrmois = 0
return nbrmois
if nbrmois > reste_adhesion.months and reste_adhesion.years==0:
if nbrmois > reste_adhesion.months and reste_adhesion.years == 0:
if reste_adhesion.days > 15:
nbrmois = reste_adhesion.months + 1
else:
......
......@@ -53,7 +53,8 @@ DROITS_SPECIAUX = { # Dictionnaire de groupe devant contenir les droits correspo
def get_or_create_cransgroup(name):
""" Crée le groupe crans_name avec le droit crans_name.
"""
Crée le groupe crans_name avec le droit crans_name.
"""
group, created = Group.objects.get_or_create(name=name)
if created:
......@@ -67,9 +68,10 @@ def get_or_create_cransgroup(name):
return group
def refresh_droits(user, cl_user, allow_staff=False):
"""Rafraîchit les droits de l'utilisateur django `user' depuis
l'utilisateur LDAP `cl_user'.
N'ajoute pas les droits crans si allow_staff=False (default)
"""
Rafraîchit les droits de l'utilisateur django `user' depuis
l'utilisateur LDAP `cl_user'.
N'ajoute pas les droits crans si allow_staff=False (default)
"""
cl_droits_reels = set(x.value for x in cl_user.get('droits', []))
......@@ -101,8 +103,10 @@ def refresh_droits(user, cl_user, allow_staff=False):
user.save()
def refresh_fields(user, cl_user):
"""Rafraîchit les champs correspondants à l'utilisateur (nom,
prénom, email)"""
"""
Rafraîchit les champs correspondants à l'utilisateur
(nom, prénom, email)
"""
user.first_name = unicode(cl_user.get('prenom', [u"club"])[0])
user.last_name = unicode(cl_user['nom'][0])
......@@ -119,32 +123,45 @@ def post_cas_login(sender, user, created, attributes, ticket, service, **kwargs)
refresh_fields(user, ldap_user)
class LDAPUserBackend(ModelBackend):
"""Authentifie un utilisateur à l'aide de la base LDAP"""
"""
Authentifie un utilisateur à l'aide de la base LDAP
"""
supports_anonymous_user = False
@sensitive_variables('password')
def authenticate(self, username=None, password=None, **kwargs):
"""Authentifie l'utilisateur sur la base LDAP. Crée un
utilisateur django s'il n'existe pas encore."""
"""
Authentifie l'utilisateur sur la base LDAP. Crée un
utilisateur django s'il n'existe pas encore.
"""
# Si ``username`` ou ``password`` 'est pas fourni, on quitte
if not username or not password:
return None
# Sinon, on ouvre une connexion
shortcut = lc_ldap.shortcuts.lc_ldap_test if settings.BASE_LDAP_TEST else lc_ldap.shortcuts.lc_ldap
try:
conn = shortcut(user = username, cred = password)
myself = conn.search(dn = conn.dn, scope = ldap.SCOPE_BASE)
# On ouvre une connection à la base LDAP avec les credentials de l'user
conn = shortcut(user=username, cred=password)
myself = conn.search(dn=conn.dn, scope=ldap.SCOPE_BASE)
ldap_user = myself[0]
except IndexError:
# Si pas de resultats, on renvoie ``None``
return None
except ldap.INVALID_CREDENTIALS:
# Si les identifiants sont invalides, on renvoie ``None``
return None
django_username = username
try:
# On essaie de récupérer l'utilisateur dans la base
user = User.objects.get(username=django_username)
except User.DoesNotExist:
user = User(username=django_username, password="LDAP Backend User!")
# Si l'utilisateur n'est pas dans la base, on le cré
user = User(
username=django_username,
password="LDAP Backend User!",
)
user.save()
conn_pool.CONNS[django_username] = conn
refresh_droits(user, ldap_user)
......@@ -152,7 +169,9 @@ class LDAPUserBackend(ModelBackend):
return user
def get_user(self, uid):
"""Récupère l'objet django correspondant à l'uid"""
"""
Récupère l'objet django correspondant à l'uid
"""
try:
return User.objects.get(pk=uid)
except User.DoesNotExist:
......
......@@ -28,7 +28,9 @@ def trigger_generate(server):
generate.trigger(server, background=True)
def create_machine(user, type, mac, host, club=None, adherent=None):
"""Crée une machine pour l'utilisateur ldap `user`, où `type` est
"""
Crée une machine pour l'utilisateur ldap `user`
où `type` est
"wifi-adh", "wifi-adh-v6", "fil" etc.
Et `club` est un éventuel cid (int).
"""
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment