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()
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()
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})