summaryrefslogtreecommitdiffstats
path: root/ipalib/crud.py
Commit message (Collapse)AuthorAgeFilesLines
* Enforce that required attributes can't be set to None in CRUD UpdatePetr Viktorin2012-03-121-2/+11
| | | | | | | | | | | | The `required` parameter attribute didn't distinguish between cases where the parameter is not given and all, and where the parameter is given but empty. The case of updating a required attribute couldn't be validated properly, because when it is given but empty, validators don't run. This patch introduces a new flag, 'nonempty', that specifies the parameter can be missing (if not required), but it can't be None. This flag gets added automatically to required parameters in CRUD Update.
* Only apply validation rules when adding and updating.Rob Crittenden2012-02-291-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There may be cases, for whatever reason, that an otherwise illegal entry gets created that doesn't match the criteria for a valid user/host/group name. If this happens (i.e. migration) there is no way to remove this using the IPA tools because we always applied the name pattern. So you can't, for example, delete a user with an illegal name. Primary keys are cloned with query=True in PKQuery which causes no rules to be applied on mod/show/find. This reverts a change from commit 3a5e26a0 which applies class rules when query=True (for enforcing no white space). Replace rdnattr with rdn_is_primary_key. This was meant to tell us when an RDN change was necessary to do a rename. There could be a disconnect where the rdnattr wasn't the primary key and in that case we don't need to do an RDN change, so use a boolean instead so that it is clear that RDN == primary key. Add a test to ensure that nowhitespace is actually enforced. https://fedorahosted.org/freeipa/ticket/2115 Related: https://fedorahosted.org/freeipa/ticket/2089 Whitespace tickets: https://fedorahosted.org/freeipa/ticket/1285 https://fedorahosted.org/freeipa/ticket/1286 https://fedorahosted.org/freeipa/ticket/1287
* Fix LDAP object parameter encodingMartin Kosek2011-11-151-8/+11
| | | | | | | | | | | | | | | Parameters in LDAP objects missed an information if they are real LDAP attributes or not. Real LDAP attributes are written to entry_attrs dictionary in plugin callbacks and are being encoded. This causes issues when plugin callbacks does not expect that the parameters values are already encoded for submission to LDAP. This patch introduces a new flag "noattribute" used to mark that a parameter is not an LDAP attribute and thus should not be encoded or added to entry_attrs. Param documentation is improved to describe the meaning of this and other Param flags or attributes. https://fedorahosted.org/freeipa/ticket/2097
* Fix automountkey-modMartin Kosek2011-08-181-0/+4
| | | | | | | | | | | | | Fix automountkey-mod so that automountkey attribute is correctly updated. Add this test case to the unit tests. Make automountkey required for automountkey-mod, otherwise it would cause internal server error. Make --newinfo optional so that automountkey may be just renamed without changing its info attribute. https://fedorahosted.org/freeipa/ticket/1528
* Add flags to enforce asking for object attributeJan Zeleny2011-01-261-3/+20
| | | | | | | So far the only flag to enforce asking in interactive mode was the alwaysask attribute, which is not sufficient any more. This patch adds the ability to control for which actions the atrribute shall be asked for.
* Add API version and have server reject incompatible clients.Rob Crittenden2011-01-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | This patch contains 2 parts. The first part is a small utility to create and validate the current API. To do this it needs to load ipalib which on a fresh system introduces a few problems, namely that it relies on a python plugin to set the default encoding to utf8. For our purposes we can skip that. It is also important that any optional plugins be loadable so the API can be examined. The second part is a version exchange between the client and server. The version has a major and a minor version. The major verion is updated whenever existing API changes. The minor version is updated when new API is added. A request will be rejected if either the major versions don't match or if the client major version is higher than then server major version (though by implication new API would return a command not found if allowed to proceed). To determine the API version of the server from a client use the ping command. ticket 584
* Retype (when cloning) Flag parameters to Bool for search commands.Pavel Zuna2011-01-101-3/+9
| | | | | | | | | Flag parameters are always autofill by definition, causing unexpected search results. This patch retypes them to Bool for search commands, so that users have to/can enter the desired value manually. Ticket #689 Ticket #701
* Change FreeIPA license to GPLv3+Jakub Hrozek2010-12-201-5/+5
| | | | | | | | | | The changes include: * Change license blobs in source files to mention GPLv3+ not GPLv2 only * Add GPLv3+ license text * Package COPYING not LICENSE as the license blobs (even the old ones) mention COPYING specifically, it is also more common, I think https://fedorahosted.org/freeipa/ticket/239
* Fix non XML-RPC testsJason Gerard DeRose2010-02-191-2/+2
|
* Add support for the 'no_create', 'no_update', and 'no_search' Param flagsJason Gerard DeRose2010-02-051-3/+109
|
* Take 2: Extensible return values and validation; steps toward a single ↵Jason Gerard DeRose2009-12-101-3/+12
| | | | output_for_cli(); enable more webUI stuff
* Make primary_key optional.Rob Crittenden2009-10-051-2/+4
| | | | | The pwpolicy plugin doesn't have a primary key but can still take advantage of other parts of the framework.
* Remove obsolete CRUD base classes as they aren't used anymore.Pavel Zuna2009-09-081-48/+0
|
* Generate crud.Search arguments with get_args.Pavel Zuna2009-06-101-4/+4
|
* Clone options of crud.Update and crud.Search with autofill=False.Pavel Zuna2009-05-261-2/+4
|
* Add ipalib.frontend.Command method to build an entry from params with ↵Pavel Zuna2009-02-231-5/+5
| | | | | | | | attribute=True. Often plugins need to build LDAP entries from params. This should make things a bit easier. Crud methods (Create, Retrieve, Update, Delete, Search) have attribute=True by default. And it also works for multivalue params.
* Some tweaks in user plugins, ported to new crud base classesJason Gerard DeRose2009-02-031-2/+27
|
* Started reworking CLI class into cli pluginJason Gerard DeRose2009-02-031-1/+1
|
* Added Object.params_minus() method; various small tweaksJason Gerard DeRose2009-02-031-1/+1
|
* Started roughing out new crud base classesJason Gerard DeRose2009-02-031-0/+49
|
* New Param: added Param.query kwarg for crud operations like Retrieve and ↵Jason Gerard DeRose2009-01-141-2/+3
| | | | Search where criteria should not be validated
* All unit tests now working (except for doctests and Rob's xmlrpc tests)Jason Gerard DeRose2009-01-141-2/+2
|
* Partially revert back change. Del shouldn't provide default options.Rob Crittenden2008-11-031-2/+0
| | | | It can provide custom ones though, if defined with takes_params() in the class.
* Initial implementation of automount supportRob Crittenden2008-10-301-0/+7
| | | | | Add argument handling to crud.Del Make get_list handle LDAP scope
* Use common display function for user-show and user-find.Rob Crittenden2008-10-231-0/+2
| | | | | Add --all option to user-find Fix command-line help to make sense on searches as well
* Add missing * to *kw to make it pass named arguments instead of positionalRob Crittenden2008-10-151-2/+2
|
* Port user-show to new CrudBackend frameworkRob Crittenden2008-10-141-3/+5
|
* Added CrudBackend abstract class defining generic CRUD APIJason Gerard DeRose2008-10-131-1/+75
|
* crud.Add.get_args() and get_options() now yield static values in takes_args, ↵Jason Gerard DeRose2008-10-091-0/+4
| | | | takes_options after the automagic ones
* Fixed unit tests; changed example.py so it doesn't import servercoreJason Gerard DeRose2008-09-301-1/+1
|
* Rebase XML-RPC client and serverRob Crittenden2008-09-301-1/+5
| | | | Fix error handling in server to return exceptions generated in library code
* 365: Implemented find.get_args(), find.get_options(); added corresponding ↵Jason Gerard DeRose2008-09-251-2/+6
| | | | unit tests
* 364: Implemented Mod.get_args, Mod.get_options(); added corresponding unit testsJason Gerard DeRose2008-09-251-2/+7
|
* 362: Implemented Get.get_args() and Del.get_args(); added corresponding unit ↵Jason Gerard DeRose2008-09-251-2/+4
| | | | tests
* 361: Implemented crud.Add.get_options() method; added corresponding unit testsJason Gerard DeRose2008-09-251-1/+3
|
* 346: Added skeleton framework for crud.py module and corresponding ↵Jason Gerard DeRose2008-09-241-0/+44
| | | | test_crud.py module
* 60: Remeved depreciated base.py, crud.py; remeved corresponding ↵Jason Gerard DeRose2008-08-061-37/+0
| | | | test_base.py, test_crud.py
* 25: Updated plugin examples, ipa scriptJason Gerard DeRose2008-07-201-4/+4
|
* 18: Moved base2 stuff into baseJason Gerard DeRose2008-07-201-19/+8
|
* 11: Added submodules needed to triger the plugin loading, etc., so I can ↵Jason Gerard DeRose2008-07-201-8/+2
| | | | start work on the cli demo
* 10: Updated base.API to reflect the fact that base.Object is now the new ↵Jason Gerard DeRose2008-07-201-15/+9
| | | | unit of plugin functionality; updated corresponding unit tests
* 9: Reorganized new work and unit tests based around base.Object being the ↵Jason Gerard DeRose2008-07-191-47/+24
| | | | plugin definining unit
* 8: Experimental work on more OO definition of what gets pluged into API.commandsJason Gerard DeRose2008-07-191-0/+83