admin django plus joli, en 5 ou 6 lignes master
authorThomas NOEL <thomas@zepok.sn.auf>
Mon, 27 Oct 2008 23:05:15 +0000 (23:05 +0000)
committerThomas NOEL <thomas@zepok.sn.auf>
Mon, 27 Oct 2008 23:05:15 +0000 (23:05 +0000)
django/bases/nssauth/admin.py
django/bases/nssauth/models.py

index ea26fd9..cbd1144 100644 (file)
@@ -1,6 +1,15 @@
+# -*- coding: utf-8 -*-
+
 from bases.nssauth.models import User, Group
 from django.contrib import admin
 
-admin.site.register(User)
+class UserAdmin(admin.ModelAdmin):
+    fieldsets = [ 
+        (None, { 'fields': ['username', 'password', 'gecos', 'homedir', 'is_active'] }),
+       ('Groupes', { 'fields': [ 'group' , 'groups'] } ),
+        ('Système', { 'fields': [ 'shell', 'min', 'max', 'inact'], 'classes': ['collapse'] }),
+    ]
+
+admin.site.register(User, UserAdmin)
 admin.site.register(Group)
 
index dfa3d41..c1a2865 100644 (file)
@@ -3,9 +3,12 @@
 from django.db import models
 
 SHELLS = (  
-    ('/bin/sh', 'Bash'),  
     ('/bin/false', 'Pas de shell'),  
-)  
+    ('/bin/bash', 'bash'),  
+    ('/bin/sh', 'sh'),  
+)
+
+NFS_SERVER = 'nfs.sn.auf.org'
   
 class Group(models.Model):
     gid = models.AutoField(primary_key=True)  
@@ -19,13 +22,13 @@ class Group(models.Model):
 
 class User(models.Model):
     uid = models.AutoField(primary_key=True)  
-    username = models.CharField(max_length=15, unique=True, db_index=True)  
+    username = models.CharField(max_length=15, unique=True, db_index=True, verbose_name='nom d\'utilisateur (login)')  
     group = models.ForeignKey(Group, verbose_name='groupe de base', related_name='primary_group', db_column='gid')  
-    groups = models.ManyToManyField(Group, verbose_name='groupes', blank=True)  
-    gecos = models.CharField(max_length=128, blank=True)  
-    homedir = models.CharField(max_length=128, default='/home/')  
-    shell = models.CharField(max_length=128, default='/bin/sh', choices=SHELLS)  
-    password = models.CharField(max_length=128, db_index=True, help_text='Si fourni en clair, il sera chiffré lors de l\'enregistrement')  
+    groups = models.ManyToManyField(Group, verbose_name='autres groupes', blank=True)  
+    gecos = models.CharField(max_length=128, blank=True, verbose_name='nom complet et commentaires (information GECOS)')  
+    homedir = models.CharField(max_length=128, default='/net/' + NFS_SERVER + '/', verbose_name='répertoire personnel ($HOME)')  
+    shell = models.CharField(max_length=128, default='/bin/false', choices=SHELLS, verbose_name='interpréteur de commandes (shell)')  
+    password = models.CharField(max_length=128, db_index=True, verbose_name='mot de passe', help_text='Si fourni en clair, il sera chiffré lors de l\'enregistrement')  
     lstchg = models.PositiveIntegerField(default=1, editable=False, help_text='nombre de jours, comptés à partir du 1er janvier 1970, depuis le dernier changement de mot de passe')
     min = models.PositiveIntegerField(default=0, help_text='nombre de jours à attendre avant de pouvoir changer le mot de passe')
     max = models.PositiveIntegerField(default=99999, help_text='nombre de jours après lesquels le mot de passe doit être changé')  
@@ -33,7 +36,7 @@ class User(models.Model):
     expire = models.IntegerField(default=-1, help_text='nombre de jours, comptés à partir du 1er janvier 1970, depuis que le compte est désactivé')  
     inact = models.PositiveIntegerField(default=0, help_text='nombre de jours après la fin de validité provoquant la désactivation du compte')  
     flag = models.PositiveIntegerField(default=0, editable=False)  
-    is_active = models.BooleanField('active', default=True)  
+    is_active = models.BooleanField('Actif', default=True)  
     class Admin:  
         pass