Accessing Data from External Clients (QGIS)

Install QGIS Desktop

  • Open the Ubuntu Software app

    image

  • Click CTRL + F and search for qgis; click on the QGIS Desktop icon

    image

  • Click on INSTALL and wait for the process to finish

    image

  • Once the app has been installed, open it by clicking on the icon

    image

Connect through BASIC Auth

This is the easiest way to connect the client to GeoNode:

- Pros: very easy to configure
- Cons: it uses always a fixed user and you need to change it anytime if you want to switch it
  • Let’s add a VECTORIAL layer accessible to test_user1 to the client; click on Layer > Add Layer > Add WFS Layer...

    image

  • Create a New Connection

    image

  • Provide a name, e.g. GeoNode WFS and the following URL:

    • http://localhost/gs/ows

    image

    IMPORTANT: It is mandatory to pass through the GeoNode proxy /gs/ instead of hitting the GeoServer endpoint directly

  • If the client asks for a NEW master password you can just provide anyone, e.g. geonode

    image

  • Switch to Basic authentication, provide the test_user1 credentials and click on Convert to configuration

    image

  • Make sure the converted configuration is selected and click on Detect in order to verify that it works; click on OK when finished

    image

Connect through OAuth2

This is the easiest way to connect the client to GeoNode:

- Pros: difficult to configure
- Cons: it redirects to GeoNode to authenticate, so you can use any login provided by GeoNode
  • We need to prepare GeoNode first; as an admin go to the Admin Dashboard and look for Django OAuth Toolkit > Applications

    image

  • Edit the GeoServer one

    image

  • Add the following URL to the Redirect URIs section and take note of the Client ID and Client Secret keys:

    • Copy the Client ID / Client Secret

    image

    • Add Redirect URIs and Save: http://127.0.0.1:7070/qgis-client

    image

  • Let’s add a VECTORIAL layer accessible to test_user1 to the client; click on Layer > Add Layer > Add WFS Layer...

    image

  • Add a new OAuth2 Authentication config and fill the fields as follows:

    • Name: Provide any name you want e.g. GeoNode OAuth2

    • Grant Flow: Authorization Code

    • Request URL: http://localhost/o/authorize/ (the / at the end is IMPORTANT!)

    • Token URL: http://localhost/o/token/ (the / at the end is IMPORTANT!)

    • Refresh token URL: http://localhost/o/token/ (the / at the end is IMPORTANT!)

    • Client ID / Client Secret: The ones above

    • Scope: openid write

    • Token session: True

    • Access method: Header

    • Token header: empty (it is important you leave this param empty)

    • Save

    image

  • Make sure the new configuration is selected and click on Detect in order to verify that it works; click on OK when finished

    image

  • The client will open automatically a browser session, if you are not logged in, sign in with test_user1

    image

  • The window below means that the authetnication process was successfull; you can safely close it and go back to the client

    image

Attach Layer to the Project

  • Once the connection has been configured and saved, whatever it is, go back to the WFS panel, select the connection you just created and click on Connect

    image

  • If everything goes weel, you should be able to see the server offering; it will list all the layers the user has access to

    image

  • Select the Test Layer and click on Add

    image

  • QGIS will create a new project with the layer already loaded and centered to the map

    image

Editing Contents: Values

  • Enable Editing Mode on QGIS and click on the Info button

    image

  • Click over the geometry to edit and, on the right panel, expand and click on the link Edit feature form

    image

  • That will show a small form with the values, change few ofthem and click on OK button

    image

  • A small floppy disk button will pop near the editing one meaning that there are some pending changes to be committed to the server; click on it in order to persist the changes

    image

  • At a successfull commit, the floppy disk button will be disabled again

Editing Contents: Geometries

  • Enable Editing Mode on QGIS and click on the Info button

    image

  • Click on the Vertex Tool and enable it; from now on by moving over a geometry you will be able to modify its vertices

    image

  • Once happy with the changes, save them like we have done previously on the values

    image

  • With this specific layer most probably you will get an error on the bounding box extension; this is caused by the native projection of the layer and the QGIS not being able to correctly manage the dateline

    image

  • It is still possible to edit the layer from GeoNode directly, however in order to fix this issue easily, we will convert the layer into a Mercator Projected one.

We will pass through the database in order to perform such operation. In the next section we will see how to re-project and store and a DB table a layer and then push it back to GeoNode.