2008-04-12  Toshio Kuratomi <badger@Clingman> - r178
* fedora/release.py, python-fedora.spec: Bump for new release.

2008-04-12  Toshio Kuratomi <badger@Clingman> - r177
* fedora/client/__init__.py: BaseClient::send_request(): Fix the bugfix.
  We need to re-raise the error if we've already been through the loop.
  Otherwise, return the data we got from the recursive call to ourselves.

2008-04-12  Toshio Kuratomi <badger@Clingman> - r176
More changes pointed out by pylint including two bugs.
* fedora/accounts/fas2.py: AccountSystem::person_by_username(): Fix returning
  bugzilla_email when the email differs.  Would have tracebacked on an
  undefined variable before.
* fedora/client/__init__.py: BaseClient::send_request(): Fix to not return
  a ServerError when we have to try two methods to authenticate but get
  authenticated on the second try.

2008-04-12  Toshio Kuratomi <badger@Clingman> - r175
* fedora/tg/util.py: Fix arguments as pointed out by pylint.

2008-04-12  Toshio Kuratomi <badger@Clingman> - r174
* fedora/accounts/__init__.py, fedora/tg/client.py,
  fedora/tg/identity/jsonfasprovider.py, fedora/tg/json.py,
  fedora/tg/visit/jsonfasvisit.py: Trivial pylint cleanups.

=== 0.2.99.7 ===

2008-04-11  Toshio Kuratomi <badger@Clingman> - r173
* Update ChangeLog for release.

2008-04-11  Toshio Kuratomi <badger@Clingman> - r172
* fedora/tg/json.py: Work around an architectural limitation of simplejson.

2008-04-11  Toshio Kuratomi <badger@Clingman> - r171
* fedora/accounts/fas2.py: Add the userid to the information returned from
  fas2.py:people_by_id().

2008-04-11  Toshio Kuratomi <badger@Clingman> - r170
* python-fedora.spec: Fix mixed tabs/spaces.

2008-04-11  Toshio Kuratomi <badger@Clingman> - r169
Merge default value fix from Ricky.

2008-04-11  Toshio Kuratomi <badger@Clingman> - r168
* fedora/release.py, python-fedora.spec: Update for new release.

2008-04-11  Toshio Kuratomi <badger@Clingman> - r167
* fedora/accounts/fas2.py: Add a people_by_id() method that returns a dict of
  people indexed by ID.  The people structure contains username, email, and
  human_name... what we need for most of our lookups.

=== 0.2.99.6 ===

2008-04-07  Toshio Kuratomi <badger@Clingman> - r166
* fedora/tg/identity/jsonfasprovider.py, fedora/tg/visit/jsonfasvisit.py: Fix
  two deprecated imports.

2008-04-07  Toshio Kuratomi <badger@Clingman> - r165
* fedora/tg/visit/jsonfasvisit.py: Fixhow we call BaseVisitManager.__init__().

2008-04-07  Toshio Kuratomi <badger@Clingman> - r164
* MANIFEST.in: Include the localisation files.

2008-04-07  Toshio Kuratomi <badger@Clingman> - r163
* fedora/release.py: Bump for next release.
* python-fedora.spec: Merge -infrastrucutre subpackage.
  - Bump release.

2008-04-07  Toshio Kuratomi <badger@Clingman> - r162
* README, doc/client.rst, doc/services.rst: Documentation update.

2008-04-07  Toshio Kuratomi <badger@Clingman> - r161
* fedora/tg/visit/jsonfasvisit.py: Fix a race and thread the visit queue.
  - JsonFasVisitManager inherits from the threaded BaseVisitManager instead
    of BaseClient.
  - new_visit_with_key(), visit_for_key(): Create a new BaseClient everytime
    this is invoked to prevent races when setting the _sessionCookie.
  - update_queued_visit(): Create a BaseClient and ask the server to update
    the visit.
  - update_visit(), shutdown(), run(): Use the default versions now that we
    have an asynchronous update_queued_visit() that does this.

2008-04-07  Toshio Kuratomi <badger@Clingman> - r160
* fedora/client/__init__.py: Make the log issue a warning instead of an
  error for if the client can't read the session file.

2008-04-07  Toshio Kuratomi <badger@Clingman> - r159
* fedora/accounts/fas.py: Remove the last file dedicated to talking with fas1.

2008-04-07  Toshio Kuratomi <badger@Clingman> - r158
* fedora/accounts/fas2.py: Fix deprecated import.
  - Fix a few copy/paste errors.
  - AccountSystem::user_id(): Use an int for the user_id key instead of str.

2008-04-07  Toshio Kuratomi <badger@Clingman> - r157
* fedora/accounts/fas2.py: Re-add code to map email addresses that are
  different from bugzilla email addresses.  This will go into the configs
  table in the FAS2 database a t a later date.

2008-04-05  lmacken <lmacken@crow> - r156
Update hosted url
2008-04-04  Toshio Kuratomi <badger@Clingman> - r155
* Finish off unwritten sections.

2008-04-04  Toshio Kuratomi <badger@Clingman> - r154
* fedora/tg/json.py: Fix imports of sqlalchemy.orm and sqlalchemy.ext.

2008-04-02  Toshio Kuratomi <badger@Clingman> - r153
* MANIFEST.in, NEWS, setup.py: Update for no fas1 modules and the docs
  directory.

2008-04-02  Toshio Kuratomi <badger@Clingman> - r152
* doc/service.rst: Make the example for doing something different for json
  reflect a real-world problem.

2008-04-02  Toshio Kuratomi <badger@Clingman> - r151
* doc/service.rst: Typos and rst conformance fixes.
  - Change error handling to return an exception name in exc.
  - Add code for doing something different if json data was requested.

2008-04-02  Toshio Kuratomi <badger@Clingman> - r150
* fedora/accounts/tgfas.py, fedora/accounts/util.py: Remove more files that
  were only needed for accessing FAS1's database.

2008-04-02  Toshio Kuratomi <badger@Clingman> - r149
* fedora/tg/util.py: Utility functions for tuurbogears servers.  Currently has
 request_format() that tells what the requested output format is.

2008-04-02  Toshio Kuratomi <badger@Clingman> - r148
* fedora/tg/client.py: Add a DeprecationWarning.

2008-04-02  Toshio Kuratomi <badger@Clingman> - r147
* fedora/tg/client.py, fedora/client/__init__.py: Moved fedora.tg.client to
  fedora.client.  Created a compatibility module in fedora.tg.client for now.

2008-04-02  Toshio Kuratomi <badger@Clingman> - r146
* doc/client.rst, doc/service.rst: Begin documenting BaseClient and the server
  side support that makes it work.

2008-04-02  Toshio Kuratomi <badger@Clingman> - r145
* fedora/accounts/tgfas2.py, fedora/tg/identity/safasprovider.py,
  fedora/tg/visit/safasvisit.py, fedora/tg/identity/jsonfasprovider.py,
  fedora/tg/visit/jsonfasvisit.py: Remove fas1 and database access code.

2008-04-02  Toshio Kuratomi <badger@Clingman> - r144
Add license information.

2008-03-21  Ricky Zhou <ricky@Max> - r143
Correct raise in fas2.py, add logout method to client.py.

2008-03-20  Ricky Zhou <ricky@Max> - r142
Add gencert for fedora-packager-setup (will probably want to do some cleaning up before actual use).

2008-03-19  Ricky Zhou <ricky@Max> - r141
Add authenticate method.

=== 0.2.99.5 ===

2008-03-18  Ricky Zhou <ricky@Max> - r140
Add fas2.py

2008-03-12  Toshio Kuratomi <badger@Clingman> - r139
* fedora/tg/visit/safasvisit.py: Fix a silly typo.

2008-03-11  Toshio Kuratomi <badger@Clingman> - r138
* fedora/tg/client.py:
  - Fix url handling so joining URLs can have or lack leading and trailing
    slashes without repurcussions.
  - Fix the try: except block for retrieving the session cookie in 
    send_request() to work with python 2.3.

=== 0.2.99.4 ===

2008-03-11  Toshio Kuratomi <badger@Clingman> - r137
* ChangeLog: Update for new release.

2008-03-11  Toshio Kuratomi <badger@Clingman> - r136
* fedora/release.py, python-fedora.spec: Bump version for new release.

2008-03-11  Toshio Kuratomi <badger@Clingman> - r135
* fedora/tg/identity/jsonfasprovider.py: Changes from ricky to enable both
  user.human_name and user['human_name'].

=== 0.2.99.3 ===

2008-03-11  Toshio Kuratomi <badger@Clingman> - r134
* ChangeLog: Update for new release.

2008-03-11  Toshio Kuratomi <badger@Clingman> - r133
* fedora/release.py, python-fedora.spec: Bump version for a new bugfix release.

2008-03-06  Toshio Kuratomi <badger@Clingman> - r132
* fedora/tg/client.py: Fix problem of not having a sessionCookie when trying
  to authenticate for the very first time.

2008-03-04  Toshio Kuratomi <badger@Clingman> - r131
* README: Add the fas.url config option to the install instructions for FASv2.

2008-03-04  Toshio Kuratomi <badger@Clingman> - r130
* NEWS: Update with the latest changes.
* README: Update: FAS2 will have a JSON Provider and is not based on LDAP.

2008-03-04  Toshio Kuratomi <badger@Clingman> - r129
* fedora/tg/identity/jsonfasprovider.py, fedora/tg/visit/safasvisit.py:
  - Remove display_name.  It's not in the TurboGears identity so we won't
    provide it in ours.
  - Mark various strings for gettext.

2008-03-04  Toshio Kuratomi <badger@Clingman> - r128
* fedora/tg/client.py: Don't issue an error if we can't write to the session
  file.  The session file just makes it so we don't have to keep typing our
  password.  It shouldn't be fatal.

2008-03-04  Toshio Kuratomi <badger@Clingman> - r127
* fedora/tg/identity/safas2provider.py: Remove safas2.  FAS2 has a private
  identity module that builds on this.  It's private because the public
  auth provider will either be based on json (written) or OpenID (not written).

=== 0.2.99.2 ===

2008-03-04  Toshio Kuratomi <badger@Clingman> - r126
* python-fedora.spec: Remove confusing comment.

2008-03-04  Toshio Kuratomi <badger@Clingman> - r125
* Merge from trunk.

2008-02-25  Toshio Kuratomi <badger@Clingman> - r124
* fedora/accounts/fasLDAP.py: No LDAP for FAS2.  We'll be replacing this with
  an SQLAlchemy model for FAS2's db.

2008-02-25  Toshio Kuratomi <badger@Clingman> - r123
* fedora/tg/identity/safas2provider.py: We're no longer going to use LDAP for
  fas2.  New fasprovider to work with the FAS2 DB tables.

2008-02-25  Toshio Kuratomi <badger@Clingman> - r122
* fedora/accounts/fas.py: Ajax's email is fixed in the db.

2008-02-19  Toshio Kuratomi <badger@Clingman> - r121
* fedora/tg/visit/safasvisit.py: Remove check whether a mapper exists as we
  don't want to fallback on a visit session in the app local db.

2008-02-19  Toshio Kuratomi <badger@Clingman> - r120
* fedora/accounts/fas.py: Add a few more people who have separate bugzilla and
  primary email addresses.

2008-02-18  Toshio Kuratomi <badger@Clingman> - r119
* fedora/tg/visit/safasvisit.py: Correct capitalization.

=== 0.2.99.1 ===

2008-02-17  Toshio Kuratomi <badger@Clingman> - r118
* ChangeLog: Update for release.

2008-02-17  Toshio Kuratomi <badger@Clingman> - r117
* python-fedora.spec: Add the visit provider.

2008-02-17  Toshio Kuratomi <badger@Clingman> - r116
* setup.py: Fix missing comma.

2008-02-17  Toshio Kuratomi <badger@Clingman> - r115
* ChangeLog: Update for release.

2008-02-17  Toshio Kuratomi <badger@Clingman> - r114
* python-fedora.spec: Add json.py to the files.

2008-02-17  Toshio Kuratomi <badger@Clingman> - r113
* fedora/release.py, python-fedora.spec: Bump release.

2008-02-16  Toshio Kuratomi <badger@Clingman> - r112
* fedora/tg/visit/, fedora/tg/visit/__init__.py, fedora/tg/visit/safasvisit.py:
  Re-add the visit plugin.  We need to make two changes to the Visit class in
  order to work so we have to import it here.

2008-02-16  Toshio Kuratomi <badger@Clingman> - r111
* fedora/tg/json.py: Add a json module that let's us transform things into
  json.  For now it has the SQLAlchemy functions from the packagedb.

=== 0.2.99.0 ===

2008-02-14  Toshio Kuratomi <badger@Clingman> - r110
* python-fedora.spec: Add the release.py file.

2008-02-14  Toshio Kuratomi <badger@Clingman> - r109
* ChangeLog: Update for a new release.

2008-02-14  Toshio Kuratomi <badger@Clingman> - r108
* Merge the changes to make python-fedora compatible with TG-1.0.4 and SA-0.4.

2008-02-05  Toshio Kuratomi <badger@Clingman> - r107
* fedora/accounts/fasLDAP.py, fedora/accounts/util.py, fedora/tg/client.py,
  fedora/tg/identity/safasprovider.py: gettext fixes just like the fix to
  fas.py.

2008-02-04  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r106
* fedora/accounts/fas.py: Fix gettext setup to not traceback when no
  translation is available.

2008-02-04  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r105
* fedora/accounts/fas.py: Add Máirín Duffy to the list of differing email
  addresses.

2007-12-22  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r104
* First cut at i18n for python-fedora.  Mark all strings for extraction and
  check in a pot file.

2007-12-22  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r103
* fedora/tg/identity/sabzprovider.py, fedora/tg/identity/sobzprovider.py:
  Remove unused modules from use.

2007-12-15  Luke Macken <lmacken@redhat.com> - r102
Join our request URLs properly with urlparse.urljoin

=== 0.2.90.22 ===

2007-12-15  Toshio くらとみ <toshio@publictest10.fedoraproject.org> - r101
* ChangeLog: Update for release.

2007-12-15  Toshio くらとみ <toshio@publictest10.fedoraproject.org> - r100
* python-fedora.spec: Add python-ldap to the list of requirements.

2007-12-15  Toshio くらとみ <toshio@publictest10.fedoraproject.org> - r99
* fedora/accounts/fasLDAP.py, fedora/accounts/util.py: Move FASError,
  AuthError, and retrieve_db_info() to their own file.
* fedora/accounts/fas.py: Use exceptions and retrieve_db_info() from util.py.
  - get_users(): Fix a syntax error in the database retrieval.

2007-12-15  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r98
* fedora/accounts/fas.py: AccountSystem::get_users(): add a method to retrieve
  common public information for all users.  This lets us query the database
  once to get user information instead of almost once for every user in some
  situations with some packages.

2007-12-14  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r97
* fedora/tg/client.py: Merge client exception fix.

2007-12-14  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r96
* fedora/tg/widgets.py: Add a widgetId to all the widgets.  This allows us to
  have more than one of a widget on a page and perform operations on them
  separately.

2007-12-14  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r95
* README: Initial widget docs.

2007-12-14  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r94
* fedora/tg/widgets.py: Give the widgets some classes so styles can be set
  via stylesheets.

2007-12-13  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r93
* fedora/tg/widgets.py: Add a __json__ method to each widget so we can
  return the data as json as well as returning a widget.
  - Set limits on the data in the widget's display code rather than in the
    widget's data.  This is better but probably not wuite what we want either.
    Instead, how many entries to return maybe should be determined when we
    call the widget.

2007-12-13  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r92
* fedora/tg/widgets.py: Add GPL header.

2007-12-13  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r91
* python-fedora.spec: 0.2.90.22 hasn't been released yet so keep that version.
  - Move the widgets to the infrastructure subpackage because they'll be
    used serverside.  Also keeps the extra Requires: out of the client
    package.

2007-12-13  Luke Macken <lmacken@redhat.com> - r90
* Thu Dec 13 2007 Luke Macken <lmacken@redhat.com> - 0.2.90.23-1
- Add requirements for python-feedparser and python-bugzilla
- Add fedora.tg.widgets module containing a few proof-of-concept
  Fedora TurboGears widgets

2007-12-13  Luke Macken <lmacken@redhat.com> - r89
Add fedora.tg.widgets module containing a few proof-of-concept Fedora TurboGears widgets

2007-12-13  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r88
* fedora/__init__.py, python-fedora.spec, setup.py: Bump version to 0.2.90.22

2007-11-30  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r87
* fedora/accounts/fas.py, fedora/accounts/fasLDAP.py: Fix import of os module
  for retrieve_db_info().

2007-11-30  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r86
* Merge fixes for multiple users from upstream.

2007-11-30  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r85
* fedora/accounts/fas.py, fedora/accounts/fasLDAP.py: Move retrieve_db_info()
  to fasLDAP.py.
  - Use retrieve_db_info() to get the connectoin information to talk to the
    LDAP server.

2007-11-30  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r84
* fedora/accounts/fasLDAP.py: Change the password in this file.

=== 0.2.90.21 ===

2007-11-15  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r83
* setup.py: Bump version.

2007-11-15  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r82
* Final ChangeLog for release.

2007-11-15  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r81
* fedora/__init__.py, python-fedora.spec: Bump for new version.

2007-11-15  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r80
* README: Enhance the documentation for using BaseClient.

2007-11-15  Toshio くらとみ <toshio@publictest1.fedora.phx.redhat.com> - r79
* fedora/tg/client.py: BaseClient::_authenticate(): Clear the session if we
  force reauthentication.
  - BaseClient::send_request(): If we are told by the server that our request
    is Forbidden, attempt to reauthenticate.

2007-11-14  Luke Macken <lmacken@redhat.com> - r78
Handle our SQLAlchemy requirement differently for Fedora 8+, until TurboGears can use SQLAlchemy >= 0.4

=== 0.2.90.20 ===

2007-11-07  Toshio Kuratomi <badger@Clingman> - r77
* Final ChangeLog for the release.

2007-11-07  Luke Macken <lmacken@redhat.com> - r76
More 0.2.90.20 changes
2007-11-07  Luke Macken <lmacken@redhat.com> - r75
Require SQLAlchemy 0.3 for python-fedora-infrastructure

2007-11-07  Luke Macken <lmacken@redhat.com> - r74
0.2.90.20
2007-11-07  Toshio Kuratomi <badger@Clingman> - r73
* fedora/accounts/fasLDAP.py: Simplify code that just duplicates dict.items().

2007-10-31  Ricky Zhou <ricky@fedoraproject.org> - r72
Store timestamps in LDAP instead of date strings.

2007-10-29  Luke Macken <lmacken@redhat.com> - r71
Merge with new bzr.fedoraproject.org branch

2007-10-19  Ricky Zhou <ricky@fedoraproject.org> - r70
Make output of Groups.byGroupName() always a dict.

2007-10-17  Ricky Zhou <ricky@fedoraproject.org> - r69
Add fedoraPersonCertSerial field.

2007-10-02  Ricky Zhou <ricky@fedoraproject.org> - r68
Fix possible unicode problems (hope I did this right).  

2007-09-27  Ricky Zhou <ricky@fedoraproject.org> - r67
Fix typo in AUTHORS

2007-09-27  Ricky Zhou <ricky@fedoraproject.org> - r66
Fix move str() and encode() out of add.

2007-09-26  Ricky Zhou <ricky@fedoraproject.org> - r65
Remove leftover debugging statement.

2007-09-26  Ricky Zhou <ricky@fedoraproject.org> - r64
Add a few str() and encode()

2007-09-25  Toshio Kuratomi <badger@Clingman> - r63
* ChangeLog: Update to final ChangeLog for the release.

=== 0.2.90.19 ===

2007-09-25  Toshio Kuratomi <badger@Clingman> - r62
* fedora/__init__.py, setup.py: Update to version 0.2.90.19.
* python-fedora.spec: Fixes from the Fedora review process.

2007-09-25  Ricky Zhou <ricky@fedoraproject.org> - r61
Make fasLDAP.py handle None values properly, move encode('utf8') into modify.

2007-09-20  Toshio Ernie Kuratomi <toshio@publictest1.fedora.phx.redhat.com> - r60
* README: Bump version (really, this commit is to try and stop trac from
  spewing false commit notices.)

2007-09-18  Toshio Kuratomi <badger@Clingman> - r59
* ChangeLog: Update ChangeLog after final changes.

=== 0.2.90.18 ===

2007-09-18  Toshio Kuratomi <badger@Clingman> - r58
* fedora/__init__.py, python-fedora.spec, setup.py: Bump to new release.

2007-09-18  Toshio Kuratomi <badger@Clingman> - r57
* fedora/accounts/fas.py: Add control-center-maint to the list of bugzilla
  email exceptions.

2007-09-18  Toshio Kuratomi <badger@Clingman> - r56
* ChangeLog: Final after testing.

=== 0.2.90.17 ===

2007-09-18  Toshio Kuratomi <badger@Clingman> - r55
* fedora/accounts/fas.py: Fix silly error calling function instead of
  subscripting an array.

2007-09-18  Toshio Kuratomi <badger@Clingman> - r54
* ChangeLog: Sync up with last mintue changes.

2007-09-18  Toshio Kuratomi <badger@Clingman> - r53
* python-fedora.spec: Fix some minor file path problems with the spec.

2007-09-18  Toshio Kuratomi <badger@Clingman> - r52
* ChangeLog: Add a changelog.

2007-09-18  Toshio Kuratomi <badger@Clingman> - r51
* MANIFEST.in: Add ChangeLog
* README, fedora/__init__.py, python-fedora.spec, setup.py: Version 0.2.90.17.

2007-09-18  Toshio Kuratomi <badger@Clingman> - r50
* fedora/accounts/fas.py: Simplify conversion to utf-8 of all person and group
  information.

2007-09-15  Ricky Zhou <ricky@fedoraproject.org> - r49
Add fedoraGroupRequires, fix empty value issues with LDAP, and catch more LDAP exceptions.

=== 0.2.90.16 ===

2007-09-10  Toshio Kuratomi <badger@Clingman> - r48
* fedora/accounts/fasLDAP.py: Server(): Bugfix calling ldapServer instead of
  self.ldapConn.
* python-fedora.spec, setup.py: Bump to 0.2.90.16.

=== 0.2.90.15 ===

2007-09-08  Toshio Kuratomi <badger@Clingman> - r47
* setup.py: Update to 0.2.90.14.

2007-09-08  Toshio Kuratomi <badger@Clingman> - r46
* AUTHORS: Add Ricky Zhou for his work on fasLDAP.
* README: Add the config for the fas2 visit table.
* python-fedora.spec: Update the changelog.
* fassession.sql, fassession2.sql, fedora/accounts/fas.py,
  fedora/accounts/fasLDAP.py, fedora/accounts/tgfas.py,
  fedora/accounts/tgfas2.py, fedora/tg/client.py,
  fedora/tg/identity/sabzprovider.py, fedora/tg/identity/safas2provider.py,
  fedora/tg/identity/safasprovider.py, fedora/tg/identity/sobzprovider.py,
  fedora/tg/visit/safasvisit.py: Update the License information to standard
  Red Hat boilerplate for GPLv2 only.

2007-09-08  Toshio Kuratomi <badger@Clingman> - r45
* fedora/accounts/fas.py: Fix error message to reference database by its key.
* fedora/tg/client.py: Update to save sessionCookies according to username
  in case someone uses more than one username from the same unix account.
* fedora/tg/identity/safas2provider.py, fedora/tg/identity/safasprovider.py:
  - Fix importing fas2 AuthError.
  - Fix long standing issue losing auth by flushing and clearing the
    visit_identity mapper before retrieving information about the user.
  - Fix issue with identity not being reset when changing users due to a
    traceback from the db.
* python-fedora.spec: Update the install command.

2007-09-08  Toshio Kuratomi <badger@Clingman> - r44
* fedora/accounts/fasLDAP.py: Cleanups and restructuring.
  - Move all imports to the top of the file.
  - All new-style classes.
  - Add short docstrings for most methods.
  - Change all instances of filter into ldapFilter as filter is a builtin.
  - Server class: Now defaults to opening an admin connection to the ldap
    server.
    + Contains all the LDAP related functions which were formerly loose in
      the file.
  - Group class: Has a class level __server connection to the ldap server and
    __base string for getting group information from the class.
    + Add fedoraGroupDesc from mmcgrath's tree.
    + __json__(): Method to translate the data structure to json.
    + newGroup(): classmethod to create a new group.
  - Groups class: __server class variable to connect to the ldap server.
    + Make __userName an instance variable and note that it's probably
      not something we want to use.
    + Groups::byGroupName(): Surroung getting the users in a try: block.
      Might want to make this more fine grained in the future.
  - Person class: Make __filter and instance variable.
    + Person::__getattr__(): Note that getattr has a performance penalty and
      is easy to get wrong.
      * remove a recursive call to __getattr__().
    + Person::auth(): Change to only throw an AuthError if no password is
      given.  Are we sure this works?

2007-08-02  Toshio Kuratomi <toshio@tiki-lounge.com> - r43
* fedora/tg/identity/sopwith-fas-identity.py: Remove as we've never used this
  for real, just as an example to build ur own identity provider.
* Add GPLv2+ statements to all the other source files.

2007-08-02  Toshio Kuratomi <toshio@tiki-lounge.com> - r42
* AUTHORS, COPYING: Licensed under GPLv2+ by lmacken, mmcgrath, and myself.
* MANIFEST.in: Add COPYING and AUTHORS
* fedora/tg/identity/safas2provider.py: Fix the create_provider routine here
  like it was fixed in safasprovider.py.
* python-fedora.spec, setup.py: Bump to version 0.2.90.14.

2007-07-31  Toshio Kuratomi <toshio@tiki-lounge.com> - r41
* fedora/tg/client.py: BaseClient::_authenticate(): Take a force argument to
  force a new session.
    + Fix the login request with another '/'.
    + Reraise a HTTPError when it isn't 'Forbidden'.
  - BaseClient::send_request(): If our request is sent back because it needs to
    login, force a reauthentication.

2007-07-31  Toshio Kuratomi <toshio@tiki-lounge.com> - r40
* fedora/tg/client.py: Fix handling of other arguments to send_request().

2007-07-30  Toshio Kuratomi <badger@Clingman> - r39
* fedora/tg/identity/safasprovider.py: Fix SqlAlchemyIdentityProvider::
  create_provider_model() to only create visit_identity as the information
  in the other classes is saved directly in FAS.
* python-fedora.spec: Update the changelog.

2007-07-30  Toshio Kuratomi <badger@Clingman> - r38
* fedora/tg/client.py: s/"/'/ for consistency.
  - BaseClient()::__init__(): make the username and password optional.
  - BaseClient()::_authenticate(): Raise an AuthError if the username or
    password is not set.

2007-07-30  Toshio Kuratomi <badger@Clingman> - r37
* fedora/tg/client.py: Bugfixes
  - Fix os.path import.
  - BaseClient::__init__(): Fix call to _load_session().
  - BaseClient::_authenticate(): Update simplejson.read() => simplejson.load().
  - BaseClient::send_request(): Minor changes so we don't throw an exception
    if we use json rather than simplejson.

2007-07-22  Toshio Kuratomi <toshio@tiki-lounge.com> - r36
* README: tab-> space fixes.
* fedora/tg/client.py: Typo corrections.

2007-07-21  Toshio Kuratomi <toshio@tiki-lounge.com> - r35
* fedora/tg/clent.py: Fix a tab.

2007-07-21  Toshio Kuratomi <toshio@tiki-lounge.com> - r34
* fedora/tg/client.py: BaseClient() class to eases writing a client that can
  connect to a TG server.
* README: Updated for client integration.
* python-fedora.spec, setup.py: New version.

2007-07-10  Toshio Kuratomi <toshio@tiki-lounge.com> - r33
* fedora/accounts/fasLDAP.py: Remove unneeded bang path.

2007-07-10  Toshio Kuratomi <toshio@tiki-lounge.com> - r32
* fedora/accounts/fas.py: Fix issues with Unicode data not being properly
  encoded when returned from the db.
* fedora/tg/identity/safasprovider.py: Fix a traceback when the db is not
  available.
* python-fedora.spec, setup.py: Update to 0.2.90.12.

2007-07-04  Toshio Kuratomi <toshio@tiki-lounge.com> - r31
* python-fedora.spec, setup.py: Update to 0.2.90.11.

2007-07-04  Toshio Kuratomi <toshio@tiki-lounge.com> - r30
* fedora/accounts/fas.py: AccountSystem::dbCmd(): Change from defining this
  with a property decorator to property function syntax.  This makes it
  python 2.3 compatible.
* fedora/tg/identity/safas2provider.py, fedora/tg/identity/safasprovider.py:
  Add __json__() methods so we can output FASUser and FASGroups when the
  tg_format is set to json.

2007-06-26  Toshio Kuratomi <toshio@tiki-lounge.com> - r29
* fedora/accounts/fas.py: Fix a bug when we lose a database connection while
  an app is running.
* python-fedora.spec: Update changelog.

2007-06-25  Toshio Kuratomi <toshio@tiki-lounge.com> - r28
* fedora/accounts/fas.py: berrange has changed his email address in the
  account system, no longer need to special case his bugzilla address.
* fedora/tg/identity/safas2provider.py: Update fas2 integration with changes
  from mmcgrath.
* python-fedora.spec, setup.py: New version 0.2.90.10.

2007-06-08  Toshio Kuratomi <toshio@tiki-lounge.com> - r27
* python-feora.spec, setup.py: Update to next version 0.2.90.9.

2007-06-08  Toshio Kuratomi <toshio@tiki-lounge.com> - r26
* fedora/accounts/fasLDAP.py: Create an AuthError exception to hide the
  implementation details when we are unable to authenticate a user.
  - auth(): Raise AuthError whenever LDAP canot auth the user.
* fedora/tg/identity/safas2provider.py:
  - validate_identity: No need to chek for AuthError as validate_password()
    does that already.
  - validate_password(): Check for AuthError instead of a generic exception.

2007-06-08  Toshio Kuratomi <toshio@tiki-lounge.com> - r25
* fedora/accounts/fasLDAP.py, fedora/tg/identity/safas2provider.py:
  fas2 updates from mmcgrath.

2007-06-01  Toshio Kuratomi <toshio@tiki-lounge.com> - r24
* fedora/accounts/fas.py:
  - Up the maximum number of concurrent db connections to 15.
  - Add a DBError exception that is thrown when the connection to the db
    has problems.
  - AccountSystem::_raise_dberror(): Method to clear the connections from the
    pool and raise a DBError.
  - Surround all database calls with try: except blocks that call
    _raise_dberror() when a problem connecting to the db occurs.
* fedora/tg/identity/safasprovider.py: Catch and process DBErrors as well as
  AuthErrors.
* python-fedora.spec, setup.py: Bump version to 0.2.90.8.

2007-05-04  Toshio Kuratomi <toshio@tiki-lounge.com> - r23
* fedora/accounts/fas.py: a psycopg2 DictCursor bug means we can't save a
  value into values returned using dict keys.  Recraft selects to be able to
  use list notation to save bugzilla_email instead.

2007-05-04  Toshio Kuratomi <toshio@tiki-lounge.com> - r22
* fedora/accounts/fas.py: Make email part of the publically available
  information so that bugzilla email has something to pull from.
* python-fedora.spec, setup.py: New version 0.2.90.7

2007-04-15  Toshio Kuratomi <toshio@tiki-lounge.com> - r21
* fedora/accounts/fas.py: Fix a problem with the bugzilla email address code.
* python-fedora.spec, setup.py: Update version to 0.2.90.6.

2007-04-03  Toshio Kuratomi <toshio@tiki-lounge.com> - r20
* fedora/accounts/fas.py: Return the bugzilla email address as part of
  retrieving user information.
  - Add a method to lookup by email address which also checks against
    bugzilla email addresses given in owners.list.
* fedora/accounts/fasLDAP.py: Update to latest fasLDAP.py from accounts2.
* python-fedora.spec, setup.py: Bump version to 0.2.90.5.

2007-03-15  Toshio Kuratomi <toshio@tiki-lounge.com> - r19
* fedora/tg/identity/safas2provider.py, fedora/tg/identity/safasprovider.py:
  Pull in the AuthError definition from fas2.py/fas.py.
* python-fedora.spec, setup.py: 0.2.90.4.

2007-03-15  Toshio Kuratomi <toshio@tiki-lounge.com> - r18
* fedora/accounts/fas.py: Fix get_group_info().

2007-03-14  Toshio Kuratomi <toshio@tiki-lounge.com> - r17
* fedora/accounts/fas.py: We actually have to have a separate connection for
  each thread, not just a separate cursor.  Use sqlalchemy.pool to do this
  efficiently.
  - Fix a typo in selecting from project_group.
* python-fedora.spec: Add the sqlalchemy requirement.

2007-03-14  Toshio Kuratomi <toshio@tiki-lounge.com> - r16
* fedora/accounts/fas.py: Fix a syntax error in the group info function.

2007-03-14  Toshio Kuratomi <toshio@tiki-lounge.com> - r15
* fedora/accounts/fas.py: Delete a stray period that was inerted in the last
  edit.
* python-fedora.spec: Add changelog.

2007-03-14  Toshio Kuratomi <toshio@tiki-lounge.com> - r14
* fedora/accounts/fas.py: Have each function retrieve its own cursor on the
  database connection.  Reusing the same cursor never gets new information
  from the database.  This is a problem when another process (like the
  accounts system) uses a different interface to update account information.

2007-03-13  Toshio Kuratomi <toshio@tiki-lounge.com> - r13
* python-fedora.spec, setup.py: Bump the version to 0.2.90.3

2007-03-13  Toshio Kuratomi <toshio@tiki-lounge.com> - r12
* fedora/tg/identity/safas2provider.py: Save the whole group information
  again now that I realize that group is a dict.

2007-03-13  Toshio Kuratomi <toshio@tiki-lounge.com> - r11
* fedora/accounts/fas.py: Implement get_group_info() to return group
  information from the fas.

2007-02-27  Toshio Kuratomi <toshio@tiki-lounge.com> - r10
* safas2provider.py: Fix the group definition to set the group name properly.
  - catch the proper exception when the password does not validate.
* safasprovider.py: Catch the proper exception when the password does not
  validate.

2007-02-27  Toshio Kuratomi <toshio@tiki-lounge.com> - r9
* MANIFEST.in: List additional files to include in the source tarball.
* README: Short intro to using the fas v2 features.
* fedora/accounts/tgfas2.py: fix the database name to be fassession2.
* python-fedora.spec: Bump the version to 0.2.90.2.
* setup.py: Bump version to 0.2.90.2.

2007-02-27  Toshio Kuratomi <toshio@tiki-lounge.com> - r8
* fassession.sql: Database to store web session information for fas v1.  This
  is used by  TurboGears at the moment.
* fassession2.sql: Database to store web session information for fas v2.  This
  is used by TurboGears at the moment.
* fedora/accounts/fasLDAP.py: Module from Mike McGrath to connect to fas2.
* fedora/accounts/tgfas2.py: The new version of tgfas uses a TEXT column for
  user_id as LDAP uses the username as the "primary key".
* fedora/tg/identity/safas2provider.py: First attempt to use fas v2 to
  authenticate the users.
* setup.py: Bump version to 0.2.90.1
  - Add the safas2 entrypoint.

2007-02-11  Toshio Kuratomi <toshio@tiki-lounge.com> - r7
* README: Update with note that sqlalchemy.dburi must be set.
* fedora/accounts/fas.py: AccountSystem::validate_password(): Be sure to fail
  anyone attempting to login with one of the system accounts (accounts with
  ids below 10000).
* fedora/accounts/tgfas.py: Rename the database we'll be accessing fassession.
  - Properly case dbUri everywhere so we can connect to the database.

2007-02-09  Toshio Kuratomi <toshio@tiki-lounge.com> - r6
* fedora/accounts/fas.py: Move the  __retrieve_auth_db() method to a module
  level function retrieve_db_info().
* fedora/accounts/tgfas.py: Start work on retrieving the database from
  /etc/sysconfig.
  - Remove all commented out mappers as we're not going to use them.
* fedora/tg/__init__.py: Empty the file of version info.
* python-fedora.spec: Bump to 0.2.1
* setup.py: Bump to 0.2.1
  - Make the identity.providers a list so we include all of them as
    entry_points.

2007-02-09  Toshio Ernie Kuratomi <toshio@test3.fedora.phx.redhat.com> - r5
* fedora/__init__.py: Remove the version from here as this will become a
  namespace package.
* fedora/tg/identity/safasprovider.py:
  - Define global visit_identity_class and fas.
  - SaFasIdentity::__init__(): No longer initialize the fas as we'll use the
    global fas for this.
  - Rename visit_class to visit_identity_class.
  - Use SessionContext mappers to save, delete, etc.
  - SaFasIdentity::logout(): Return a SaFasIdentity instead of
    SqlAlchemyIdentity.
  - SaFasIdentityProvider::validate_identity(): flush and clear the session
    right off the bat.  This takes care of an error where the sqlalchemy
    unit of work was holding onto deleted identities but not registering them
    as deleted.
  - Override anonymous_identity() and authenticated_identity() so we return
    SaFasIdentity's instead of SqlAlchemyIdentity's.
* fedora/tg/visit/safasvisit.py: Define global visit_class.
  - Use SessionContext mappers to save.
* python-fedora.spec: New version 0.2
* setup.py: New version 0.2

2007-01-21  Toshio Kuratomi <toshio@tiki-lounge.com> - r4
* fedora/tg/identity/safasprovider.py: Bugfix: Access the userId directly
  from the local userId variable instead of trying to get it from a nonexistent
  user mapper.

2007-01-21  Toshio Kuratomi <toshio@tiki-lounge.com> - r3
* python-fedora.spec: Add a spec file so this can be turned into an rpm.
* fedora/accounts/fas.py:
  - adminUserId: Set a constant for the adminUserId.  This allows us to check
    if the logged in user is the accounts system admin.
  - __retrieve_auth_db(): Initialize dbInfo = None.
    + Scan for the passed in dbkey rather than global dbName.
  - __init__(): Fix syntax so .get() uses parens instead of brackets.
  - get_user_info():
    + Note that we should make sure all the information we're returning will
      map to the FAS2 schema.
    + Instead of using the condition var to select on either userid or username
      set the userid from the username.
    + Move userDist initialization, retrieving groups from the cursor, and
      returning to the toplevel of the method.
* fedora/accounts/tgfas.py: Create the tables if they don't yet exist in the
  database.
* fedora/tg/identity/safasprovider.py: SaFasIdentity::__init__(): When using
  super, __init__() doesn't need to be called with an explicit "self".
  - _get_user(): Make sure we try to return a cached _user before loading the
    a new one.
* fedora/tg/visit/safasvisit.py:
  - get some imports I missed: datetime, Visit, and logging.
  - SaFasVisitManager::__init__(): We have to include the __init__() function
    because TG uses global variables to hold the class information.  Globals
    don't pass with inheritance, they are global to the file in which they're
    defined.
  - flush the visit_class after we've added the new session.
* setup.py: Include package data.

2007-01-18  Toshio Kuratomi <toshio@tiki-lounge.com> - r2
* README: seutp.py should now work.

2007-01-18  Toshio Kuratomi <toshio@tiki-lounge.com> - r1
* Initial checkin.

