mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-27 00:33:48 -05:00
78 lines
3.2 KiB
Plaintext
78 lines
3.2 KiB
Plaintext
|
/***************************************************************************
|
||
|
qgsaccesscontrolfilter.sip
|
||
|
--------------------------
|
||
|
Access control interface for Qgis Server plugins
|
||
|
|
||
|
begin : 2015-05-19
|
||
|
copyright : (C) 2015 by Stéphane Brunner
|
||
|
email : stephane dot brunner at camptocamp dot org
|
||
|
***************************************************************************/
|
||
|
|
||
|
/***************************************************************************
|
||
|
* *
|
||
|
* This program is free software; you can redistribute it and/or modify *
|
||
|
* it under the terms of the GNU General Public License as published by *
|
||
|
* the Free Software Foundation; either version 2 of the License, or *
|
||
|
* (at your option) any later version. *
|
||
|
* *
|
||
|
***************************************************************************/
|
||
|
|
||
|
/**
|
||
|
* \class QgsAccessControlFilter
|
||
|
* \brief Class defining access control interface for QGIS Server.
|
||
|
*
|
||
|
* Security can define any (or none) of the following method:
|
||
|
* * layerFilterExpression()
|
||
|
* * layerFilterSubsetString()
|
||
|
* * layerPermissions()
|
||
|
* * authorizedLayerAttributes()
|
||
|
* * allowToEdit()
|
||
|
* * cacheKey()
|
||
|
*/
|
||
|
|
||
|
class QgsAccessControlFilter
|
||
|
{
|
||
|
%TypeHeaderCode
|
||
|
#include "qgsaccesscontrolfilter.h"
|
||
|
#include "qgsserverinterface.h"
|
||
|
#include "qgsfeature.h"
|
||
|
#include "qgsmaplayer.h"
|
||
|
%End
|
||
|
|
||
|
public:
|
||
|
/** Constructor
|
||
|
* QgsServerInterface passed to plugins constructors
|
||
|
* and must be passed to QgsAccessControlPlugin instances.
|
||
|
*/
|
||
|
QgsAccessControlFilter( const QgsServerInterface* serverInterface );
|
||
|
/** Destructor */
|
||
|
virtual ~QgsAccessControlFilter();
|
||
|
|
||
|
/** Describe the layer permission */
|
||
|
struct LayerPermissions
|
||
|
{
|
||
|
bool canRead;
|
||
|
bool canUpdate;
|
||
|
bool canInsert;
|
||
|
bool canDelete;
|
||
|
};
|
||
|
|
||
|
/** Return the QgsServerInterface instance*/
|
||
|
const QgsServerInterface* serverInterface() const;
|
||
|
/** Return an additional expression filter */
|
||
|
virtual const QString layerFilterExpression( const QgsVectorLayer* layer /Transfer/ ) const;
|
||
|
/** Return an additional the subset string (typically SQL) filter.
|
||
|
Faster than the layerFilterExpression but not supported on all the type of layer */
|
||
|
virtual const QString layerFilterSubsetString( const QgsVectorLayer* layer /Transfer/ ) const;
|
||
|
/** Return the layer permissions */
|
||
|
virtual const LayerPermissions layerPermissions( const QgsMapLayer* layer /Transfer/ ) const;
|
||
|
/** Return the authorized layer attributes */
|
||
|
virtual const QStringList* authorizedLayerAttributes( const QgsVectorLayer* layer /Transfer/, const QStringList& attributes ) const;
|
||
|
/** Are we authorize to modify the following geometry */
|
||
|
virtual bool allowToEdit( const QgsVectorLayer* layer /Transfer/, const QgsFeature& feature /Transfer/ ) const;
|
||
|
/** Cache key to used to create the capabilities cache, "" for no cache, shouldn't any contains "-", default to "" */
|
||
|
virtual const QString cacheKey() const;
|
||
|
};
|
||
|
|
||
|
typedef QMultiMap<int, QgsAccessControlFilter*> QgsAccessControlFilterMap;
|