aboutsummaryrefslogtreecommitdiff
path: root/perl/Wallet/ACL.pm
AgeCommit message (Collapse)Author
2014-04-13Change my email address to eagle@eyrie.orgRuss Allbery
Change-Id: I4c2b5d7c807d6c27dd18a3b92eef66d21287d21e Reviewed-on: https://gerrit.stanford.edu/1481 Reviewed-by: Russ Allbery <rra@stanford.edu> Tested-by: Russ Allbery <rra@stanford.edu>
2013-10-29ACL.pm: Fix a place where the acl history was getting raw timestampJon Robertson
The acl_history table needed to get the DateTime object rather than the raw epoch timestamp in one place. This was causing errors adding new lines to the history. Change-Id: I9c971819484cd0b26cb2561549246c284afc55a1 Reviewed-on: https://gerrit.stanford.edu/1325 Reviewed-by: Russ Allbery <rra@stanford.edu> Tested-by: Russ Allbery <rra@stanford.edu>
2013-02-27Use correct form of Stanford's copyright statementRuss Allbery
Change-Id: I06dd9ecca19315179bdd34d4b301548fe7604331 Reviewed-on: https://gerrit.stanford.edu/842 Reviewed-by: Russ Allbery <rra@stanford.edu> Tested-by: Russ Allbery <rra@stanford.edu>
2013-01-31Renamed dbh subroutines and variables for clarityJon Robertson
In moving from DBI to DBIx::Class, we at first left the various variables the same. This goes through to update them for the proper names. * Wallet::Admin::schema was created to return the schema object (and similarly for Wallet::Server and Wallet::Report). * Wallet::Admin::dbh was modified to return the actual DBI handle again (and similarly for Wallet::Server and Wallet::Report). * Various places that used $admin->{dbh} were moved to $admin->{schema}. * Various places using $dbh for the schema object were changed to $schema. Change-Id: I00914866e9a8250855a7828474aa9ce0f37b914f Reviewed-on: https://gerrit.stanford.edu/733 Reviewed-by: Russ Allbery <rra@stanford.edu> Tested-by: Russ Allbery <rra@stanford.edu>
2013-01-30Moved the Perl wallet modules and tests to DBIx::ClassJon Robertson
Moved all the Perl code to use DBIx::Class for the database interface. This includes updating all database calls, how the schema is generated and maintained, and the tests in places where some output has changed. We also remove the schema.t test, as the tests for it are more covered in the admin.t tests now. Change-Id: Ie5083432d09a0d9fe364a61c31378b77aa7b3cb7 Reviewed-on: https://gerrit.stanford.edu/598 Reviewed-by: Russ Allbery <rra@stanford.edu> Tested-by: Russ Allbery <rra@stanford.edu>
2012-08-30Fix POD stopwords and formattingRuss Allbery
Fix a formatting error in Wallet::ACL::LDAP::Attribute and add new stopwords required by the latest aspell.
2010-03-03Verify that an ACL to be deleted is not referencedRuss Allbery
When deleting an ACL on the server, verify that the ACL is not referenced by any object first. Database referential integrity should also catch this, but not all database backends may enforce referential integrity. This also allows us to return a better error message naming an object that's still using that ACL.
2010-02-09Check spelling of server API POD and tweak server docsRuss Allbery
Also update the POD syntax check to the current version of that check I use elsewhere. Since I'm touching all the POD anyway, also rewrap all of the POD to 74 columns. Fix some references to MIT in the Wallet::Kadmin::Heimdal module documentation.
2009-06-09Remove Subversion Id stringsRuss Allbery
2008-02-13Remove the restriction that all object implementations must have classRuss Allbery
names of Wallet::Object::* and all ACL verifier implementations must have class names of Wallet::ACL::*.
2008-01-22Update documentation for the API to Wallet::Object::Base andRuss Allbery
Wallet::ACL to take Wallet::Database objects instead of database handles.
2008-01-22Add a Wallet::Database class that now holds the database connection codeRuss Allbery
previously in Wallet::Server. Remove all the attribute setting on database handles in the other classes since Wallet::Database handles that initialization.
2007-12-07Get rid of more return undefs.Russ Allbery
2007-12-07Load the Perl modules for ACL verifiers and object types dynamicallyRuss Allbery
now that we're reading the class from the database.
2007-12-05Various coding style fixes and cleanup based on a much-appreciatedRuss Allbery
code audit by Simon Cozens. I didn't take all of his advise, and he shouldn't be blamed for any remaining issues.
2007-12-05Maintain a global cache of ACL verifiers in Wallet::ACL and reuse themRuss Allbery
over the life of the process if we see another ACL line from the same scheme, rather than only reusing ACL verifiers within a single ACL.
2007-12-05Determine the class for object and ACL schema implementations from theRuss Allbery
database rather than a hard-coded list and provide Wallet::Schema methods for adding new class mappings. Add a missing class mapping for the netdb ACL schema verifier.
2007-12-01Following the DBI documentation, turn on AutoCommit after RaiseError soRuss Allbery
that we have some hope of getting error messages if it fails.
2007-12-01Expiration dates are now expressed in YYYY-MM-DD HH:MM:SS instead ofRuss Allbery
seconds since epoch and returned the same way. Timestamps are now stored in the database as correct date and time types rather than seconds since epoch to work properly with MySQL.
2007-11-30Initial work on supporting testing with MySQL.Russ Allbery
Add a drop() method to Wallet::Schema to destroy the wallet database. Add a test suite for it. Add a reinitialize() method to Wallet;:Server that drops the database before creating it. Modify the wallet object test cases to call reinitialize() to create the initial database and drop() to clean up the database after the test is complete. Fix a bug preventing Wallet::Schema from being initialized multiple times. We now stash the schema in a class static variable and reuse it for subsequent initializations, since re-reading DATA doesn't work.
2007-10-10Add a history method to the Wallet::ACL API.Russ Allbery
2007-10-05Add comprehensive license information in LICENSE and update the copyrightRuss Allbery
and license statements in all files. Make sure that some files that were missing copyright information now have them. Reference LICENSE rather than README in all notices.
2007-09-20Change the error handling of the Wallet::ACL list() method to return theRuss Allbery
empty list on errors and clear error() so that it can be used to distinguish between an error and an empty ACL.
2007-09-17Add a show method to Wallet::ACL.Russ Allbery
2007-08-31Use a better method of setting the internal error that automaticallyRuss Allbery
adjusts for trailing newlines and exception detritus, saving duplicate code. Standardize the documentation of the error() method and document using this in child classes of the generic ACL and Object classes. Disable printing of errors during connect in Wallet::Server since we're going to throw our own exception.
2007-08-31Add documentation.Russ Allbery
2007-08-30Properly clean up errors from exceptions. Properly catch exceptions whenRuss Allbery
creating ACL objects in Wallet::Server. Don't return the ACL object from the acl_create method of Wallet::Server -- it's a layering violation.
2007-08-30Don't reuse the same reference in list; expand each return separately.Russ Allbery
Reject check with an empty principal.
2007-08-30Reject all-numeric ACL names since they're ambiguous. Change the storedRuss Allbery
name on rename.
2007-08-30Clean up all exception output when storing it in the error variable toRuss Allbery
remove the " at line" stuff added by Perl and the newlines so that the errors stored in objects are consistent. Fix various bugs in the base object, including a few more type vs. name inversions and use of object instead of name. Allow owners to be specified as ACL names instead of IDs, and change the ID to a name in show. Add a new test suite for the base object implementation.
2007-08-30Call last_insert_id with the correct arguments.Russ Allbery
2007-08-29Retrieve the ACL name on object creation and store it in the object asRuss Allbery
well. Add an accessor function for it. Add a separate list method that returns all the entries in an ACL, and use it in the check method.
2007-08-28Add an accessor function to retrieve the ACL ID.Russ Allbery
2007-08-28Initial implementation of ACL objects for the wallet.Russ Allbery
2007-08-27Rename Wallet::ACL to Wallet::ACL::Base to preserve the Wallet::ACLRuss Allbery
package name for higher-level ACL handling.
2007-05-02Add a test suite for the new ACL modules and declare $VERSION so thatRuss Allbery
they'll load properly.
2007-05-02Add the initial build infrastructure for the wallet Perl modules andRuss Allbery
the superclass for Wallet::ACL. Add the Wallet::ACL::Krb5 ACL verifier.