def log(request): # a = request.scheme # print(a) # logger = logging.getLogger('app-debug') # logger.debug(a) # return HttpResponse('123') user = User.objects.filter(id__exact=3).first() contrib_login(request, user) return redirect('/admin/')
def login(request): if request.method == "POST": form = LoginForm( data=request.POST ) # TODO: the fact that the POST data is being passed as a kwarg here seems wrong. But if I don't, nothing works... if form.is_valid(): user = authenticate(username=form.cleaned_data["username"], password=form.cleaned_data["password"]) contrib_login(request, user) redirect = request.GET.get("next", None) if not redirect: redirect = reverse("index") return HttpResponseRedirect(redirect) else: form = LoginForm() return render_to_response("accounts/login.html", {"form": form}, context_instance=RequestContext(request))
def callback(request): server_client_id = settings.SERVER_CLIENT_ID server_client_secret = settings.SERVER_CLIENT_SECRET # host = request.scheme + '://0.0.0.0:8000' # FOR LOCAL DEBUG host = request.scheme + '://' + request.META['HTTP_HOST'] redirect_uri = host + '/auth/callback' token_data = _get_oauth_token(request.GET['code'], server_client_id, server_client_secret, redirect_uri) if not 'id_token' in token_data.keys() or not _valid_id_token(token_data['id_token'], server_client_id, server_client_secret): return HttpResponse('认证失败,请联系系统管理员!', status=500) ret_data = _get_user_info(token_data['access_token']) fullname = ret_data['fullname'] nickname = ret_data['nickname'] email = ret_data['email'] user = _get_or_create_user(fullname, nickname, email) contrib_login(request, user) return redirect(request.session.get('next', '/admin/'))
def login_operator(request, username=None): redirect_to = request.GET.get(REDIRECT_FIELD_NAME, reverse(settings.LOGIN_REDIRECT_URL)) form = CreateUserForm(request.POST or None) if username: user = get_object_or_404(User, username=username) if user.is_superuser: messages.error( request, "Il faut un mot de passe pour se connecter " "avec cet utilisateur ;-)") return redirect('login') user.backend = 'django.contrib.auth.backends.ModelBackend' contrib_login(request, user) return redirect(redirect_to) elif request.method == 'POST' and form.is_valid(): username = form.cleaned_data['username'] assert (not User.objects.filter(username=username).exists()) user = User.objects.create_user(username) user.backend = 'django.contrib.auth.backends.ModelBackend' contrib_login(request, user) return redirect(redirect_to) c = { 'form': form, 'operators': User.objects.filter(is_superuser=False, is_active=True), 'next': request.GET.get(REDIRECT_FIELD_NAME, ''), } return render(request, 'accounts/login_operator.html', c)
def login_operator(request, username=None): redirect_to = request.GET.get(REDIRECT_FIELD_NAME, reverse(settings.LOGIN_REDIRECT_URL)) form = CreateUserForm(request.POST or None) if username: user = get_object_or_404(User, username=username) if user.is_superuser: messages.error(request, "Il faut un mot de passe pour se connecter " "avec cet utilisateur ;-)") return redirect('login') user.backend = 'django.contrib.auth.backends.ModelBackend' contrib_login(request, user) return redirect(redirect_to) elif request.method == 'POST' and form.is_valid(): username = form.cleaned_data['username'] assert(not User.objects.filter(username=username).exists()) user = User.objects.create_user(username) user.backend = 'django.contrib.auth.backends.ModelBackend' contrib_login(request, user) return redirect(redirect_to) c = { 'form': form, 'operators': User.objects.filter(is_superuser=False, is_active=True), 'next': request.GET.get(REDIRECT_FIELD_NAME, ''), } return render(request, 'accounts/login_operator.html', c)
def index(request): initial_room = Room.objects.get(pk=getattr(config, 'INITIAL_ROOM', 1)) if not request.user.is_authenticated(): """ To promote new users, the site automatically creates a throwaway user for each unauthenticated visitor. If they've had a good time they can change the name and set the password to make it a permanent user """ user = User() user.save() user.username = u"user_%s" % user.id temp = hashlib.new('sha1') temp.update(str(datetime.datetime.now())) password = temp.hexdigest() user.set_password(password) user.save() authenticated_user = authenticate(username=user.username, password=password) contrib_login(request, authenticated_user) player = Player.objects.create(user=user, name=user.username, temporary=True, status='logged_in', room=initial_room) player.hp = player.max_hp player.save() player.update_level() set_default_aliases(player) else: # returning user characters = Player.objects.filter(user=request.user) if characters.count() == 0: # no characters, create one # new player # if the user is staff, give the character builder mode if request.user.is_staff: builder_mode = True else: builder_mode = False # if the user's name is already a character name, give a temp name character_name = request.user.username if characters.filter(name=character_name): name = "user_%s" % request.user.id player = Player.objects.create(user=request.user, name=character_name, status='logged_in', builder_mode=builder_mode, room=initial_room) player.hp = player.max_hp player.save() player.update_level() set_default_aliases(player) elif characters.filter(status='logged_in').count() == 1: player = characters.get(status='logged_in') else: characters.update(status='logged_out') return HttpResponseRedirect(reverse('accounts_index')) return render_to_response("game/index.html", { 'player': player, 'temporary_user': player.temporary, }, context_instance=RequestContext(request))