Пример #1
0
def company_wizard_step_two(request):
    company_users = Profile.objects.filter(
        is_super_admin=False,
        company_id=request.user.profile.company_id).count()
    default_template = save_email_template(request)
    if request.user.profile.is_super_admin and company_users == 0:
        return_status = {
            'msg':
            None,
            'emails': [{
                'name': 'email_1',
                'class': '',
                'value': '',
                'style': ''
            }, {
                'name': 'email_2',
                'class': '',
                'value': '',
                'style': ''
            }, {
                'name': 'email_3',
                'class': '',
                'value': '',
                'style': ''
            }, {
                'name': 'email_4',
                'class': '',
                'value': '',
                'style': ''
            }, {
                'name': 'email_5',
                'class': '',
                'value': '',
                'style': ''
            }]
        }
        language = request.user.profile.company.language
        company_id = request.user.profile.company_id
        email_exits = False
        if request.method == "POST":
            for index, post_email in enumerate(return_status['emails']):
                request_email = request.POST.get(
                    return_status['emails'][index]['name'])
                print("request_email", request_email)
                if User.objects.filter(username=request_email).exists(
                ) or User.objects.filter(email=request_email).exists():
                    return_status['emails'][index][
                        'style'] = 'border-color: red;'
                    email_exits = True
                return_status['emails'][index]['value'] = request_email
            if not email_exits:
                for index, post_email in enumerate(return_status['emails']):
                    util = Utils()
                    if return_status['emails'][index]['value']:
                        activation_key = hashlib.sha256(
                            return_status['emails'][index]['value'].encode(
                                'utf-8')).hexdigest()[:30]
                        new_user = User.objects.create_user(
                            username=return_status['emails'][index]['value'],
                            email=return_status['emails'][index]['value'],
                            is_active=False)
                        new_user.save()
                        default_roles = [
                            'ROLE_MANAGE_ALL_CONTACT',
                            'ROLE_MANAGE_ALL_CALENDAR',
                            'ROLE_MANAGE_ALL_OPPORTUNITY',
                            'ROLE_MANAGE_ALL_QUOTATION',
                            'ROLE_MANAGE_ALL_INVOICE', 'ROLE_MANAGE_ALL_SALES',
                            'ROLE_ACCESS_RIGHT', 'ROLE_ACCESS_SETTING'
                        ]
                        new_user.profile = Profile(
                            activation_key=activation_key,
                            color=util.get_profile_color(new_user.id),
                            company_id=company_id,
                            user_id=new_user.id,
                            language=language,
                            roles=default_roles)
                        new_user.profile.default_sales_channel = get_company_default_channel(
                            company_id)
                        new_user.profile.save()
                        util.send_activation(new_user, new_user.profile, True)
                return redirect('/welcome/')
        return render(request, 'web/auth/company_wizard_step_two.html',
                      {'return_status': return_status})
    else:
        return redirect('/dashboard/')
Пример #2
0
def user_save(request):
    user_id = request.user.id
    return_status = {
        'success': False,
        'user': 0,
        'msg': '',
        'activation_link': '',
        'redirect_url': ''
    }
    if request.method == "POST" and request.is_ajax():
        post_user_id = int(request.POST['user_id'])
        name = request.POST['email']
        email = request.POST['email']
        password = request.POST['password']
        language = request.POST['language']
        signature = request.POST['signature']
        phone = request.POST['phone']
        mobile = request.POST['mobile']
        first_name = request.POST['first_name']
        last_name = request.POST['last_name']
        profile_image = request.POST['profile_image']
        roles = ast.literal_eval(request.POST['roles'])
        user_email = User.objects.filter(email=email)
        user_name = User.objects.filter(username=name)
        activation_key = hashlib.sha256(email.encode('utf-8')).hexdigest()[:30]
        google_client_id = request.POST['google_client_id']
        google_client_secret = request.POST['google_client_secret']
        user_time_zone = request.POST['user_time_zone']

        admin = False
        staff = False
        password_changed = False
        if 'Staff' in roles:
            staff = True
        if 'Admin' in roles:
            admin = True

        if post_user_id and post_user_id > 0:
            try:
                user = User.objects.get(pk=post_user_id)
                user.username = name
                user.email = email
                user.first_name = first_name
                user.last_name = last_name
                if password:
                    user.set_password(password)
                    password_changed = True
                    return_status['redirect_url'] = '/login/'
                user.save()
                try:
                    if len(roles) > 0:
                        user.profile.roles = roles
                    else:
                        user.profile.roles = user.profile.roles
                    user.profile.language = language
                    user.profile.phone = phone
                    user.profile.mobile = mobile

                    user.profile.is_admin = admin
                    user.profile.profile_image = profile_image
                    user.profile.temp_pass = password
                    user.profile.signature = signature
                    user.profile.google_client_id = google_client_id
                    user.profile.google_client_secret = google_client_secret
                    user.profile.user_time_zone = user_time_zone
                    user.profile.save()
                    return_status['user'] = user.id
                    return_status['success'] = True
                    if password_changed:
                        return_status[
                            'msg'] = 'You changed your password that is update successfully, so you will redirect to login page after 5 second.'
                    else:
                        return_status['msg'] = settings.LABELS[
                            request.user.profile.
                            language]['text_update_sueess']
                except Profile.DoesNotExist:
                    return_status['msg'] = 'Profile DoesNotExist'
                    return_status['success'] = False
            except User.DoesNotExist:
                return_status['msg'] = 'User DoesNotExist'
                return_status['success'] = False
        else:
            if user_email.exists():
                return_status[
                    'msg'] = 'user email already exits'  #settings.LABELS[request.user.profile.language]['text_email_exits']
            elif user_name.exists():
                return_status['msg'] = 'username already exits'
            else:
                util = Utils()
                new_user = User.objects.create_user(username=name,
                                                    email=email,
                                                    is_active=False,
                                                    first_name=first_name,
                                                    last_name=last_name,
                                                    password=password,
                                                    last_login=timezone.now())
                new_user.save()

                profile = Profile(activation_key=activation_key,
                                  color=util.get_profile_color(new_user.id),
                                  is_admin=admin,
                                  temp_pass=password,
                                  profile_image=profile_image,
                                  phone=phone,
                                  mobile=mobile,
                                  company_id=request.user.profile.company_id,
                                  user_id=new_user.id,
                                  language=language,
                                  roles=roles)
                profile.default_sales_channel = get_company_default_channel(
                    request.user.profile.company_id)
                profile.save()

                return_status['success'] = True
                return_status['user'] = new_user.id
                return_status['msg'] = 'User Created Successfully..'
        return HttpResponse(json.dumps(return_status),
                            content_type='application/json')
    else:
        return HttpResponse(return_status)