
    6i                     T    d dl Z d dlmZmZ  e j                  e      Z G d d      Zy)    N)
PermissionRolec                   j    e Zd ZdZddg ddddg ddd	d
g ddddg ddddg ddgZed        Zy)CompanyRoleServicez2Service for managing company roles and permissionszChief Adminz+Company administrator with full permissions)%
view_rolescreate_roles
edit_rolesdelete_rolesview_customers
view_userscreate_users
edit_usersdelete_usersmanage_usersview_companyedit_companydelete_companyview_reportsview_analyticsview_profileedit_profileview_other_profilesview_permissionsassign_rolesview_bdc_dashboardview_service_dashboardview_holidaysedit_holidaysview_company_botsedit_company_botsview_service_callsview_officehoursedit_officehoursview_salestimeedit_salestimeview_catchphraseedit_catchphraseview_calendarupdate_passwordview_bdc_callsview_audit_log)namedescriptionpermissionszBDC Managerz3BDC Manager with user and company management access)r   r   r)   r*   zService Managerz"Basic employee with limited access)r   r   r!   r   r   r)   r+   zBDC Advisorz Read-only access to company data)r   r"   r*   zService Advisor)view_advisor_dashboardr"   view_self_service_callsc                    t         j                  D ]  }	 |d   }t        j                  j	                  |d      }t        |      t        |j                  dd            z
  }|rt        j                  d|d    d|        t        j                  j                  |d   | |d	   dd
      \  }}|rL|j                  j                  |       t        j                  d|j                   d| j                   d       n0t        j                  d|j                   d| j                   d       ! y# t        $ r?}t        j                  d|d    d| j                   dt!        |              Y d}~fd}~ww xY w)z:Create default roles for a company when it's first createdr.   T)codename__in	is_activecodename)flatzMissing permissions for role"r,   z": r-   )r-   r3   )r,   companydefaultszCreated role 'z' for company ''zRole 'z' already exists for company 'zFailed to create role 'z': N)r   DEFAULT_ROLESr   objectsfiltersetvalues_listloggerwarningr   get_or_creater.   infor,   	Exceptionerrorstr)r6   	role_datarequested_permsr.   missingrolecreatedes           @/var/www/html/dp2/backend_v2.1/server/apps/companies/services.pycreate_default_rolesz'CompanyRoleService.create_default_roles=   s    ,99I#"+M":(0077!0" 8 
 o.[5L5LZ^b5L5c1ddNN7	&8I7J#gYW
 !% : :"6*#'0'?%) !; !g $$((5KK.?7<<.XY Z[KK&3QRYR^R^Q__` ab= :@  -i.?-@ A$$+LL>SVH> s   DD44	E<=4E77E<N)__name__
__module____qualname____doc__r9   staticmethodrL        rK   r   r      s|    < "H	
$ "P	
 &?	
 "=	
 &=	
U1Mf ' 'rS   r   )loggingapps.permissions.modelsr   r   	getLoggerrM   r>   r   rR   rS   rK   <module>rW      s)     4			8	$^ ^rS   