HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/buyercall/buyercall/blueprints/sysadmin/__pycache__/views.cpython-310.pyc
o

�we{B�@sddlZddlmZddlmZmZmZmZmZmZm	Z	m
Z
mZmZm
Z
ddlmZddlmZddlmZmZmZmZddlmZddlmZdd	lmZdd
lmZmZddl m!Z!m"Z"m#Z#m$Z$ddl%m&Z&dd
l'm(Z(ddl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0ddl1m2Z2ddl3m4Z4m5Z5ddl6m7Z7ddl8m9Z9ddl:m;Z;ddl<m=Z=m>Z>m?Z?m@Z@ddlAmBZBddlCZCddlDmEZEddlFZGddlHmIZIedeJdd�ZKeKjLee(dd�dd����ZLeKjMddd id!�eK�Md"�d#d$���ZNeK�Md%�d&d'��ZOeK�Md(�d)d*��ZPeKjMd+d,d-gd.�d/d0��ZQeKjMd1d-gd.�d2d3��ZReKjMd4d-gd.�d5d6��ZSeKjMd7d-gd.�d8d9��ZTeKjMd:d-gd.�d;d<��ZUeKjMd=d-gd.�d>d?��ZVeKjMd@d,d-gd.�eKjMdAd,d-gd.�dMdBdC���ZWeKjMdDd-gd.�dEdF��ZXeKjMdGd,d-gd.�dHdI��ZYeK�MdJ�e(d�dKdL���ZZdS)N�N)�datetime)�	Blueprint�
make_response�flash�jsonify�json�render_template�g�request�redirect�url_for�Response)�gettext)�ngettext)�login_required�current_user�logout_user�
login_user)�current_supervisor_user)r)�and_)�IntegrityError�InvalidRequestError)�asc�desc�or_�func)�	load_only)�
role_required)�
SearchForm�BulkDeleteForm�UserForm�UserCancelSubscriptionForm�	IssueForm�IssueContactForm�
CouponForm)�PartnershipForm)�Report�
ReportUserTie)�db)�text)�User)�ApiToken�Partnership�PartnershipAccount�BILLING_TYPE)�Subscription)�Label)�send_notifications�sysadmin�	templates)�template_folder�
limitsysadmincCsdS)z2 We are protecting all of our sysadmin endpoints. N�r6r6r6�E/home/arjun/projects/buyercall/buyercall/blueprints/sysadmin/views.py�before_request/sr8z/partnerships-old�page�)�defaultsz/partnerships/page/<int:page>cCst�}t�}t�tj�dd�tj�dd��}d}d�||d|d�}tj�dd�d	kr?d}d
|df}d�||d|d�}t|�}tj	�
tjtjtj
t�tj��d	���tttjtjktjdk���t�tj�d
d����|��tjtjtj
tj��|dd�}td|||d�S)N�sort�name�	directionr�partnerships�{0}.{1} {2}rr:�countzcount(users.partnership_id)z{1} {2}�partner�q��Tzpartnerships/index.jinja2)�form�	bulk_formr?)rrr,�sort_byr
�args�get�formatr)�query�
with_entities�active�idr=rrAr*�partnership_id�label�	outerjoinr�role�filter�search�order_by�group_by�paginater)r9�search_formrGrH�table�order_values�order_query�paginated_partnershipsr6r6r7r?8s.�$
��r?z
/all_partnerscCsttddd��S)N�sysadmin.partnershipsr:�r9)rrr6r6r6r7�partnersVsr`z/partnership/<int:id>c	Cs�t�}t�}t�tj�dd�tj�dd��}d}d�||d|d�}t|�}tj�dd�dkr@|ddkr;t	tj
�nttj
�}tj
�|�}tj
�tj��tjdktj|ktj�d	���|���}td
||||d�S)Nr<r=r>r�usersr@rr:Fzpartners/index.jinja2)rFrGra�partnership)rrr*rHr
rIrJrKr)rr=rr,rL�joinrbrT�partnership_account_idrP�is_deactivated�is_rV�allr)	rOrYrGrHrZr[r\�partnership_var�paginated_usersr6r6r7rb[s(� 
��rbz/partners/<int:id>/edit�GET�POST)�methodscCs^tj�|�}t|d�}tdtd|j��|_ddi|j_g|j_	dd�t
j��D�}|D]
}|dkr9|jj	�|�q,|�
�r�t�|d	tj�d
��rYttd�d�ttd
|jd��S|`|�|�|jdkrhd|_|��t�|_|jjD]}t�}||_|j|_tj �!|�qttj �"�ttd�d�ttd
|jd��S|j�#dd�|jD��t$d||d�S)N��obj�lbl_role�%sr)�
PrivilegescSsg|]}|j|jf�qSr6)rOr=)�.0�reportr6r6r7�
<listcomp>�sz!partners_edit.<locals>.<listcomp>)�zPartner Channel Account ReportrBrNz@This is the last partner within partnership, you cannot do that.�danger�sysadmin.partnership�rOrDz!User has been saved successfully.�successcSsg|]}|jj�qSr6)rsrO)rr�linkr6r6r7rt�szpartners/edit.jinja2)rF�user)%r*rLrJr r0�_rSrQ�reports_list�choicesr&rg�append�validate_on_submit�is_last_partnerr
rFrrrrP�populate_obj�username�save�list�reports�datar'�	report_idrO�user_idr(�session�add�commit�process_datar)rOr{rF�rework_reports�rrzr6r6r7�
partners_editysF
�
��


r�z(/partnerships/<int:id>/edit/login_accesscCs�tj�tj|k���}tj�dd�}|dur#tt	d�d�t
td��S|dkr)dnd}tj
�t��tj|k�jd	|id
d�tj
�t��tj|ktj�dg�tj�d��jd	|id
d�tj
��tt	d
�d�t
td��S)N�status�off� This partnership does not exist.rvr^�onTFrN�fetch��synchronize_sessionrB�4Partnership settings have been changed successfully.ry)r,rLrTrO�firstr
rFrJrr|rrr(r��updater*rPrS�in_rerfr��rOrbr�r6r6r7�partnership_edit_login_access�s"

�
"
�
r�z'/partnership/<int:id>/edit/edit_twilliocCs�tj�tj|k���}tj�dd�}|dus|jdur(t	t
d�d�ttd��S|dkr.dnd}|r9|j�
�n|j��t	t
d	�d
�ttd��S)Nr�r�r�rvr^r�TFr�ry)r,rLrTrOr�r
rFrJ�subscriptionrr|rr�activate_twilio_account�suspend_twilio_accountr�r6r6r7�partnership_edit_twillio�s
r�z(/partnership/<int:id>/edit/edit_providercCsRtjd}|dvrtj�tj|k���}||_tj	�
�ttd�d�t
td��S)N�provider)�twilio�	bandwidthr�ryr^)r
rFr,rLrTrOr��default_providerr(r�r�rr|rr)rOr�rbr6r6r7�partnership_edit_provider�s

r�z-/partnership/<int:id>/edit/close_subscriptioncCsftj�tj|k���}|dus|jdur!ttd�d�tt	d��S|j�
�ttd�d�tt	d��S)Nr�rvr^r�ry)r,rLrTrOr�r�rr|rr�close_twilio_account)rOrbr6r6r7�partnership_close_subscription�s
r�z"/partnership/<int:id>/bulk_delete/cCs�t�}|��rYtj�d�}tj�tj|ktj	dktj
dktj�d���
�}t|�|kr:ttd�d�ttd|d��Stj�t��tj�|�tj�d��jd	did
d�tj��nttd�d�ttd|d��S)
N�bulk_idsrBTFzrYou cannot deactivate all partners and leave partnership without its manager. Rather deactivate whole partnership.rvrwrxrNr�r�z7No partnerships were deactivated, something went wrong.)rr�r
rF�getlistr*rLrTrPrSrNrerfrA�lenrr|rrr(r�rOr�r�r�)rOrF�ids�totalIdsr6r6r7�partners_bulk_delete�s&&��

�r�z/partnerships/newz/partnerships/<int:id>/editcCst�}t�}t�}|durtj�|�}t|d�}|dur/tdtdt|j��|_ddi|j_	|�
��rtjj
����z�|`|�|�t�tj�d��}t�tj�d��}ttdd	�|��}tt���|_|jd
kr}tj�tjd
ktjdk���}|j|_|jdur�|jdkr�t� |j|j!�|j"dur�|�#|j�tj�$|�tj�%�|D]P}d
|dd|j&d|d�}z't'd(i|��}tj�$|�tj�%�|�(�}	ddl)m*}
|
�+|j|	|j&�Wq�t,t-fy�t.td|dd�d�tj�/�Yq�wt0|�dk�r2tj�t'��t'j1�2|�t'j3�4d��j5d|jidd�tj�t6�j7t6d��t6j�2|��j5d|jidd�tj�%�tj�8�tj9�r�t0tj9�dk�r�tj9d}|�:dt;j<�|�=�}|dk�r^nW|dk�rxt.dd�t>t?ddd ��WWd�S|�:d�d!|j|j&f}
|j@}dd"lAmB}||
|�tj�t��tj|jk�j5dd#|
|fidd�tj�%�tj�8�t.d$d%�tCt?d��WWd�StD�y�}z)t|d�j|_t.tt|jE��d�tj�/�tCt?d��WYd}~Wd�Sd}~ww1�swYt>d&||d'�S))Nrmrorpr)zCurrent Default Billing�invited_emails�moved_accountscSs|dS)NrOr6)�ar6r6r7�<lambda>!sz"partnerships_new.<locals>.<lambda>�invoicerNrrBr=�passwordF)rS�emailr��company�
tos_agreementrb)�send_partners_invitation_emailz+User with email id :%(email) already exists)r��errorrPr�r�)�of�logoiz2Logo is too big and was not saved. Max size is 1MBrvr^r:r_z%s_%s)�upload_partnership_logoz%s/%sz.The partnership has been updated successfully.ryzpartnerships/new.jinja2)rFrbr6)Fr�r,rLrJr%r0r|r.�default_billing_typerQr�r(r��no_autoflushr�r�r�loadsr
rF�map�str�uuid�uuid4�account_invitation_url_tokenr/rT�planr�r�rO�subscription_id�update_business_type�
business_type�api_token_id�regenerate_api_tokenr��flushr=r*�serialize_token�buyercall.blueprints.user.tasksr��delayrrr�rollbackr�rdr�rerfr�r-�with_for_updater��files�seek�os�SEEK_END�tellrr�filename�&buyercall.blueprints.partnership.tasksr�r�	Exception�message)rOr�r�rbrF�invoice_subscriptionr��paramsrB�reset_tokenr��file�file_length�folder_name�	file_namer��er6r6r7�partnerships_new
s�





�
��
��





�
D
��


�S
��S�Yr�z/partnerships/act_ascCslt}t}tj�tj�d��}|durttd�d�t	t
d��St|ddd�t�t
|ddd�t	t
d��S)N�
partner_idzSuch Partnership does not existrvr^T)�remember�forcez
user.settings)rrr*rLrJr
rFrr|rr�supervisor_login_userrr)�s�u�target_userr6r6r7�act_asvsr�z/api/accounts/searchcCs�tj�dd�}d�|�}t�}tj�tj��	t
tj�|����
ttj���d���}dd�}t|�dkr;tt||��}tt�|�dd	�S)
NrCrDz%{0}%rEcSs|j|j|jjd�}|S)N�rOr=rbr�)�account�or6r6r7�compile�s
�zsearch_account.<locals>.compilerzapplication/json)�mimetype)r
rIrJrKr�r-rLrcrbrTrr=�ilikerVr�limitrgr�r�r
r�dumps)rL�search_query�resultr�r�r6r6r7�search_account�s
�r��
/partnershipscCsJtj�d�}tjddtj�dtj��|j�d�d�}tdi|��}t	d�S)	Nr:�PARTNERSHIPS_VIEWEDzYou've� r�)r��notify_message_type�user_related_entities�other_user_related_entities�	hyperlinkz partnerships/partnerships.jinja2r6)
r,rLrJr�sid�	firstname�lastname�partner_urlr1r)rbr��responser6r6r7�partnerships_table�s
�r)N)[r�r�flaskrrrrrrr	r
rrr
�flask_babelrr|r�_n�flask_loginrrrr� buyercall.lib.supervisor_managerrr��sqlalchemy.sql.elementsr�sqlalchemy.excrr�
sqlalchemyrrrr�sqlalchemy.ormr�$buyercall.blueprints.user.decoratorsr� buyercall.blueprints.admin.formsrrr r!r"r#r$�&buyercall.blueprints.partnership.formsr%�#buyercall.blueprints.reports.modelsr&r'�buyercall.extensionsr(�sqlalchemy.sqlr)� buyercall.blueprints.user.modelsr*�'buyercall.blueprints.partnership.modelsr+r,r-r.�0buyercall.blueprints.billing.models.subscriptionr/r��wtformsr0�logging�log�+buyercall.blueprints.notification.utilitiesr1�__name__r2r8�router?r`rbr�r�r�r�r�r�r�r�r�rr6r6r6r7�<module>sv4	$


+




j