Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

add various elements to design document

  • Loading branch information...
commit e9759f3ae42f68ab8dd6739dd07df0098d7e373a 1 parent a7a639f
@mcdonc mcdonc authored
Showing with 31 additions and 27 deletions.
  1. +31 −27 docs/tutorials/wiki2/design.rst
View
58 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
Please sign in to comment.
Something went wrong with that request. Please try again.