コード例 #1
0
ファイル: __init__.py プロジェクト: boxed/curia
def migrate_users_from_SKForum(request=None):
    #if not request.user.is_superuser:
    #raise Exception('super user specific action')

    cursor = get_cursor()
    hex = codecs.getencoder('hex')
    latin1 = codecs.getdecoder('latin1')

    everyone = get_everyone_group()

    cursor.execute(
        'select id, name, password, realname, SecretEmail, PublicEmail, email, ICQ, telephone, mobilephone, address, other, birthdate from users where id != 1'
    )
    users = cursor.fetchall()
    for user in users:
        u = User(id=user[0],
                 username=fix_string(user[1]),
                 email=user[4],
                 is_staff=False,
                 is_superuser=False)

        if u.email == None:
            u.email = user[5]
        if u.email == None:
            u.email = user[6]

        hexpassword = hex(base64.b64decode(user[2]))
        if hexpassword[1] > 18:
            u.password = "******" + hexpassword[0]
        else:
            u.password = "******"

        realname = user[3].rsplit(None, 1)
        if len(realname) >= 1:
            u.first_name = fix_string(realname[0])
        if u.first_name == None:
            u.first_name = ''
        if len(realname) >= 2:
            u.last_name = fix_string(realname[1])
        if u.last_name == None:
            u.last_name = ''

        u.save()

        # display name 1
        #d = Detail(name='display name', value=fix_string(user[1]), user=u)
        #d.save()

        def add_detail(object, name):
            if object != None and object != '' and object != 'null':
                d = Detail(name=name, value=fix_string(object), user=u)
                if d.value != None:
                    d.save()

        add_detail(user[5], 'public email')
        add_detail(user[6], 'protected email')
        add_detail(user[7], 'ICQ')
        add_detail(user[8], 'telephone')
        add_detail(user[9], 'mobilephone')
        add_detail(user[10], 'address')
        add_detail(user[11], 'other')

        # birthdate 12
        if user[12] != None and user[12] != '' and user[12] != 'null':
            m = MetaUser(user=u, birthday=user[12])
            m.save()

    db.close()
コード例 #2
0
ファイル: __init__.py プロジェクト: boxed/curia
def migrate_users_from_SKForum(request = None):
    #if not request.user.is_superuser:
        #raise Exception('super user specific action')

    cursor = get_cursor()
    hex = codecs.getencoder('hex')
    latin1 = codecs.getdecoder('latin1')

    everyone = get_everyone_group()

    cursor.execute('select id, name, password, realname, SecretEmail, PublicEmail, email, ICQ, telephone, mobilephone, address, other, birthdate from users where id != 1')
    users = cursor.fetchall()
    for user in users:
        u = User(
            id = user[0], 
            username = fix_string(user[1]), 
            email = user[4], 
            is_staff = False, 
            is_superuser = False)

        if u.email == None:
            u.email = user[5]
        if u.email == None:
            u.email = user[6]

        hexpassword = hex(base64.b64decode(user[2]))
        if hexpassword[1] > 18:
            u.password = "******" + hexpassword[0]
        else:    
            u.password = "******"

        realname = user[3].rsplit(None, 1)
        if len(realname) >= 1:
            u.first_name = fix_string(realname[0])
        if u.first_name == None:
            u.first_name = ''
        if len(realname) >= 2:
            u.last_name = fix_string(realname[1])
        if u.last_name == None:
            u.last_name = ''

        u.save()

        # display name 1
        #d = Detail(name='display name', value=fix_string(user[1]), user=u)
        #d.save()

        def add_detail(object, name):
            if object != None and object != '' and object != 'null':
                d = Detail(name=name, value=fix_string(object), user=u)
                if d.value != None:
                    d.save()

        add_detail(user[5], 'public email')
        add_detail(user[6], 'protected email')
        add_detail(user[7], 'ICQ')
        add_detail(user[8], 'telephone')
        add_detail(user[9], 'mobilephone')
        add_detail(user[10], 'address')
        add_detail(user[11], 'other')

        # birthdate 12
        if user[12] != None and user[12] != '' and user[12] != 'null':
            m = MetaUser(user=u, birthday=user[12])
            m.save()

    db.close()
コード例 #3
0
ファイル: views.py プロジェクト: boxed/curia
def accept(request):
    from django.conf import settings
    try:    REGISTRATION_FIELDS = settings.REGISTRATION_FIELDS
    except: REGISTRATION_FIELDS = ('name', 'birthday', 'gender', 'password')
    try:    REGISTRATION_DETAILS = settings.REGISTRATION_DETAILS
    except: REGISTRATION_DETAILS = ()
    
    class EnterCodeForm(django.forms.Form):
        if 'code' in request.REQUEST:
            if 'name' in REGISTRATION_FIELDS:
                first_name = django.forms.CharField(max_length=30,required=True, label=_('First name'))
                last_name = django.forms.CharField(max_length=30,required=True, label=_('Last name'))
            if 'birthday' in REGISTRATION_FIELDS:
                birthday = django.forms.DateField(required=False, label=_('Birthday'), help_text=_('Format is yyyy-MM-dd, e.g. 1980-05-27'))
            if 'gender' in REGISTRATION_FIELDS:
                gender = django.forms.ChoiceField(label=_('Gender'), choices=(('M', 'Male'), ('F', 'Female'),))
            if 'password' in REGISTRATION_FIELDS:
                password = django.forms.CharField(max_length=30,required=True,widget = django.forms.PasswordInput, label=_('Password'))
                confirm_password = django.forms.CharField(max_length=30,required=True,widget = django.forms.PasswordInput, label=_('Confirm password'))
            code = django.forms.CharField(max_length=30,required=True,widget = django.forms.HiddenInput, label=_('code'))
        else:
            password = django.forms.CharField(max_length=30,required=True,widget = django.forms.PasswordInput, label=_('Password'))
        email = django.forms.CharField(max_length=150,required=True,widget = django.forms.HiddenInput, label=_('email'))
        user_contract = django.forms.BooleanField(required=False, widget=CheckboxInput(attrs={'label':_('I have read and accepted the <a href="/registration/user_agreement/" target="blank">user agreement</a>')}), label='')

    if request.POST:
        form = EnterCodeForm(request.REQUEST)
        
        try: 
            form.data["user_contract"]
        except:
            form.errors['user_contract'] = (_("You must accept the user agreement."),)

        try:
            user = User.objects.get(email=request.REQUEST['email'])
            invites = Invite.objects.filter(group=request.community, user=user)
            if len(invites) == 0:
                form.errors['password'] = (_('You have not been invited to this community'),)
                
            if 'code' in request.REQUEST:
                if not user.check_password(request.REQUEST['code']):
                    raise User.DoesNotExist()
            else:
                if not user.check_password(request.REQUEST['password']):
                    raise User.DoesNotExist()
        except User.DoesNotExist:
            form.errors['password'] = (_('Username or password incorrect'),)            
        
        if 'code' in request.REQUEST and form.data['password'] != form.data['confirm_password']:
            form.errors['confirm'] = (_('Passwords did not match.'),)
            
        if form.is_valid():
            if 'code' in request.REQUEST:
                # set user details
                if 'name' in REGISTRATION_FIELDS:
                    user.first_name = form.cleaned_data["first_name"]
                    user.last_name = form.cleaned_data["last_name"]
                user.set_password(form.cleaned_data['password'])
                user.is_active = True
                user.save()
                
                if 'birthday' in REGISTRATION_FIELDS:
                    birthday = form.cleaned_data['birthday']
                else:
                    birthday = None
                if 'gender' in REGISTRATION_FIELDS:
                    gender = form.cleaned_data['gender']
                else:
                    gender = '-'
                meta_user = MetaUser.objects.create(user=user, birthday=birthday, gender=gender)
                #meta_user.picture = 'user-pictures/default_user_image.png'
                #meta_user.thumbnail = 'user-thumbnails/default_user_image.png'
                #meta_user.icon = 'user-icons/default_user_image.png'
                meta_user.language = 'sv'
                meta_user.save()
                
                if 'curia.notifications' in settings.INSTALLED_APPS:
                    Bookmark.objects.create(user=user, url='/users/'+str(user.id)+'/', title=user.first_name)
            
            for member in request.community.user_set.all():
                if member != user:
                    u = get_current_user()
                    if u.is_anonymous():
                        u = get_public_user()
                    SubscriptionResult.objects.create(user=member, content_type=get_content_type(user), object_id=user.pk, originator_user=u, originator_group=get_current_community())

            community = request.community
            community.user_set.add(user)
            community.save()
            everyone = get_everyone_group()
            everyone.user_set.add(user)
            everyone.save()

            #Create invite for each event in the group that has not already passed
            #start_span = start_of_day(datetime.now())-timedelta(hours=3)
            #end_span = start_span+timedelta(weeks=52)
            #active_events = Event.objects.filter(owner_group=community, start_time__lt=end_span, end_time__gt=start_span, repeat='', deleted=False)
            
            #for event in active_events:
            #    Reply.objects.create(inviter=community.meta.created_by, event=event, user=user)
                
            for invite in invites:
                invite.choice = 'Y'
                invite.save()
             
            from django.contrib.auth import authenticate
            user = authenticate(username=user.username, password=form.cleaned_data['password'])
            login(request, user)
            
            try:
                if community.meta.created_by == user and settings.REGISTRATION_SYSTEM == 'invite': 
                    return HttpResponseRedirect('%s/registration/' % community.get_absolute_url())
            except:
                pass
            try:
                return HttpResponseRedirect(settings.REGISTRATION_NEXT)
            except:
                return HttpResponseRedirect(community.get_absolute_url())
                
    else:
        initial = {}
        if 'code' in request.REQUEST:
            initial['code'] = request.REQUEST['code']
        initial['email'] = request.REQUEST['email']
        form = EnterCodeForm(initial=initial)
    
    return render_to_response(request, 'registration/enter_code.html', {'form': form, 'email':request.REQUEST['email'], 'disable_login_box':True})