diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/tutorials/wiki2/design.rst | 58 |
1 files changed, 31 insertions, 27 deletions
diff --git a/docs/tutorials/wiki2/design.rst b/docs/tutorials/wiki2/design.rst index 75122bd11..1ff000549 100644 --- a/docs/tutorials/wiki2/design.rst +++ b/docs/tutorials/wiki2/design.rst @@ -2,55 +2,59 @@ Design ========== -Following is a quick overview of our wiki application, to help -us understand the changes that we will be doing next in our -default files generated by the ``alchemy`` scaffold. +Following is a quick overview of the design of our wiki application, to help +us understand the changes that we will be making as we work through the +tutorial. Overall ------- -We choose to use ``reStructuredText`` markup in the wiki text. -Translation from reStructuredText to HTML is provided by the -widely used docutils Python module. We will add this module -in the dependency list on the project ``setup.py`` file. +We choose to use ``reStructuredText`` markup in the wiki text. Translation +from reStructuredText to HTML is provided by the widely used ``docutils`` +Python module. We will add this module in the dependency list on the project +``setup.py`` file. Models ------ -We define a single table named `tables`, whose elements will -store the wiki pages. There are two columns: `name` and -`data`. +We'll be using a SQLite database to hold our wiki data, and we'll be using +:term:`SQLAlchemy` to access the data in this database. + +Within the database, we define a single table named `tables`, whose elements +will store the wiki pages. There are two columns: `name` and `data`. URLs like ``/PageName`` will try to find an element in -the table whose `name` corresponds. +the table that has a corresponding name. To add a page to the wiki, a new row is created and the text is stored in `data`. -A page named *FrontPage* containing the text *This is the front -page*, will be created when the storage is initialized, and will -be used as the wiki home page. +A page named ``FrontPage`` containing the text *This is the front page*, will +be created when the storage is initialized, and will be used as the wiki home +page. Views ----- There will be four views to handle the normal operations of adding and editing wiki pages, and viewing pages and the wiki front page. Two -additional views will handle the login and logout tasks related to -security. +additional views will handle the login and logout tasks related to security. Security -------- -- USERS, a dictionary mapping users names to their - corresponding passwords. -- GROUPS, a dictionary mapping user names to a - list of groups they belong to. -- *groupfinder*, an *authorization callback* that looks up - USERS and GROUPS. It will be provided in a new - *security.py* file. -- An :term:`ACL` is attached to the root resource. Each - row below details an :term:`ACE`: +We'll eventually be adding security to our application. The components we'll +use to do this are below. + +- USERS, a dictionary mapping users names to their corresponding passwords. + +- GROUPS, a dictionary mapping user names to a list of groups they belong to. + +- ``groupfinder``, an *authorization callback* that looks up USERS and + GROUPS. It will be provided in a new *security.py* file. + +- An :term:`ACL` is attached to the root :term:`resource`. Each row below + details an :term:`ACE`: +----------+----------------+----------------+ | Action | Principal | Permission | @@ -60,8 +64,8 @@ Security | Allow | group:editors | Edit | +----------+----------------+----------------+ -- Permission declarations are added to the views to assert the - security policies as each request is handled. +- Permission declarations are added to the views to assert the security + policies as each request is handled. Summary |
