U
    Vb                     @   sd   d Z dZdZddlmZ ddlmZmZ ddlm	Z	m
Z
 ddlmZ ddlmZ G d	d
 d
eZdS )zCopyright 2021, 3LizzGPL version 3zinfo@3liz.org    )
QgsProject)QgsServerFilterQgsServerInterface)get_lizmap_configget_lizmap_groups)LizmapFilterException)Loggerc                       s4   e Zd Zedd fddZdd Zdd Z  ZS )	LizmapFilterN)server_ifacereturnc                    s    t d t | || _d S )NzLizmapFilter.init)r   infosuper__init__iface)selfr
   	__class__ 7/var/qgis-server/plugins/lizmap/server/lizmap_filter.pyr      s    
zLizmapFilter.__init__c           
   
   C   s  t  }zt| j }t|dkr(W d S t| j }|sJ|d W d S d|ksZ|d sj|d W d S |d }d|ks|d s|d W d S |d }|d |D ]}||kr W d S qt	dd	d
d}| j }|
| W n. tk
r }	 z||	 W 5 d }	~	X Y nX d S )Nr   zLizmap config is emptyoptionszLizmap config has no optionsaclzNo acl defined in Lizmap configzAcl defined in Lizmap configZ	ForbiddenzNo ACL permissionsi  )response_code)r   r   r   requestHandlerlenr   configFilePathwarningr   r   ZsetServiceException	Exceptionlog_exception)
r   loggergroupscfgZcfg_optionsZcfg_aclgroupexchandlerer   r   r   requestReady   s4    





zLizmapFilter.requestReadyc                 C   s6   t  }| }|dd  |dd  || d S )Nlizmap_userlizmap_user_groups)r   instancecustomVariablespopsetCustomVariables)r   project
custom_varr   r   r   responseCompleteP   s
    zLizmapFilter.responseComplete)__name__
__module____qualname__r   r   r%   r.   __classcell__r   r   r   r   r	      s   ;r	   N)__copyright____license__	__email__	qgis.corer   qgis.serverr   r   lizmap.server.corer   r   lizmap.server.exceptionr   lizmap.server.loggerr   r	   r   r   r   r   <module>   s   