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/')
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)