1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-08-21 08:25:21 +00:00

Update social_django and profile

This commit is contained in:
zhengxie 2019-01-28 15:31:12 +08:00
parent 0efcbb10a3
commit fd21d7838e
8 changed files with 22 additions and 36 deletions

View File

@ -31,6 +31,10 @@
<li class="tab"><a href="#two-factor-auth">{% trans "Two-Factor Authentication" %}</a></li>
{% endif %}
{% if enable_wechat_work %}
<li class="tab"><a href="#social-auth">{% trans "Social Login" %}</a></li>
{% endif %}
{% if ENABLE_DELETE_ACCOUNT %}
<li class="tab" id="del-account-nav"><a href="#del-account">{% trans "Delete Account" %}</a></li>
{% endif %}
@ -175,11 +179,10 @@
</div>
{% endif %}
{% if enable_wechat_work %}
<div class="setting-item" id="social-auth">
<h3>{% trans "Social Login" %}</h3>
<ul>
<li>
{% if request.LANGUAGE_CODE == 'zh-cn' %}
企业微信
@ -193,10 +196,9 @@
<a href="{% url "social:begin" 'weixin-work' %}?next={{ social_next_page }}">{% trans "Connect" %}</a>
{% endif %}
</li>
</ul>
</div>
{% endif %}
{% if ENABLE_DELETE_ACCOUNT %}
<div class="setting-item" id="del-account">

View File

@ -90,6 +90,8 @@ def edit_profile(request):
social_connected = UserSocialAuth.objects.filter(
username=request.user.username, provider='weixin-work').count() > 0
enable_wechat_work = True if settings.SOCIAL_AUTH_WEIXIN_WORK_KEY else False
resp_dict = {
'form': form,
'server_crypto': server_crypto,
@ -108,6 +110,7 @@ def edit_profile(request):
'email_notification_interval': email_inverval,
'social_connected': social_connected,
'social_next_page': reverse('edit_profile'),
'enable_wechat_work': enable_wechat_work,
}
if has_two_factor_auth():

View File

@ -277,14 +277,10 @@ AUTHENTICATION_BACKENDS = (
SOCIAL_AUTH_URL_NAMESPACE = 'social'
SOCIAL_AUTH_VERIFY_SSL = True
SOCIAL_AUTH_METHODS = (
('weixin', 'WeChat'),
)
SOCIAL_AUTH_LOGIN_ERROR_URL = '/profile/'
SOCIAL_AUTH_WEIXIN_WORK_AGENTID = ''
SOCIAL_AUTH_WEIXIN_WORK_KEY = ''
SOCIAL_AUTH_WEIXIN_WORK_SECRET = ''
SOCIAL_AUTH_PIPELINE = (
'social_core.pipeline.social_auth.social_details',
'social_core.pipeline.social_auth.social_uid',

View File

@ -20,7 +20,7 @@ if WEIXIN_WORK_SP is True:
_USER_INFO_URL = 'https://qyapi.weixin.qq.com/cgi-bin/service/get_login_info'
else:
_AUTHORIZATION_URL = 'https://open.work.weixin.qq.com/wwopen/sso/qrConnect'
_ACCESS_TOKEN_URL = 'https://qyapi.weixin.qq.com/cgi-bin/token'
_ACCESS_TOKEN_URL = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken'
_USER_INFO_URL = 'https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo'

View File

@ -5,7 +5,6 @@ from django.apps import apps
from django.conf import settings
from django.contrib import messages
from django.contrib.messages.api import MessageFailure
from django.core.urlresolvers import reverse
from django.shortcuts import redirect
from django.utils.http import urlquote
@ -52,8 +51,6 @@ class SocialAuthExceptionMiddleware(MiddlewareMixin):
if url:
return redirect(url)
else:
return redirect(reverse('edit_profile'))
def raise_exception(self, request, exception):
strategy = getattr(request, 'social_strategy', None)

View File

@ -1,20 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.15 on 2018-11-15 08:25
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('social_django', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='usersocialauth',
name='uid',
field=models.CharField(max_length=150),
),
]

View File

@ -19,7 +19,7 @@ from .managers import UserSocialAuthManager
USER_MODEL = getattr(settings, setting_name('USER_MODEL'), None) or \
getattr(settings, 'AUTH_USER_MODEL', None) or \
'auth.User'
UID_LENGTH = getattr(settings, setting_name('UID_LENGTH'), 150)
UID_LENGTH = getattr(settings, setting_name('UID_LENGTH'), 255)
EMAIL_LENGTH = getattr(settings, setting_name('EMAIL_LENGTH'), 254)
NONCE_SERVER_URL_LENGTH = getattr(
settings, setting_name('NONCE_SERVER_URL_LENGTH'), 255)
@ -148,3 +148,12 @@ class DjangoStorage(BaseDjangoStorage):
@classmethod
def is_integrity_error(cls, exception):
return exception.__class__ is IntegrityError
########## handle signals
from django.dispatch import receiver
from registration.signals import user_deleted
@receiver(user_deleted)
def user_deleted_cb(sender, **kwargs):
username = kwargs['username']
UserSocialAuth.objects.filter(username=username).delete()

View File

@ -74,8 +74,7 @@ class DjangoUserMixin(UserMixin):
assert 'username' in kwargs
user = User.objects.create_user(email=kwargs['username'],
is_active=True,
save_profile=False)
is_active=True)
# try:
# if hasattr(transaction, 'atomic'):