Esempio n. 1
0
    def create(self, validated_data):
            user = validated_data.pop('user')
            user_company = validated_data.pop('user_company')        
            acct = Account.objects.create_user(**validated_data)
            acct.user_company = user_company
            acct.user_created_by = user
            acct.access_level = validated_data['access_level']
            acct.position = validated_data['position']
            acct.auth_amount = validated_data['auth_amount']
            acct.save()
            log(
                user=user,
                company=user_company,
                not_action='user created',
                obj=acct,
                notification=True,
                extra={
                    'account_id':acct.id,
                    'account_username':acct.username,
                    'account_first_name':acct.first_name,
                    'account_last_name':acct.last_name,
                }
            )

            registration_email.delay(acct.email, '*****@*****.**')
            for uc in user_company.wease_company.all():
                if uc.id != acct.id and uc.new_user_email:
                    user_email.delay(uc, acct, subj='New WeASe member added', tmp='registration/user_added_email.html')
            for optiz in user_company.company_assigned_to.all():
                if optiz.new_user_email:
                    user_email.delay(optiz, acct, subj='New WeASe member added', tmp='registration/user_added_email.html')
            return acct
Esempio n. 2
0
    def update(self, instance, validated_data):
        user = validated_data.pop('user')
        req = self.context.get('request')
        instance.is_active = validated_data.get('is_active', instance.is_active)
        instance.username = validated_data.get('username', instance.username)
        instance.email = validated_data.get('email', instance.email)
        instance.first_name = validated_data.get('first_name', instance.first_name)
        instance.last_name = validated_data.get('last_name', instance.last_name)
        instance.tagline = validated_data.get('tagline', instance.tagline)       
        instance.optiz = validated_data.get('optiz', instance.optiz)
        instance.lang = validated_data.get('lang', instance.lang)
        instance.position = validated_data.get('position', instance.position)
        instance.access_level = validated_data.get('access_level', instance.access_level)
        instance.auth_amount = validated_data.get('auth_amount', instance.auth_amount)
        instance.street_addr1 = validated_data.get('street_addr1', instance.street_addr1)
        instance.street_addr2 = validated_data.get('street_addr2', instance.street_addr2)
        instance.city = validated_data.get('city', instance.city)
        instance.post_code = validated_data.get('post_code', instance.post_code)
        instance.country = validated_data.get('country', instance.country)
        instance.phone_main = validated_data.get('phone_main', instance.phone_main)
        instance.phone_mobile = validated_data.get('phone_mobile', instance.phone_mobile)
        instance.user_pic = validated_data.get('user_pic', instance.user_pic)
        instance.request_email = validated_data.get('request_email', instance.request_email)
        instance.refused_email = validated_data.get('refused_email', instance.refused_email)
        instance.offer_email = validated_data.get('offer_email', instance.offer_email)
        instance.order_email = validated_data.get('order_email', instance.order_email)
        instance.approval_email = validated_data.get('approval_email', instance.approval_email)
        instance.validated_email = validated_data.get('validated_email', instance.validated_email)
        instance.canceled_email = validated_data.get('canceled_email', instance.canceled_email)
        instance.new_user_email = validated_data.get('new_user_email', instance.new_user_email)
        instance.info_change_email = validated_data.get('info_change_email', instance.info_change_email)
        instance.user_updated_by = user
        instance.save()
        password = validated_data.get('password', None)
        confirm_password = validated_data.get('confirm_password', None)

        if password and confirm_password and password == confirm_password:
            instance.set_password(password)
            instance.save()

            update_session_auth_hash(self.context.get('request'), instance)
        log(
            user=user,
            company=instance.user_company,
            not_action='user updated',
            obj=instance,
            notification=False,
            extra={
                'account_id':instance.id,
                'account_first_name':instance.first_name,
                'account_last_name':instance.last_name,
            }
        )
        if instance.info_change_email:
            user_email.delay(instance, obj=None, subj='WeASe profile updated', tmp='registration/user_update.html')
        return instance