Git Product home page Git Product logo

dowc's Introduction

Dowc

Version: 0.6.3
Source:https://github.com/GemeenteUtrecht/dowc
Keywords:documents, zaakgericht werken
PythonVersion:3.8

Dowc (DOcument Wijzigen Component) facilitates local viewing and editing of non-local MS Office documents.

Introduction

Zaken in Open Zaak can have relevant documents. End-users of the ZAC, for example, need to be able to read and edit these documents provided they have the appropriate permissions. Viewing and editing should happen in their local installation of MS Office.

The dowc provides the machinery to facilitate:

  • local viewing, and
  • local editing of non-local MS Office documents.

Limitations

Documents will need to be explicitly saved through a separate POST request https://dowc.cg-intern.ont.utrecht.nl/api/v1/docs/#operation/documenten_destroy. If this isn't done for every document that was opened, a notification will be sent within 24 hours and the document will be closed with all updates pushed to the source document. There is currently also no way to abort the editing action outside of the normal MS Office methods of undoing work.

Documentation

See INSTALL.rst for installation instructions, available settings and commands. See doc/mechanics.rst for a brief explanation of the mechanics of dowc. See doc/supported_formats.rst for a list of file formats currently supported.

References

dowc's People

Contributors

damm89 avatar sergei-maertens avatar jordi-t avatar

Watchers

Joeri Bekker avatar

dowc's Issues

D.O.C. development

The D.O.C. needs to facilitate editing and viewing of documents on the server rather than on the local client.

Checklist:

  • Implement DocumentFileModel:
  • Local file creation
  • Implement MS Office URI Scheme
  • Implement API endpoints for kownsl/zac/etc to talk to:
  • Update ZAC to only do permission checks(?) and send request to D.O.C.
  • Implement ZGW Auth like kownsl so that users from external API's can be identified.

Visualization

workflow_doc_wijzigen

createsuperuser management command is broken

After deploying, trying to create the superuser:

Gebruikersnaam: sergei
Password: 
Password (again): 
Traceback (most recent call last):
  File "src/manage.py", line 24, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 323, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.8/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 61, in execute
    return super().execute(*args, **options)
  File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 364, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python3.8/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 156, in handle
    self.UserModel._default_manager.db_manager(database).create_superuser(**user_data)
TypeError: create_superuser() missing 1 required positional argument: 'email'
Sentry is attempting to send 0 pending error messages
Waiting up to 2 seconds
Press Ctrl-C to quit
command terminated with exit code 1

On checkin, return the resulting fully qualified document URL

Context: GemeenteUtrecht/ZGW#684

When the user is done editing the document and the record is DELETEd through the API, the API should not respond with a
HTTP 204 (empty body), but rather return the URL of the updated document from the Documenten API, including the ?versie= parameter.

D.O.C. path beveiliging

The MS Office WebDAV clients seems to need to be able to crawl down to the parent directory of the resource in order to function correctly. This leads to a potential security issue if all documents of every user are stored in the same directory.

To secure this potential leak from happening a subfolder from a private media directory is created that is related to the username of the user making the request (root/some-path/private-media-root/username/public/filename.file_extension). (I.e., this is based on the premise that users should be able to see all their documents for as long as they exist in that particular folder).

The owner of the link can still see the entire folder with all the user's documents with a GET request and might even be able to potentially do a POST request, which at that point in time is most likely malicious.

To secure this all requests but the OPTIONS for a path to the parent directory of the file should be forbidden.

Do you agree?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.