Eccezione non gestita per home esistente
Se provo a creare un utente indicando una directory home esistente per qualcun’altro, ottengo una eccezione non gestita (vedi sotto).
Nel form di creazione utente, spostiamo il campo username come primo campo, e autogeneriamo il valore del campo Home directory a “/home/{{username}}”, cosi’ e’ piu’ veloce da inserire, e sopratutto non rischiamo che l’autocomplete dei browser metta un valore precedentemente inserito, che magari esiste gia’.
in ogni caso, l’eccezione va gestita e mostrare come errore di validazione del form.
L’eccezione:
Environment:
Request Method: POST
Request URL: http://localhost:8000/users/user/create
Django Version: 1.8.4
Python Version: 3.4.2
Installed Applications:
['django.contrib.sessions',
'django.contrib.messages',
'whitenoise.runserver_nostatic',
'django.contrib.staticfiles',
'octonet',
'hostqueue.apps.HostQueue',
'firewall.apps.Firewall',
'dhcp.apps.Dhcp',
'dansguardian.apps.DansGuardian',
'host.apps.Host',
'polygen.apps.Polygen',
'upgrade.apps.Upgrade',
'asterisk.apps.Asterisk',
'samba.apps.Samba',
'users.apps.Users',
'script.apps.Script',
'quota.apps.Quota',
'printers.apps.Printers',
'auth.apps.Auth']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.locale.LocaleMiddleware',
'octonet.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "/usr/local/lib/python3.4/dist-packages/django/core/handlers/base.py" in get_response
132. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.4/dist-packages/django/views/generic/base.py" in view
71. return self.dispatch(request, *args, **kwargs)
File "/home/cgabriel/git/fuss/octonet/octonet/mixins.py" in dispatch
105. return super().dispatch(request, *args, **kw)
File "/usr/local/lib/python3.4/dist-packages/django/views/generic/base.py" in dispatch
89. return handler(request, *args, **kwargs)
File "/usr/local/lib/python3.4/dist-packages/django/views/generic/edit.py" in post
215. return self.form_valid(form)
File "/home/cgabriel/git/fuss/octonet/users/views.py" in form_valid
516. self.user = self.root_tree.lcreate(["users", "users", name], user_data)
File "/home/cgabriel/git/fuss/pyoctofuss/octofuss/xmlrpc.py" in lcreate
84. return self._wrap_call(self.server.create, "/".join(path), dumps(value))
File "/home/cgabriel/git/fuss/pyoctofuss/octofuss/xmlrpc.py" in _wrap_call
42. raise globals().get(name, UnknownException)(msg)
Exception Type: UnknownException at /users/user/create
Exception Value: The choosen home directory already exists