■CHAPTER 19 SimpleSite Tutorial Part 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
Authentication and Authorization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
Setting Up the Middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
Adjusting websetup.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
Protecting Controller Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Changing Templates Based on Permissions. . . . . . . . . . . . . . . . . . . . . . . . 438
Signing In and Signing Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Styling the Sign-in Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Protecting the Rest of the Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
Using the AuthKit User Management API . . . . . . . . . . . . . . . . . . . . . . . . . . 445
Error Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
Customizing the Error Documents for SimpleSite . . . . . . . . . . . . . . . . . . . 447
Adding a WYSIWYG Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
Configuring the setup.py File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Choosing a Version Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Configuring Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Extra Dependencies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
Extra Dependency Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Specifying Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Customizing the Long Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
Customizing the Production Config File Template . . . . . . . . . . . . . . . . . . . 457
Packaging a Pylons Project for Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Building an Egg File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Publishing an Egg on the Python Package Index . . . . . . . . . . . . . . . . . . . . 460
Making SimpleSite into a Paste Project Template . . . . . . . . . . . . . . . . . . . . . . . . 462
Introducing Project Template Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Using Project Template Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Completing the Cycle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
■CHAPTER 20 Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Getting Started with Pylons Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Understanding the logging Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Understanding Log Levels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
Logging Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
474
Logging in Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Introducing Logging Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Logger Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Handler Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
Formatter Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
■CONTENTS xvii