From 2147923eb01e17811ecd6c5e1888c4afdf1622c9 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Sun, 5 Feb 2012 02:47:11 -0400 Subject: [PATCH] Documentation updates, permissions diagrams and inkscape sources --- docs/figure_src/ACL.svg | 591 ++++++++++++++++++++++++++++++++ docs/figure_src/permissions.svg | 392 +++++++++++++++++++++ docs/releases/0.12.rst | 9 + docs/topics/ACL.png | Bin 0 -> 37624 bytes docs/topics/file_storage.rst | 16 +- docs/topics/indexes.rst | 14 +- docs/topics/permissions.png | Bin 0 -> 20275 bytes docs/topics/permissions.rst | 7 + docs/topics/settings.rst | 217 +++++------- 9 files changed, 1104 insertions(+), 142 deletions(-) create mode 100644 docs/figure_src/ACL.svg create mode 100644 docs/figure_src/permissions.svg create mode 100644 docs/topics/ACL.png create mode 100644 docs/topics/permissions.png diff --git a/docs/figure_src/ACL.svg b/docs/figure_src/ACL.svg new file mode 100644 index 0000000000..61132ca3a5 --- /dev/null +++ b/docs/figure_src/ACL.svg @@ -0,0 +1,591 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + Roles + Groups + Users + Users + Groups + Users + Permissions + Documents + Tags + Folders + Tier 1: Actor + Tier 2: Access + Tier 3: Object + + + diff --git a/docs/figure_src/permissions.svg b/docs/figure_src/permissions.svg new file mode 100644 index 0000000000..3588418dfd --- /dev/null +++ b/docs/figure_src/permissions.svg @@ -0,0 +1,392 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + Users + Users + Groups + Roles + Permissions + Tier 1: Actor + Tier 2: Access + + + diff --git a/docs/releases/0.12.rst b/docs/releases/0.12.rst index 748520b87c..350f07e141 100644 --- a/docs/releases/0.12.rst +++ b/docs/releases/0.12.rst @@ -136,6 +136,15 @@ has been added, :setting:`DOCUMENT_INDEXING_FILESYSTEM_SERVING`, which maps the index internal name with the physical directory where such index will be mirrored on disk. +Help shape Mayan EDMS's future +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Included in this version is a small feedback application, found under the +``About`` main menu, where users by just answering some questions can +help determine the priority of the next planned features on the pipeline, +or even help add new features if enough requests are received. All questions +are optional but answering as many as possible will help greatly understand +the need of the **Mayan EDMS** user base. + Upgrading from a previous version ================================= diff --git a/docs/topics/ACL.png b/docs/topics/ACL.png new file mode 100644 index 0000000000000000000000000000000000000000..acd3458113767a91b6c7d926cdc404ea94ae12b8 GIT binary patch literal 37624 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%0DVS;_=+afzM1}QgdYjn=SD_ yX0qcGWtkMM!a5rrXoNptwRHYPr^j=HRo5#{N=Jfbt}4sPn)eZ3k81bOoBsy1f?cWr literal 0 HcmV?d00001 diff --git a/docs/topics/file_storage.rst b/docs/topics/file_storage.rst index c00ca9d466..8d980a15cf 100644 --- a/docs/topics/file_storage.rst +++ b/docs/topics/file_storage.rst @@ -7,15 +7,9 @@ filename clashes (each file gets renamed to its UUID and with an extension) and stored in a simple flat arrangement in a directory. This doesn't stop access to the files but it is not recommended because moving, renaming or updating the files directly would throw the database out -of sync. For access to the files the recommended way is to create and -index which would create a directory tree like structure in the database -and then turn on the index filesystem mirror options which would create -an actual directory tree and links to the actual stored files but using -the filename of the documents as stored in the database. This -filesystem mirror of the index can them be shared with Samba_ across the -network. This access would be read-only, and new versions of the files -would have to be uploaded from the web GUI using the new document -versioning support. +of sync. For direct access to the files the recommended way is to create an +:doc:`index `, use the indexing mirroring feature and share the result via +file serving software [#f1]_. **Mayan EDMS** components are as decoupled from each other as possible, storage in this case is very decoupled and its behavior is controlled @@ -27,4 +21,6 @@ network or even across the internet and still operate exactly the same. The file storage behavior is controlled by the :setting:`DOCUMENTS_STORAGE_BACKEND` and should be set to a class or subclass of Django's ``django.core.files.storage.FileSystemStorage`` class. -.. _Samba: http://www.samba.org/ +.. rubric:: Footnotes + +.. [#f1] http://en.wikipedia.org/wiki/File_server diff --git a/docs/topics/indexes.rst b/docs/topics/indexes.rst index ed4ab46e51..8807b594ae 100644 --- a/docs/topics/indexes.rst +++ b/docs/topics/indexes.rst @@ -5,8 +5,20 @@ Indexes Administrators first define the template of the index and an instance of the index is then auto-populated with links to the documents depending on the rules of each branch of the index evaluated againts the metadata -of the documents. The index cannot be edited manually, only changing +of the documents. Indexes can be mirrored to the operating system filesystem +using the configuration option +:setting:`DOCUMENT_INDEXING_FILESYSTEM_SERVING`. This creates an actual +directory tree and links to the actual stored files but using +the filename of the documents as stored in the database. This +filesystem mirror of the index can them be served with Samba_ across the +network. This access would be read-only, and new versions of the files +would have to be uploaded from the web GUI using the new document +versioning support. + +The index cannot be edited manually, only changing the rules or the metadata of the documents would cause the index to be regenerated. For manual organization of documents there are the folders, their structure is however flat, and they have to be manually updated and curated. + +.. _Samba: http://www.samba.org/ diff --git a/docs/topics/permissions.png b/docs/topics/permissions.png new file mode 100644 index 0000000000000000000000000000000000000000..3c3809f405b648916d73554fdbe906a5f03f3f42 GIT binary patch literal 20275 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 literal 0 HcmV?d00001 diff --git a/docs/topics/permissions.rst b/docs/topics/permissions.rst index 37fc689b06..41980bb04c 100644 --- a/docs/topics/permissions.rst +++ b/docs/topics/permissions.rst @@ -12,6 +12,9 @@ perform. This control is divided into two levels of operation: this method could be thought out as a global permission granting level. Example: Roles being granted the ``Document view`` permission will be able to view **all** documents in existance. + + .. image:: permissions.png + :alt: 2-tier permission diagram * 3-tier access control - When more control is desired over which objects actors(user, groups and roles) can exercise an action this method should be @@ -19,6 +22,9 @@ perform. This control is divided into two levels of operation: permission but only in relation to a selected object. Example: Granting user ``Joe`` the ``Document view`` access control for document ``Payroll``, would allow him to view this document only. + + .. image:: ACL.png + :alt: 3-tier access control diagram The permission system enforces inheritance by first checking if the user has a global permission, is a member of a group or a role that has a global @@ -30,3 +36,4 @@ is forbidden to perform the action and a generic message indicating this is displayed to avoid providing any information that could be used to sidetrack the permission system or obtain any kind of information about the object from which the user was not allowed access. + diff --git a/docs/topics/settings.rst b/docs/topics/settings.rst index d01de8049d..a57beb99b5 100644 --- a/docs/topics/settings.rst +++ b/docs/topics/settings.rst @@ -5,82 +5,76 @@ Settings **Mayan EDMS** has many configuration options that make it very adaptable to different server configurations. -.. contents:: - :local: - :depth: 1 - - Documents ========= .. setting:: DOCUMENTS_CHECKSUM_FUNCTION -DOCUMENTS_CHECKSUM_FUNCTION ---------------------------- +**DOCUMENTS_CHECKSUM_FUNCTION** Default: ``hashlib.sha256(x).hexdigest()`` +The function that will be used to calculate the hash value of each uploaded document. -.. setting:: \DOCUMENTS_UUID_FUNCTION -DOCUMENTS_UUID_FUNCTION ------------------------ +.. setting:: DOCUMENTS_UUID_FUNCTION + +**DOCUMENTS_UUID_FUNCTION** Default: ``unicode(uuid.uuid4())`` +The function that will be used to internally identify each uploaded document. + .. setting:: DOCUMENTS_STORAGE_BACKEND -DOCUMENTS_STORAGE_BACKEND -------------------------- +**DOCUMENTS_STORAGE_BACKEND** Default: ``FileBasedStorage`` class +The storage backend that will be used to store every document. + .. setting:: DOCUMENTS_PREVIEW_SIZE -DOCUMENTS_PREVIEW_SIZE ----------------------- +**DOCUMENTS_PREVIEW_SIZE** Default: ``640x480`` +Size of the document list and recent document list previews. + .. setting:: DOCUMENTS_PRINT_SIZE -DOCUMENTS_PRINT_SIZE --------------------- +**DOCUMENTS_PRINT_SIZE** Default: ``1400`` .. setting:: DOCUMENTS_MULTIPAGE_PREVIEW_SIZE -DOCUMENTS_MULTIPAGE_PREVIEW_SIZE --------------------------------- +**DOCUMENTS_MULTIPAGE_PREVIEW_SIZE** Default: ``160x120`` .. setting:: DOCUMENTS_THUMBNAIL_SIZE -DOCUMENTS_THUMBNAIL_SIZE ------------------------- +**DOCUMENTS_THUMBNAIL_SIZE** Default: ``50x50`` .. setting:: DOCUMENTS_DISPLAY_SIZE -DOCUMENTS_DISPLAY_SIZE ----------------------- +**DOCUMENTS_DISPLAY_SIZE** Default: ``1200`` .. setting:: DOCUMENTS_RECENT_COUNT -DOCUMENTS_RECENT_COUNT ----------------------- +**DOCUMENTS_RECENT_COUNT** Default: ``40`` @@ -90,8 +84,7 @@ remember per user. .. setting:: DOCUMENTS_ZOOM_PERCENT_STEP -DOCUMENTS_ZOOM_PERCENT_STEP ---------------------------- +**DOCUMENTS_ZOOM_PERCENT_STEP** Default: ``50`` @@ -100,8 +93,7 @@ Amount in percent zoom in or out a document page per user interaction. .. setting:: DOCUMENTS_ZOOM_MAX_LEVEL -DOCUMENTS_ZOOM_MAX_LEVEL ------------------------- +**DOCUMENTS_ZOOM_MAX_LEVEL** Default: ``200`` @@ -110,8 +102,7 @@ Maximum amount in percent (%) to allow user to zoom in a document page interacti .. setting:: DOCUMENTS_ZOOM_MIN_LEVEL -DOCUMENTS_ZOOM_MIN_LEVEL ------------------------- +**DOCUMENTS_ZOOM_MIN_LEVEL** Default: ``50`` @@ -120,8 +111,7 @@ Minimum amount in percent (%) to allow user to zoom out a document page interact .. setting:: DOCUMENTS_ROTATION_STEP -DOCUMENTS_ROTATION_STEP ------------------------ +**DOCUMENTS_ROTATION_STEP** Default: ``90`` @@ -130,8 +120,7 @@ Amount in degrees to rotate a document page per user interaction. .. setting:: DOCUMENTS_CACHE_PATH -DOCUMENTS_CACHE_PATH --------------------- +**DOCUMENTS_CACHE_PATH** Default: ``image_cache`` (relative to the installation path) @@ -143,8 +132,7 @@ Converter .. setting:: CONVERTER_IM_CONVERT_PATH -CONVERTER_IM_CONVERT_PATH -------------------------- +**CONVERTER_IM_CONVERT_PATH** Default: ``/usr/bin/convert`` @@ -153,8 +141,7 @@ File path to imagemagick's convert program. .. setting:: CONVERTER_IM_IDENTIFY_PATH -CONVERTER_IM_IDENTIFY_PATH --------------------------- +**CONVERTER_IM_IDENTIFY_PATH** Default: ``/usr/bin/identify`` @@ -163,8 +150,7 @@ File path to imagemagick's identify program. .. setting:: CONVERTER_GM_PATH -CONVERTER_GM_PATH ------------------ +**CONVERTER_GM_PATH** Default: ``/usr/bin/gm`` @@ -173,41 +159,44 @@ File path to graphicsmagick's program. .. setting:: CONVERTER_GM_SETTINGS -CONVERTER_GM_SETTINGS ---------------------- +**CONVERTER_GM_SETTINGS** Default: None - + Suggested options: ``-limit files 1 -limit memory 1GB -limit map 2GB -density 200`` +Set of configuration options to pass to the GraphicsMagick executable to +fine tune it's functionality as explained in the `GraphicsMagick documentation`_ + +.. _GraphicsMagick documentation: http://www.graphicsmagick.org/convert.html#conv-opti + .. setting:: CONVERTER_GRAPHICS_BACKEND -CONVERTER_GRAPHICS_BACKEND --------------------------- +**CONVERTER_GRAPHICS_BACKEND** Default: ``converter.backends.python`` Graphics conversion backend to use. Options are: -* ``converter.backends.imagemagick`` -* ``converter.backends.graphicsmagick`` -* ``converter.backends.python`` +* ``converter.backends.imagemagick`` - Wrapper for ImageMagick +* ``converter.backends.graphicsmagick`` - Wrapper for GraphicsMagick +* ``converter.backends.python`` - Wrapper for Pillow and Ghostscript .. setting:: CONVERTER_UNOCONV_PATH -CONVERTER_UNOCONV_PATH ----------------------- + +**CONVERTER_UNOCONV_PATH** Default: ``/usr/bin/unoconv`` -Path to the unoconv program. +Path to the unoconv program used to call LibreOffice for office document convertion. .. setting:: CONVERTER_UNOCONV_USE_PIPE -CONVERTER_UNOCONV_USE_PIPE --------------------------- + +**CONVERTER_UNOCONV_USE_PIPE** Default: ``True`` @@ -219,8 +208,7 @@ Linking .. setting:: LINKING_SHOW_EMPTY_SMART_LINKS -LINKING_SHOW_EMPTY_SMART_LINKS ------------------------------- +**LINKING_SHOW_EMPTY_SMART_LINKS** Default: ``True`` @@ -232,32 +220,28 @@ Storage .. setting:: STORAGE_GRIDFS_HOST -STORAGE_GRIDFS_HOST -------------------- +**STORAGE_GRIDFS_HOST** Default: ``localhost`` .. setting:: STORAGE_GRIDFS_PORT -STORAGE_GRIDFS_PORT -------------------- +**STORAGE_GRIDFS_PORT** Default: ``27017`` .. setting:: STORAGE_GRIDFS_DATABASE_NAME -STORAGE_GRIDFS_DATABASE_NAME ----------------------------- +**STORAGE_GRIDFS_DATABASE_NAME** Default: ``document_storage`` .. setting:: STORAGE_FILESTORAGE_LOCATION -STORAGE_FILESTORAGE_LOCATION ----------------------------- +**STORAGE_FILESTORAGE_LOCATION** Default: ``document_storage`` @@ -267,40 +251,35 @@ Document indexing .. setting:: DOCUMENT_INDEXING_AVAILABLE_INDEXING_FUNCTIONS -DOCUMENT_INDEXING_AVAILABLE_INDEXING_FUNCTIONS ----------------------------------------------- +**DOCUMENT_INDEXING_AVAILABLE_INDEXING_FUNCTIONS** Default: ``proper_name`` .. setting:: DOCUMENT_INDEXING_SUFFIX_SEPARATOR -DOCUMENT_INDEXING_SUFFIX_SEPARATOR ----------------------------------- +**DOCUMENT_INDEXING_SUFFIX_SEPARATOR** Default: ``_`` (underscore) - + .. setting:: DOCUMENT_INDEXING_FILESYSTEM_SLUGIFY_PATHS -DOCUMENT_INDEXING_FILESYSTEM_SLUGIFY_PATHS ------------------------------------------- +**DOCUMENT_INDEXING_FILESYSTEM_SLUGIFY_PATHS** Default: ``False`` .. setting:: DOCUMENT_INDEXING_FILESYSTEM_MAX_SUFFIX_COUNT -DOCUMENT_INDEXING_FILESYSTEM_MAX_SUFFIX_COUNT ---------------------------------------------- +**DOCUMENT_INDEXING_FILESYSTEM_MAX_SUFFIX_COUNT** Default: ``1000`` .. setting:: DOCUMENT_INDEXING_FILESYSTEM_SERVING -DOCUMENT_INDEXING_FILESYSTEM_SERVING ------------------------------------- +**DOCUMENT_INDEXING_FILESYSTEM_SERVING** Default: ``{}`` @@ -312,8 +291,7 @@ OCR .. setting:: OCR_TESSERACT_PATH -OCR_TESSERACT_PATH ------------------- +**OCR_TESSERACT_PATH** Default: ``/bin/tesseract`` @@ -323,8 +301,7 @@ page's images. .. setting:: OCR_TESSERACT_LANGUAGE -OCR_TESSERACT_LANGUAGE ----------------------- +**OCR_TESSERACT_LANGUAGE** Default: ``eng`` @@ -333,8 +310,7 @@ Language code passed to the ``tesseract`` executable. .. setting:: OCR_REPLICATION_DELAY -OCR_REPLICATION_DELAY ---------------------- +**OCR_REPLICATION_DELAY** Default: ``0`` @@ -344,8 +320,7 @@ storage replication overhead. .. setting:: OCR_NODE_CONCURRENT_EXECUTION -OCR_NODE_CONCURRENT_EXECUTION ------------------------------ +**OCR_NODE_CONCURRENT_EXECUTION** Default: ``1`` @@ -354,8 +329,7 @@ Maximum amount of concurrent document OCRs a node can perform. .. setting:: OCR_AUTOMATIC_OCR -OCR_AUTOMATIC_OCR ------------------ +**OCR_AUTOMATIC_OCR** Default: ``False`` @@ -365,16 +339,14 @@ of existing documents for OCR. .. setting:: OCR_QUEUE_PROCESSING_INTERVAL -OCR_QUEUE_PROCESSING_INTERVAL ------------------------------ +**OCR_QUEUE_PROCESSING_INTERVAL** Default: ``10`` .. setting:: OCR_UNPAPER_PATH -OCR_UNPAPER_PATH ----------------- +**OCR_UNPAPER_PATH** Default: ``/usr/bin/unpaper`` @@ -387,16 +359,14 @@ Metadata .. setting:: METADATA_AVAILABLE_FUNCTIONS -METADATA_AVAILABLE_FUNCTIONS ----------------------------- +**METADATA_AVAILABLE_FUNCTIONS** Default: ``current_date`` .. setting:: METADATA_AVAILABLE_MODELS -METADATA_AVAILABLE_MODELS -------------------------- +**METADATA_AVAILABLE_MODELS** Default: ``User`` @@ -406,8 +376,7 @@ Common .. setting:: COMMON_TEMPORARY_DIRECTORY -COMMON_TEMPORARY_DIRECTORY --------------------------- +**COMMON_TEMPORARY_DIRECTORY** Default: ``/tmp`` @@ -418,23 +387,21 @@ using tempfile.mkdtemp() .. setting:: COMMON_DEFAULT_PAPER_SIZE -COMMON_DEFAULT_PAPER_SIZE -------------------------- +**COMMON_DEFAULT_PAPER_SIZE** Default: ``Letter`` .. setting:: COMMON_DEFAULT_PAGE_ORIENTATION -COMMON_DEFAULT_PAGE_ORIENTATION -------------------------------- +**COMMON_DEFAULT_PAGE_ORIENTATION** + Default: ``Portrait`` .. setting:: COMMON_AUTO_CREATE_ADMIN -COMMON_AUTO_CREATE_ADMIN ------------------------- +**COMMON_AUTO_CREATE_ADMIN** Default: ``True`` @@ -445,8 +412,7 @@ specified by COMMON_AUTO_ADMIN_PASSWORD .. setting:: COMMON_AUTO_ADMIN_USERNAME -COMMON_AUTO_ADMIN_USERNAME --------------------------- +**COMMON_AUTO_ADMIN_USERNAME** Default: ``admin`` @@ -455,8 +421,7 @@ Username of the automatically created superuser .. setting:: COMMON_AUTO_ADMIN_PASSWORD -COMMON_AUTO_ADMIN_PASSWORD --------------------------- +**COMMON_AUTO_ADMIN_PASSWORD** Default: ``admin`` @@ -465,8 +430,7 @@ Default password of the automatically created superuser .. setting:: COMMON_LOGIN_METHOD -COMMON_LOGIN_METHOD -------------------- +**COMMON_LOGIN_METHOD** Default: ``username`` @@ -477,12 +441,11 @@ such as AUTHENTICATION_BACKENDS = ('common.auth.email_auth_backend.EmailAuthBack .. setting:: COMMON_ALLOW_ANONYMOUS_ACCESS -COMMON_ALLOW_ANONYMOUS_ACCESS ------------------------------ +**COMMON_ALLOW_ANONYMOUS_ACCESS** Default: ``False`` -Allow non authenticated users, access to all views +Allow non authenticated users, access to all views. Search @@ -490,8 +453,7 @@ Search .. setting:: SEARCH_LIMIT -SEARCH_LIMIT ------------- +**SEARCH_LIMIT** Default: ``100`` @@ -500,8 +462,7 @@ Maximum amount search hits to fetch and display. .. setting:: SEARCH_RECENT_COUNT -SEARCH_RECENT_COUNT -------------------- +**SEARCH_RECENT_COUNT** Default: ``5`` @@ -509,22 +470,22 @@ Maximum number of search queries to remember per user. Web theme ---------- +========= .. setting:: WEB_THEME_THEME -WEB_THEME_THEME ---------------- +**WEB_THEME_THEME** Default: ``activo`` -CSS theme to apply, options are: ``amro``, ``bec``, ``bec-green``, ``blue``, ``default``, ``djime-cerulean``, ``drastic-dark``, ``kathleene``, ``olive``, ``orange``, ``red``, ``reidb-greenish`` and ``warehouse``. +CSS theme to apply, options are: ``amro``, ``bec``, ``bec-green``, ``blue``, +``default``, ``djime-cerulean``, ``drastic-dark``, ``kathleene``, ``olive``, +``orange``, ``red``, ``reidb-greenish`` and ``warehouse``. .. setting:: WEB_THEME_VERBOSE_LOGIN -WEB_THEME_VERBOSE_LOGIN ------------------------ +**WEB_THEME_VERBOSE_LOGIN** Default: ``True`` @@ -536,8 +497,7 @@ Main .. setting:: MAIN_SIDE_BAR_SEARCH -MAIN_SIDE_BAR_SEARCH --------------------- +**MAIN_SIDE_BAR_SEARCH** Default: ``False`` @@ -546,16 +506,14 @@ Controls whether the search functionality is provided by a sidebar widget or by .. setting:: MAIN_DISABLE_HOME_VIEW -MAIN_DISABLE_HOME_VIEW ----------------------- +**MAIN_DISABLE_HOME_VIEW** Default: ``False`` .. setting:: MAIN_DISABLE_ICONS -MAIN_DISABLE_ICONS ------------------- +**MAIN_DISABLE_ICONS** Default: ``False`` @@ -565,8 +523,7 @@ User management .. setting:: ROLES_DEFAULT_ROLES -ROLES_DEFAULT_ROLES -------------------- +**ROLES_DEFAULT_ROLES** Default: ``[]`` @@ -578,8 +535,7 @@ Signatures .. setting:: SIGNATURES_KEYSERVERS -SIGNATURES_KEYSERVERS ---------------------- +**SIGNATURES_KEYSERVERS** Default: ``['pool.sks-keyservers.net']`` @@ -588,8 +544,7 @@ List of keyservers to be queried for unknown keys. .. setting:: SIGNATURES_GPG_HOME -SIGNATURES_GPG_HOME -------------------- +**SIGNATURES_GPG_HOME** Default: ``gpg_home``