Remoto - VFS: google_oauth2 Class Reference
Remoto - VFS

#include <VFS_google_oauth2.h>

Inheritance diagram for google_oauth2:
VFS_auth VFS_node

Public Slots

void discoveryFinished ()
 
virtual void discoverySslErrors (const QList< QSslError > &errors)
 
- Public Slots inherited from VFS_auth
virtual void executeRequest (VFS_request *t)
 Execute a VFS_request. More...
 
- Public Slots inherited from VFS_node
virtual void applyDiff (VFS_request *r)
 Apply a diff received via subscription. More...
 
virtual void executeRequest (VFS_request *t)
 Based on the VFS_request::requestType, execute the function associated with an operation. More...
 
void notifySubscribers (VFS_node *origin, VFS_request *t)
 Propagate a diff to subscribers. More...
 
virtual void receiveResponse (VFS_request *t)
 Once a VFS_request has been completed, a response will be issued back to its _origin. More...
 
void remove (bool andDelete)
 Remove a child node. More...
 
virtual void remove (VFS_node *node=nullptr, QString *name=nullptr, QString user="server")
 Remove a child node from this node. More...
 
virtual void subtreeRequest (VFS_request *t)
 find() the target of a VFS_request, and execute the request More...
 
virtual void unsubscribeAll (VFS_node *n)
 Remove all references to a subscriber from this node. More...
 

Public Member Functions

Q_INVOKABLE google_oauth2 (QString discovery_uri, QString client_id, QString client_secret, QString redirect_uri, QString tokeninfo_uri, QString hosted_domain, bool debug=false)
 
virtual ~google_oauth2 ()
 
virtual QString reportDetails ()
 Additional details for a generated report. More...
 
- Public Member Functions inherited from VFS_auth
 VFS_auth ()
 
virtual ~VFS_auth ()
 
virtual VFS_nodefind (VFS_request *r)
 Find a node using a VFS_request. More...
 
virtual bool isContainer ()
 A VFS_auth node cannot contain children. More...
 
- Public Member Functions inherited from VFS_node
Q_INVOKABLE VFS_node ()
 The VFS_node constructor will add its instance to the VFS_node::__allNodes global node registry, observing thread safety rules. More...
 
virtual ~VFS_node ()
 VFS_node destructor. More...
 
virtual VFS_nodeappend (QString name, VFS_node *node, bool containerCheck=true, QString user="server")
 Append a VFS_node as a child of this node. More...
 
QString className ()
 Return the class name of a node. More...
 
virtual VFS_requestcreateRequest (VFS_request::requestType type, QString path, QString user="unknown", QJsonDocument data=QJsonDocument(), QJsonObject metadata=QJsonObject(), bool dontDelete=false)
 Create a new VFS_request with this object as _origin. More...
 
VFS_nodefind (QString path)
 Find a node by string path. More...
 
VFS_nodefindChildWithName (QString name)
 Check if a child with a given name exists. More...
 
virtual VFS_nodemount ()
 Mount this node. More...
 
QString uniqueChildName (QString name)
 Generate a unique child name. More...
 
virtual VFS_nodeunmount ()
 Unmount this node. More...
 
virtual bool validChildName (QString name)
 Check if a node name is valid. More...
 

Protected Slots

void authResult (google_oauth2_auth *auth)
 
void initialize ()
 

Protected Member Functions

virtual void ls (VFS_request *r)
 List the contents of this node. More...
 
virtual void read (VFS_request *r)
 Return the data contents of this node, or if it's a container call ls() More...
 
- Protected Member Functions inherited from VFS_auth
virtual QByteArray icon ()
 Return the users icon from VFS_icons. More...
 
- Protected Member Functions inherited from VFS_node
virtual void aclDefaults (VFS_request *r)
 Return default values and features associated wth this node. More...
 
void addACLDefault (QJsonObject &acl, bool value, QString description="")
 Add a default value to the acl object. More...
 
void addACLFeature (QJsonObject &acl, QString feature, bool value, QString description="")
 Add a feature to the acl object. More...
 
void addACLFeatureGroup (QJsonObject &acl, QString feature, QString group, bool value)
 Add a feature group to the acl object. More...
 
void addACLFeatureUser (QJsonObject &acl, QString feature, QString user, bool value)
 Add a feature user to the acl object. More...
 
void addACLGroup (QJsonObject &acl, QString group, bool value)
 Add a group to the acl object. More...
 
void addACLUser (QJsonObject &acl, QString user, bool value)
 Add a user to the acl object. More...
 
virtual void issueRequest (VFS_node *target, VFS_request *t)
 Issue a VFS_request to its target. More...
 
virtual void issueRequest (VFS_request *t)
 A convenience function. More...
 
virtual void issueResponse (VFS_request *t)
 Once a request has been completed, issue a response. More...
 
virtual void metadata (VFS_request *r)
 Fetch the metadata of this node. More...
 
virtual void releaseLock (VFS_request *r)
 Release a lock on this node. More...
 
virtual void report (VFS_request *r)
 Report debugging information about the current state of this node. More...
 
virtual void requestLock (VFS_request *r)
 Request a lock on this node. More...
 
virtual void rm (VFS_request *r)
 Remove a child entry from a node, or the node itself. More...
 
virtual void submit (VFS_request *r)
 Submit a diff to a node. More...
 
virtual void subscribe (VFS_request *r)
 Add an entry to this node's _subscription list. More...
 
virtual void unsubscribe (VFS_request *r)
 Remove an entry from this node's _subscription list. More...
 
virtual void unsubscribePath (QString path)
 Unsubscribe all references to a subpath. More...
 
virtual void write (VFS_request *r)
 Write data to this node. More...
 

Private Attributes

QMap< google_oauth2_auth *, VFS_request * > _auths
 
QString _client_id
 
QString _client_secret
 
bool _debug
 
QJsonObject _discovery_data
 
QNetworkReply * _discovery_reply
 
QUrl _discovery_uri
 
QString _hosted_domain
 
QNetworkAccessManager _manager
 
QString _redirect_uri
 
QString _tokeninfo_uri
 
QMap< QString, QJsonObject > _userCache
 
bool _valid
 

Friends

class google_oauth2_auth
 

Additional Inherited Members

- Signals inherited from VFS_node
void diff (VFS_node *origin, VFS_request *t)
 Emit a diff, which will trigger notifySubscribers() for a mounted node. More...
 
void finished (bool andDelete=false)
 Emitted if a thread fails to create its node, or a node is rm()'d, or any other reason a node has completed its lifecycle. It is deleted if andDelete==true. More...
 
void mounted ()
 Emitted when a node is mount()ed. More...
 
void unmounted (VFS_node *self)
 Emitted when a node is unmount()ed. More...
 
- Static Public Member Functions inherited from VFS_node
static bool __isNode (VFS_node *)
 Check to see if a node is in the global registry. More...
 
static QString code (QString nodename, QString libname, QString &error)
 Fetch code or any other resource from a node. More...
 
- Protected Attributes inherited from VFS_node
VFS_children _children
 This node's children. More...
 
QMutex _lock
 A recursive mutex that is local to this node. More...
 
VFS_subscriptionType _subscribers
 This node's subscribers. These subscribers will receive diff notifications. More...
 

Detailed Description

Definition at line 12 of file VFS_google_oauth2.h.

Constructor & Destructor Documentation

◆ google_oauth2()

google_oauth2::google_oauth2 ( QString  discovery_uri,
QString  client_id,
QString  client_secret,
QString  redirect_uri,
QString  tokeninfo_uri,
QString  hosted_domain,
bool  debug = false 
)
explicit

Definition at line 8 of file VFS_google_oauth2.cpp.

◆ ~google_oauth2()

google_oauth2::~google_oauth2 ( )
virtual

Definition at line 35 of file VFS_google_oauth2.cpp.

Member Function Documentation

◆ authResult

void google_oauth2::authResult ( google_oauth2_auth auth)
protectedslot

Definition at line 243 of file VFS_google_oauth2.cpp.

◆ discoveryFinished

void google_oauth2::discoveryFinished ( )
slot

Definition at line 182 of file VFS_google_oauth2.cpp.

◆ discoverySslErrors

void google_oauth2::discoverySslErrors ( const QList< QSslError > &  errors)
virtualslot

Definition at line 173 of file VFS_google_oauth2.cpp.

◆ initialize

void google_oauth2::initialize ( )
protectedslot

Definition at line 228 of file VFS_google_oauth2.cpp.

◆ ls()

void google_oauth2::ls ( VFS_request r)
protectedvirtual

List the contents of this node.

Parameters
rThe VFS_request object

List format will be:

{
"dir1": true,
"dir2": true,
"file1": false
}

Where each child is listed with the status of isContainer(). This will allow the receiver to know whether or not a child entry can be recursed.

The assumption is that if isContainer()==false, the sub-path supports VFS requests like read(), submit(), or subscribe()

Subclasses may choose to list additional virtual children if desired. Those entries will need to be added to find() to be effective.

See also
Requests

Reimplemented from VFS_node.

Definition at line 112 of file VFS_google_oauth2.cpp.

◆ read()

void google_oauth2::read ( VFS_request r)
protectedvirtual

Return the data contents of this node, or if it's a container call ls()

Parameters
rThe VFS_request object

The base class implementation will return no data and _success will be false, except for the case of isContainer()==true, where ls() will be performed.

Data should be written to VFS_request::_data, and can be any JSON content.

Note that if a pane is subscribing to a node, the VFS_client will close panes that receive null as content. Even if you plan to do nothing with the read value of a node, you should provide some non-null data to prevent the pane from closing, or failing to open.

See also
Requests

Reimplemented from VFS_node.

Definition at line 39 of file VFS_google_oauth2.cpp.

◆ reportDetails()

QString google_oauth2::reportDetails ( )
virtual

Additional details for a generated report.

Returns
A string containing the additional details.

This is useful in subclasses for providing class-specific information of any kind. For instance, VFS_cron::reportDetails() will list all active events.

See also
VFS_httpd_browser

Reimplemented from VFS_node.

Definition at line 168 of file VFS_google_oauth2.cpp.

Friends And Related Function Documentation

◆ google_oauth2_auth

friend class google_oauth2_auth
friend

Definition at line 16 of file VFS_google_oauth2.h.

Member Data Documentation

◆ _auths

QMap< google_oauth2_auth *, VFS_request *> google_oauth2::_auths
private

Definition at line 41 of file VFS_google_oauth2.h.

◆ _client_id

QString google_oauth2::_client_id
private

Definition at line 30 of file VFS_google_oauth2.h.

◆ _client_secret

QString google_oauth2::_client_secret
private

Definition at line 31 of file VFS_google_oauth2.h.

◆ _debug

bool google_oauth2::_debug
private

Definition at line 29 of file VFS_google_oauth2.h.

◆ _discovery_data

QJsonObject google_oauth2::_discovery_data
private

Definition at line 38 of file VFS_google_oauth2.h.

◆ _discovery_reply

QNetworkReply* google_oauth2::_discovery_reply
private

Definition at line 37 of file VFS_google_oauth2.h.

◆ _discovery_uri

QUrl google_oauth2::_discovery_uri
private

Definition at line 36 of file VFS_google_oauth2.h.

◆ _hosted_domain

QString google_oauth2::_hosted_domain
private

Definition at line 34 of file VFS_google_oauth2.h.

◆ _manager

QNetworkAccessManager google_oauth2::_manager
private

Definition at line 40 of file VFS_google_oauth2.h.

◆ _redirect_uri

QString google_oauth2::_redirect_uri
private

Definition at line 32 of file VFS_google_oauth2.h.

◆ _tokeninfo_uri

QString google_oauth2::_tokeninfo_uri
private

Definition at line 33 of file VFS_google_oauth2.h.

◆ _userCache

QMap<QString, QJsonObject> google_oauth2::_userCache
private

Definition at line 44 of file VFS_google_oauth2.h.

◆ _valid

bool google_oauth2::_valid
private

Definition at line 42 of file VFS_google_oauth2.h.


The documentation for this class was generated from the following files: