$ git clone [email protected]:Pylons/horus.git $ cd horus $ pip install -e .
If you would like to run the tests you should run:
$ pip install -e .[testing]
A view will be the utility functions needed to interface with Pyramid. They will be extremely light weight, they should validate and parse JSON/form data, then create any services and facades required and should contain no business logic.
A service is a class that will represent all the business logic required to do a certain responsibility like creating authenticating a user.
The facade should not have any access to Pyramid or a persistence store. So there should be no DBSession or Request available, if the facade needs database access it should be done through a service.
A backend is an abstraction around the data access. There should be as little business logic in a repository as possible, it should be for connecting to a data store (postgres, zodb, mongodb) and returning the result set.
Mapping functions from database rows to model classes should be done here.
Flows represent a type of authentication that will include a specific set of services.
local The local flow represents that standard form workflow where you present a username/password form that authenticates the user from a database.
The local flow includes things like registration and e-mail verification.
ldap The ldap flow will authenticate against an LDAP server, no registration or activation is required.
pyramid.includes = horus
horus.backend = horus.backends.sqla
horus.backend.sqlalchemy_url = postgresql://
horus.flows =
local
fb
local.impl = horus.flows.local
local.
fb.impl = horus.flows.facebook
fb.access_token =
fb.
config.override_assets(
to_override='horus.flows.local:templates/',
override_with='myapp.templates/')