def ngo_user_created(sender, user, request, **kwargs): data = NGOUserProfile() data.org_id = kwargs['organization_id'] data.title = kwargs['title'] data.mobile_phone = kwargs['mobile_phone'] data.reporter_id = kwargs['reporter_id'] data.user = user data.save()
def new_user(request): add_user_success = False if request.method == 'GET': profile_form = UserProfileForm() return render_to_response("accountmanagement/account/add_user.html", {'profile_form': profile_form}, context_instance=RequestContext(request)) if request.method == 'POST': manager = get_database_manager(request.user) org = get_organization(request) form = UserProfileForm(organization=org, data=request.POST) if form.is_valid(): username = form.cleaned_data.get('username') if not form.errors: user = User.objects.create_user(username, username, 'test123') user.first_name = form.cleaned_data['full_name'] group = Group.objects.filter(name="Project Managers") user.groups.add(group[0]) user.save() mobile_number = form.cleaned_data['mobile_phone'] ngo_user_profile = NGOUserProfile( user=user, title=form.cleaned_data['title'], mobile_phone=mobile_number, org_id=org.org_id) ngo_user_profile.reporter_id = make_user_as_a_datasender( manager=manager, organization=org, current_user_name=user.get_full_name(), mobile_number=mobile_number, email=username) ngo_user_profile.save() associate_user_with_existing_project( manager, ngo_user_profile.reporter_id) reset_form = PasswordResetForm({"email": username}) if reset_form.is_valid(): send_email_to_data_sender(reset_form.users_cache[0], request.LANGUAGE_CODE, request=request, type="created_user", organization=org) name = form.cleaned_data.get("full_name") form = UserProfileForm() add_user_success = True detail_dict = dict({"Name": name}) UserActivityLog().log(request, action=ADDED_USER, detail=json.dumps(detail_dict)) return render_to_response("accountmanagement/account/add_user.html", { 'profile_form': form, 'add_user_success': add_user_success }, context_instance=RequestContext(request))
def new_user(request): org = get_organization(request) add_user_success = True manager = get_database_manager(request.user) if request.method == 'GET': profile_form = UserProfileForm() return render_to_response( "accountmanagement/account/add_new_user.html", { 'profile_form': profile_form, 'is_pro_sms': org.is_pro_sms, 'current_lang': get_language() }, context_instance=(RequestContext(request))) if request.method == 'POST': post_parameters = request.POST org = get_organization(request) form = UserProfileForm(organization=org, data=request.POST) errors = {} if form.is_valid(): username = post_parameters['username'] role = post_parameters['role'] if not form.errors: with transaction.commit_manually(): sid = transaction.savepoint() try: user = User.objects.create_user( username, username, 'test123') user.first_name = post_parameters['full_name'] group = Group.objects.filter(name=role) user.groups.add(group[0]) user.save() mobile_number = post_parameters['mobile_phone'] ngo_user_profile = NGOUserProfile( user=user, title=post_parameters['title'], mobile_phone=mobile_number, org_id=org.org_id) ngo_user_profile.reporter_id = make_user_as_a_datasender( manager=manager, organization=org, current_user_name=user.get_full_name(), mobile_number=mobile_number, email=username) ngo_user_profile.save() handle_feature_toggle_impact_for_new_user( ngo_user_profile) reset_form = PasswordResetForm({"email": username}) name = post_parameters["full_name"] if role == 'Extended Users': associate_user_with_all_projects_of_organisation( manager, ngo_user_profile.reporter_id) UserActivityLog().log(request, action=ADDED_USER, detail=activity_log_detail( name, friendly_name(role))) elif role == 'Project Managers': selected_questionnaires = post_parameters.getlist( 'selected_questionnaires[]') selected_questionnaire_names = post_parameters.getlist( 'selected_questionnaire_names[]') if selected_questionnaires is None: selected_questionnaires = [] associate_user_with_projects( manager, ngo_user_profile.reporter_id, user.id, selected_questionnaires) UserActivityLog().log( request, action=ADDED_USER, detail=activity_log_detail( name, friendly_name(role), selected_questionnaire_names)) transaction.savepoint_commit(sid) except Exception as e: transaction.savepoint_rollback(sid) datawinners_logger.exception(e.message) add_user_success = False transaction.commit( ) #Mandatory for manually managed transaction blocks. Here it won't save anything if add_user_success and reset_form.is_valid(): send_email_to_data_sender(reset_form.users_cache[0], request.LANGUAGE_CODE, request=request, type="created_user", organization=org) form = UserProfileForm() else: add_user_success = False else: errors = form.errors add_user_success = False if len(request.user.groups.filter(name__in=["NGO Admins"])) < 1: current_user_type = "Administrator" else: current_user_type = "Account-Administrator" data = { "add_user_success": add_user_success, "errors": errors, "current_user": current_user_type } return HttpResponse(json.dumps(data), mimetype="application/json", status=201)