Statistics
| Branch: | Tag: | Revision:

root / astakos / im / admin / forms.py @ 890b0eaf

History | View | Annotate | Download (2.7 kB)

1
# Copyright 2011 GRNET S.A. All rights reserved.
2
# 
3
# Redistribution and use in source and binary forms, with or
4
# without modification, are permitted provided that the following
5
# conditions are met:
6
# 
7
#   1. Redistributions of source code must retain the above
8
#      copyright notice, this list of conditions and the following
9
#      disclaimer.
10
# 
11
#   2. Redistributions in binary form must reproduce the above
12
#      copyright notice, this list of conditions and the following
13
#      disclaimer in the documentation and/or other materials
14
#      provided with the distribution.
15
# 
16
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
17
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
20
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
# POSSIBILITY OF SUCH DAMAGE.
28
# 
29
# The views and conclusions contained in the software and
30
# documentation are those of the authors and should not be
31
# interpreted as representing official policies, either expressed
32
# or implied, of GRNET S.A.
33

    
34
from django import forms
35
from django.utils.translation import ugettext as _
36
from django.contrib.auth.forms import UserCreationForm
37
from django.conf import settings
38
from hashlib import new as newhasher
39

    
40
from astakos.im.models import AstakosUser
41
from astakos.im.util import get_or_create_user
42

    
43
class AdminProfileForm(forms.ModelForm):
44
    """
45
    Subclass of ``ModelForm`` for permiting user to edit his/her profile.
46
    Most of the fields are readonly since the user is not allowed to change them.
47
    
48
    The class defines a save method which sets ``is_verified`` to True so as the user
49
    during the next login will not to be redirected to profile page.
50
    """
51
    class Meta:
52
        model = AstakosUser
53
    
54
    def __init__(self, *args, **kwargs):
55
        super(AdminProfileForm, self).__init__(*args, **kwargs)
56
        instance = getattr(self, 'instance', None)
57
        ro_fields = ('username','date_joined', 'auth_token', 'last_login', 'email')
58
        if instance and instance.id:
59
            for field in ro_fields:
60
                if isinstance(self.fields[field].widget, forms.CheckboxInput):
61
                    self.fields[field].widget.attrs['disabled'] = True
62
                self.fields[field].widget.attrs['readonly'] = True