update.py 文件源码

python
阅读 28 收藏 0 点赞 0 评论 0

项目:uwcs-zarya 作者: davidjrichardson 项目源码 文件源码
def handle(self, *args, **options):
        members_xml = requests.get('{prefix}{key}/'.format(prefix=API_PREFIX,
                                                           key=settings.UNION_API_KEY))
        members_root = fromstring(members_xml.text.encode('utf-8'))
        active_members = []

        # Add any new members
        for member in members_root:
            try:
                if member.find('UniqueID').text:
                    current_member = User.objects.get(username=member.find('UniqueID').text)
                    active_members.append(current_member.id)
            except User.DoesNotExist:
                # Create the user and then email their password to them
                password = User.objects.make_random_password()
                new_user = User.objects.create_user(username=member.find('UniqueID').text,
                                                    email=member.find('EmailAddress').text,
                                                    password=password)
                new_user.first_name = title(member.find('FirstName').text.encode('utf-8'))
                new_user.last_name = title(member.find('LastName').text.encode('utf-8'))
                new_user.save()
                send_signup_mail(new_user, password)
                active_members.append(new_user.id)

        # Handle special cases with Ex-exec, exec and staff/superuser status
        for member in User.objects.all():
            if member.groups.filter(name__in=['Ex-exec', 'Exec']).exists():
                if member not in active_members:
                    active_members.append(member.id)
            elif member.is_staff or member.is_superuser:
                if member not in active_members:
                    active_members.append(member.id)

        # Ensure all accounts that are to be activate are so
        activated = User.objects.filter(id__in=active_members).all()
        activated.update(is_active=True)

        # Deactivate old accounts
        deactivated = User.objects.exclude(id__in=active_members).all()
        deactivated.update(is_active=False)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号