Commit Graph

1569 Commits

Author SHA1 Message Date
Jan Zeleny
b249cb2427 Reword help for the user module
https://fedorahosted.org/freeipa/ticket/351
2011-02-16 08:41:00 -05:00
Endi S. Dewata
eb8f091c9b Fixed association facets.
The association config has been removed because it incorrectly assumes there is only one association between two entities. Now each association is defined separately using association facets.

The service.py has been modified to specify the correct relationships. The API.txt has been updated.

https://fedorahosted.org/freeipa/ticket/960
2011-02-15 17:45:46 -05:00
Rob Crittenden
f558ffe294 Fix service validator, ensure the service isn't blank.
ticket 961
2011-02-15 15:46:08 -05:00
Jan Zeleny
9c9a513664 Add group members to default output of sudorule-show
https://fedorahosted.org/freeipa/ticket/915
2011-02-15 14:44:27 -05:00
Pavel Zuna
fd0a6b4849 Fix setattr mail bug in user plugin.
The email normalizer expects a list or tuple, but when using setattr
it gets a string and interates on it as if it was a list/tuple.
2011-02-15 14:42:58 -05:00
Rob Crittenden
edcdd87bc8 A privilege cannot be a member of a permission, remove it from metadata
ticket 970
2011-02-15 13:39:49 -05:00
Rob Crittenden
dab452442d The --out option wasn't working at all with cert-show.
Also fix some related problems in write_certificate(), handle
either a DER or base64-formatted incoming certificate and don't
explode if the filename is None.

ticket 954
2011-02-14 16:43:48 -05:00
Rob Crittenden
0e4f0528cf Add missing import for netaddr
ticket 964
2011-02-14 16:22:29 -05:00
Jakub Hrozek
04597f4e36 Remove obsolete record types from DNS
https://fedorahosted.org/freeipa/ticket/923
2011-02-14 14:50:57 -05:00
Rob Crittenden
81020a2ffa A mod command should not be able to remove a required attribute.
Some attribute enforcement is done by schema, others should be done
by the required option in a Parameter. description, for example, is
required by many plugins but not the schema. We need to enforce in the
framework that required options are provided.

After all the setattr/addattr work is done run through the modifications
and ensure that no required values will be removed.

ticket 852
2011-02-14 14:46:29 -05:00
Jan Zeleny
25c5c43ed4 Changed dns permission types
Recent change of DNS module to version caused that dns object type
was replaced by dnszone and dnsrecord. This patch corrects dns types
in permissions class.

https://fedorahosted.org/freeipa/ticket/646
2011-02-14 11:32:03 -05:00
Jan Zeleny
da1fe966de Fixed type of argument in class help 2011-02-14 10:32:37 -05:00
Martin Kosek
34efc7bc24 Support of user default email domain
This patch fixes the default domain functionality for user email(s).
This setting may be configured via:

ipa config-mod --emaildomain=example.com

Then, when user is added/modified and --mail option is passed,
the default domain is appended if the passed attribute does not
contain another domain already.

https://fedorahosted.org/freeipa/ticket/598
2011-02-14 10:30:09 -05:00
Rob Crittenden
29706fb13b Add default success/failure output logging.
Request logging on the server only happened if you added verbose=True
or debug=True to the IPA config file. We should log the basics at
least: who, what, result.

Move a lot of entries from info to debug logging as well.

Related to ticket 873
2011-02-14 10:23:52 -05:00
Jakub Hrozek
284dd32040 Fix checking for arguments in DNS plugins
https://fedorahosted.org/freeipa/ticket/956
2011-02-14 10:21:27 -05:00
Rob Crittenden
3ac3130fc9 Convert json strings to unicode when they are unmarshalled.
This patch removes some individual work-arounds of converting strings
to unicode, they only masked the problem. String values are not
passed to the validator or normalizers so things like adding the
realm automatically to services weren't happening.

ticket 941
2011-02-11 13:36:15 -05:00
Jan Zeleny
978be50666 Provide a way to display CLI-LDAP relation
Since some LDAP attributes have their cli_name value defined,
so they can be more user friendly, it can be difficult for user to find
out which attributes do the parameteres given to CLI really represent.
This patch provides new command, which will take another IPA command as
and argument and display attributes which given command takes and what
LDAP attributes are they mapped to.

https://fedorahosted.org/freeipa/ticket/447
2011-02-10 15:11:26 -05:00
Rob Crittenden
c187b276ad Fix test failures caused by the performance patch.
It isn't safe to assume there is an environment or mode in any given
object. Only skip the extra work if the object explicitly has production
in it.
2011-02-10 13:52:29 -05:00
Rob Crittenden
51b0a8b4e8 Remove certificate as service a search option.
ticket 912
2011-02-10 13:49:05 -05:00
Pavel Zuna
bfe33760d1 Display error messages for failed manageby in service-add/remove-host.
Fix #830
2011-02-10 13:42:26 -05:00
Rob Crittenden
121da04579 Add the entitlement API to API.txt
It was missed because the whole module was skipped if python-rhsm wasn't
loaded.

ticket 919
2011-02-10 11:16:58 -05:00
Pavel Zuna
c24725ed38 Update krbtpolicy doc to inform that restarting krb5kdc might be needed.
Fix #844
2011-02-10 11:16:58 -05:00
Pavel Zuna
acc437c5fe Update config doc to reflect that 0 is not allowed for search time limit.
Fix #837
2011-02-10 11:16:57 -05:00
Pavel Zuna
ab7e702487 Set minimum for Kerberos policy max life and max renew.
Fix #847
2011-02-10 11:16:57 -05:00
Jan Zeleny
a247c3f30a Fix of a small typo 2011-02-10 11:16:56 -05:00
Martin Kosek
c9ff669cdd Inconsistent error message for ipa group-detach
When attempting to detach a private group that doesn't exist, the
error message returned is not consistent with the error returned by
the other topic commands. This patch adds a standard message.

https://fedorahosted.org/freeipa/ticket/291
2011-02-03 10:33:22 -05:00
Rob Crittenden
0188158a76 Use correct LDAP attributes for city and state.
Also add a unit test for address.

Ticket 889
2011-02-02 16:53:32 -05:00
Martin Kosek
0353a2be67 Typos in freeIPA messages
This patch fixes several reported typos in IPA messages and
in comments.

Contributors file has been updated + the original author of the
patch reporting the typos was added.

https://fedorahosted.org/freeipa/ticket/848
2011-02-02 15:38:50 -05:00
Jakub Hrozek
bb56285f6b IPv6 enhancements
* Make host-add, host-del and reverse zone creation IPv6 aware
* Make Bind listen on IPv6 interfaces, too

https://fedorahosted.org/freeipa/ticket/398
2011-02-02 12:39:35 -05:00
Pavel Zuna
04ba37500b Fix minor bug in host-add logic.
Ticket #798
2011-02-02 10:47:55 -05:00
Pavel Zuna
dba751758c Fix crash in ipa help for NO_CLI plugins.
Fix #854
2011-02-02 10:47:53 -05:00
Rob Crittenden
275998f6bd Add support for tracking and counting entitlements
Adds a plugin, entitle, to register to the entitlement server, consume
entitlements and to count and track them. It is also possible to
import an entitlement certificate (if for example the remote entitlement
server is unaviailable).

This uses the candlepin server from https://fedorahosted.org/candlepin/wiki
for entitlements.

Add a cron job to validate the entitlement status and syslog the results.

tickets 28, 79, 278
2011-02-02 10:00:38 -05:00
Rob Crittenden
c6ef39b2c0 Add new schema to store information about permissions.
There are some permissions we can't display because they are stored
outside of the basedn (such as the replication permissions). We
are adding a new attribute to store extra information to make this
clear, in this case SYSTEM.

ticket 853
2011-02-01 16:00:41 -05:00
Rob Crittenden
4b7e5721d4 Fix changing membergroup in a delegation.
This is mostly due to inconsistent option name usage but also due
to the aci plugin not always treating memberof as a special kind
of filter.

ticket 869
2011-02-01 11:59:24 -05:00
Jakub Hrozek
0dce1bc9e1 Add an address for a nameserver when a new zone is created during install
https://fedorahosted.org/freeipa/ticket/881
2011-01-31 22:15:45 -05:00
Rob Crittenden
bf4f77d985 Rename permissions and privileges to be more readable.
This also drops description from permissions since it seems redundant and
fixes up the help text a little.

ticket 792
2011-01-31 13:17:38 -05:00
Jan Zeleny
6db3105315 Fixed permission lookup
Lookup based on --filter wasn't implemented at all. It did't show until
now, because of bug sitting on top of it which was resulting in internal
error. This patch fixes the bug and adds the filtering functionality.

https://fedorahosted.org/freeipa/ticket/818
2011-01-31 11:24:39 -05:00
Martin Kosek
f72d8e506a ipa permission-mod --rename does not work
This patch fixes nonfunctional rename operation in permission
plugin. Also makes sure, that no change is made to the underlying
ACI in pre_callback() when the target permission already exists.

Several tests for the rename operation have been created to ensure
that the it won't break again unnoticed.

https://fedorahosted.org/freeipa/ticket/814
2011-01-28 23:51:09 -05:00
Rob Crittenden
359d54e741 Don't perform some API self-tests in production mode for performance reasons
The API does a fair number of self tests and locking to assure that the
registered commands are consistent and will work. This does not need
to be done on a production system and adds additional overhead causing
somewhere between a 30 and 50% decrease in performance.

Because makeapi is executed when a build is done ensure that it is
executed in developer mode to ensure that the framework is ok.

ticket 751
2011-01-28 18:49:17 -05:00
Jakub Hrozek
18e9b7349c Fix delegation help 2011-01-28 11:44:38 -05:00
Jakub Hrozek
0a6b1c4bce Enforce that all NS records are resolvable
Bind cannot load a zone if any of its name server records is not
resolvable.

https://fedorahosted.org/freeipa/ticket/838
2011-01-28 11:44:38 -05:00
Jakub Hrozek
682ca8658a Add example of DNS SRV record and a simple validator
https://fedorahosted.org/freeipa/ticket/846
2011-01-28 11:44:38 -05:00
Jakub Hrozek
a641f1f23d Delete the whole DNS record with no parameters
Error out when deleting a nonexistent DNS record

Also fixes the DNS unit tests.

https://fedorahosted.org/freeipa/ticket/816
https://fedorahosted.org/freeipa/ticket/829
2011-01-28 11:44:38 -05:00
Jakub Hrozek
7a75464a30 host-add should not add a PTR record with --no-reverse
https://fedorahosted.org/freeipa/ticket/866
2011-01-28 10:24:41 -05:00
Jan Zeleny
884f43f0db Add support for account unlocking
This patch adds command ipa user-unlock and some LDAP modifications
which are required by Kerberos for unlocking to work.

Ticket:
https://fedorahosted.org/freeipa/ticket/344
2011-01-28 10:23:02 -05:00
Adam Young
d7f4d616df dirty
If a page is dirty, do not allow additional navigation until changes are saved or committed
https://fedorahosted.org/freeipa/ticket/726
2011-01-27 16:59:17 -05:00
Adam Young
18ec29c42b adding label for RBAC 2011-01-27 16:52:52 -05:00
Martin Kosek
65a146cdca ACI plugin supports prefixes
When more than one plugin produce ACIs, they share common namespace
of ACI name. This may lead to name collisions between the ACIs
from different plugins.

This patch introduces a mandatory "prefix" attribute for non-find
ACI operations which allow plugins to use their own prefixes
(i.e. namespaces) which is then used when a name of the ACI is
generated.

Permission, Delegation and Selfservice plugins has been updated
to use their own prefixes thus avoiding name collisions by using
their own namespaces. Default ACIs in LDIFs has been updated to
follow this new policy.

Permission plugin now uses its CN (=primary key) instead of
description in ACI names as Description may not be unique.

This change requires an IPA server reinstall since the default ACI
set has been changed.

https://fedorahosted.org/freeipa/ticket/764
2011-01-26 17:55:17 -05:00
Pavel Zuna
3dae8f18a6 Raise ValidationError when adding unallowed attribute to search fields.
Ticket #845
2011-01-26 11:39:02 -05:00
Adam Young
2b8cdb2c8d Tab I18N
Makes the values for the Top level tabs internationizable, and no longer just
passes through their names

Also uses the I18N values for SUDO and HBAC as the static text in the Action p[anel title
2011-01-26 10:07:21 -05:00
Jan Zeleny
6cca48cb59 Add flags to enforce asking for object attribute
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.
2011-01-26 09:29:39 -05:00
Rob Crittenden
5c88225dda Add brackets around optional parameters when prompting.
ticket 832
2011-01-25 17:08:57 -05:00
Jakub Hrozek
ab2ca8022e Fix assorted bugs found by pylint 2011-01-25 14:01:36 -05:00
Jakub Hrozek
70a9e04f04 Enforce uniqueness on (key,info) pairs in automount keys
https://fedorahosted.org/freeipa/ticket/293
2011-01-25 11:13:10 -05:00
Pavel Zuna
0c2beda3f7 Fix crash when displaying values composed of white-space chars only in CLI.
Ticket #825
2011-01-24 22:44:15 -05:00
Jan Zeleny
3e3cc55d24 Disable renaming to empty string
So far it was possible to rename any object using LDAPUpdate to a name
with empty primary key. Since this can cause nasty problems, this patch
disables empty string in --rename argument.

https://fedorahosted.org/freeipa/ticket/827
2011-01-24 22:32:55 -05:00
Rob Crittenden
678c764d40 Make a copy of objectclasses so a call can't update them globally.
In the host plugin we may change the default objectclasses based on
the options selected. This was affecting it globally and causing
subsequent calls to fail.
2011-01-24 14:35:11 -05:00
Endi S. Dewata
9319385c7e Removed 'name' from 'Sudo Command Group name'. 2011-01-24 13:33:00 -05:00
Endi S. Dewata
fa5ae89d7f Added scrollable panel for delete dialog box. 2011-01-24 13:32:55 -05:00
Rob Crittenden
0637bff95f Fix exception doctest failure 2011-01-24 10:42:16 -05:00
Jan Zeleny
9b7920b0f5 Make ipa permission-add ask for optional attributes
Either one of type, filter, subtree, targetgroup, attrs or memberof is
required.

https://fedorahosted.org/freeipa/ticket/819
2011-01-21 14:26:31 -05:00
Rob Crittenden
4361cd0242 Rename INTERNAL to NO_CLI for commands we hide from the cli.
Also make i18n_messages and json_metadata NO_CLI.

ticket 821
2011-01-21 13:56:02 -05:00
Jan Zeleny
6d01bf037d Make command syntax less confusing in help
The patch adds [options] to the syntax line of ipa help <command>

https://fedorahosted.org/freeipa/ticket/733
2011-01-21 10:56:03 -05:00
Rob Crittenden
fc28fae03f Add some basic filter validation to permissions and disallow empty filters
Try a query with a filter to see if it is at least legal. This doesn't
guarantee that the filter is at all otherwise sane.

ticket 808
2011-01-21 10:47:43 -05:00
Simo Sorce
c22a3d25da Fix dns_is_enabled command 2011-01-20 16:07:50 -05:00
Simo Sorce
835436df15 Provide API to check if IPA DNS is enabled on some server
Fixes: https://fedorahosted.org/freeipa/ticket/600
2011-01-19 20:23:42 -05:00
Pavel Zuna
5f4ac74563 Fix password/random logic in host plugin.
Fix #798
2011-01-18 12:46:53 -05:00
Pavel Zuna
74ad4f3d7d Fix updating of DNS records by the host plugin.
Fix #799
2011-01-18 12:46:53 -05:00
Pavel Zuna
687324c193 Remove SOA maximum parameters from DNS zone.
There's no such thing as "maximum" in SOA record RDATA format
according to RFC 1035 and there's also no such attribute in
the schema.

Fix #788
2011-01-18 12:46:53 -05:00
Pavel Zuna
2bb944bea7 Fix crash when building DN of host with name ending with period.
Fix #797
2011-01-18 12:46:53 -05:00
Jan Zeleny
01f907c01b Move HBAC services and service groups to cn=hbac
https://fedorahosted.org/freeipa/ticket/762
2011-01-18 11:48:57 -05:00
Jan Zeleny
38bce669da Modified description of nsaccountlock attribute
The original one was misleading, giving the value exactly opposite
meaning than it actually was.

https://fedorahosted.org/freeipa/ticket/741
2011-01-18 10:03:55 -05:00
Rob Crittenden
886e417fd7 Set the default Int maxvalue to the maximum XML-RPC can handle.
Also handle marshalling errors thrown by xmlrpclib more gracefully.

ticket 770
2011-01-18 10:03:55 -05:00
Simo Sorce
25cfddcbe1 Move sudo related data all under cn=sudo
Fixes: https://fedorahosted.org/freeipa/ticket/773
2011-01-17 11:46:45 -05:00
Adam Young
285ee9db0c Details to Settings
Using I18N messages for most of the details
2011-01-15 04:42:49 +00:00
Rob Crittenden
84ff4ca0f1 Don't require or create the log dirs if we're just validating the API.
Fixes an error displayed in the automated builds, plus we don't want
a Makefile messing around with our homedir.
2011-01-14 17:26:49 -05:00
Jakub Hrozek
12c67b99e0 Rename DNS2 to DNS 2011-01-14 17:26:48 -05:00
Jakub Hrozek
3711261802 Port installer and host plugin to the new DNS plugin
* move ipa dns-resolve to the new plugin
* port the installer and the host plugin to the new interface
* remove the old plugin
2011-01-14 17:26:48 -05:00
Rob Crittenden
c69d8084c1 Add API version and have server reject incompatible clients.
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
2011-01-14 14:26:22 -05:00
Simo Sorce
5549dca50e Move Virtual Operations container under cn=etc
Fixes: https://fedorahosted.org/freeipa/ticket/759
2011-01-14 14:06:56 -05:00
Gowrishankar Rajaiyan
74d8a3c487 Fixed typo in ipa help service 2011-01-14 09:53:19 -05:00
Rob Crittenden
6785283568 python-ldap fails gloriously if the search time limit is 0. Don't allow it.
Don't allow the time limit to be set in the API. Also add a failsafe
in the ldap driver because such bad things happen if this value is 0.
I think it literally spends 0 time on the request and just returns
immediately.

ticket 752
2011-01-14 09:48:07 -05:00
Endi S. Dewata
00b3984e5a Support for str in StrEnum.
The StrEnum class has been modified to accept str value and convert
it into unicode. This is to fix encoding issue on F14.
2011-01-13 21:48:07 -05:00
Jakub Hrozek
f67d3cd32d Use correct option name in host plugin 2011-01-12 17:21:27 -05:00
Jakub Hrozek
404ded0e0a Fixes for the DNS plugin
https://fedorahosted.org/freeipa/ticket/730
2011-01-12 17:21:27 -05:00
Jr Aquino
1ea31a0cff fix sudorule runas user/groups https://fedorahosted.org/freeipa/ticket/570 2011-01-12 11:40:47 -05:00
Rob Crittenden
c7789199f9 Fix output of failed managedby hosts, allow a host to manage itself.
The output problem was a missing label for failed managedby.

This also fixes a call to print_entry that was missing the flags argument.

Add a flag to specify whether a group can be a member of itself, defaulting
to False.

ticket 708
2011-01-11 10:23:31 -05:00
Rob Crittenden
06179dc105 Exit if a DNS A or AAAA record doesn't exist for the replica we are preparing.
Without this it is possible to prepare a replica for a host that doesn't
exist in DNS. The result when this replica file is installed is that
replication will fail because the master won't be able to communicate
to the replica by name.

ticket 680
2011-01-11 10:22:33 -05:00
Pavel Zuna
1af89d0daa Retype (when cloning) Flag parameters to Bool for search commands.
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
2011-01-10 12:07:19 -05:00
Rob Crittenden
6f58f38748 Display the entries that failed when deleting with --continue.
We collected the failures but didn't report it back. This changes the
API of most delete commands so rather than returning a boolean it returns
a dict with the only current key as failed.

This also adds a new parameter flag, suppress_empty. This will try to
not print values that are empty if included. This makes the output of
the delete commands a bit prettier.

ticket 687
2011-01-10 10:32:10 -05:00
Rob Crittenden
0a79836082 Setting an empty set of target attributes should raise an exception.
It is possible to create an ACI with attributes and then try to set that
to None via a mod command later. We need to catch this and raise an exception.

If all attributes are set to None in an aci then the attr target is removed
from the ACI. This could result in an illegal ACI if there are no other
targets. Having no targets is a legal state, just not a legal final state.

ticket 647
2011-01-10 10:27:23 -05:00
Pavel Zuna
38c2656829 Fix 'ipa help permissions'; add 'dns' in allowed types. 2011-01-07 14:57:32 -05:00
Jan Zeleny
b6eada0802 Initial grouping of ipalib plugins for ipa help
This patch makes one group for all HBAC plugins and one group for all
sudo plugins.
2011-01-07 09:42:41 -05:00
Jan Zeleny
6214af8a8d Changed concept of ipa help
The concept is now following:
topic:    either a module or a group of modules containing registered
          commands. All these commands will usually handle common entity
          type (e.g. hbac rules)
subtopic: each topic can have a number of subtopics. In this case topic
          is a group of modules and each module represents a subtopic.

grouping modules to topics is possible by assigning a 2-tuple to module
variable:

topic = ('topic-name','topic description')

The topic description has to be the same in all modules in the topic.
These are examples of commands now available in IPA help:

ipa help              - display a list of all topics
ipa help hbac         - display help for hbac topic
ipa help hbacrule     - display help for a subtopic of hbac
ipa help hbacrule-add - display help for a particular command

https://fedorahosted.org/freeipa/ticket/410
2011-01-07 09:42:38 -05:00
Jan Zeleny
bfc338d81c Rename hbac module to hbacrule
The renaming follows previous discussion on mailing list and it leads to
name compatibility with other plugins (e.g. sudorule). It is also
necessary for following changes in ipa help.
2011-01-07 09:42:34 -05:00
Jan Zeleny
1fb2ccf105 Rename --ipaddr option of host-add command
The option is renamed to --ip-address to be consistent with
ipa-replica-prepare.

https://fedorahosted.org/freeipa/ticket/655
2011-01-07 05:09:14 -05:00
Adam Young
b730eb356f facet nesting
correctly nest the facet groups
change 'parent' to 'member of' for facet group
2011-01-07 04:44:56 -05:00
Jr Aquino
cbe02578db fixed typo for description usage example https://fedorahosted.org/freeipa/ticket/704 2011-01-06 11:13:23 -05:00
Martin Kosek
39a9361210 Handle error messages during Host operations
Only a generic error message were displayed when a non-existing
host was passed to host-del or host-disable operations.

This patch adds catching these generic exceptions and raising
new exceptions with the correct error message.

https://fedorahosted.org/freeipa/ticket/303
2011-01-06 11:10:31 -05:00
Pavel Zuna
d6d579ead4 Improve filtering of enrollments search results.
This is required for effective filtering of enrollments search
results in the webUI and also gives an edge to the CLI.

After this patch, each LDAPObject can define its relationships
to other LDAPObjects. For now, this is used only for filtering
search results by enrollments, but there are probably more
benefits to come.

You can do this for example:

# search for all users not enrolled in group admins
ipa user-find --not-in-groups=admins

# search for all groups not enrolled in group global with user Pavel
ipa group-find --users=Pavel --not-in-groups=global

# more examples:
ipa group-find --users=Pavel,Jakub --no-users=Honza
ipa hostgroup-find --hosts=webui.pzuna
2011-01-04 21:56:38 -05:00
Rob Crittenden
4f2a6e0a25 Don't use Class of Service for account activation, use attribute.
To support group-based account disablement we created a Class of Service
where group membership controlled whether an account was active or not.

Since we aren't doing group-based account locking drop that and use
nsaccountlock directly.

ticket 568
2011-01-04 17:09:56 -05:00
Rob Crittenden
91f4bb4ae5 Remove unnecessary options from host-del.
For some reason it was inheriting LDAPCreate.options...

ticket 652
2011-01-04 16:55:14 -05:00
Rob Crittenden
ecf2b252c0 Don't allow a user's uid to be set to 0.
ticket 578
2011-01-04 16:53:54 -05:00
Adam Young
590eef2936 status label
Change the label for the account status field IAW https://fedorahosted.org/freeipa/ticket/677
2010-12-23 15:12:45 -05:00
Pavel Zuna
f5a10bc2ec Update built-in help for user (ipa help user) with info about username format.
Ticket #436
2010-12-22 11:34:08 -05:00
Rob Crittenden
d84ffd9e54 Move permissions and privileges to their own container, cn=pbac,$SUFFIX
ticket 638
2010-12-22 11:26:49 -05:00
Pavel Zuna
e5ccddf446 Fix webUI command parameters error on Fedora 14. 2010-12-22 11:00:10 -05:00
Rob Crittenden
4d6cd89258 In meta data make ACI attributes lower-case, sorted. Add possible attributes.
The metadata contains a list of possible attributes that an ACI for that
object might need. Add a new variable to hold possible objectclasses for
optional elements (like posixGroup for groups).

To make the list easier to handle sort it and make it all lower-case.

Fix a couple of missed camel-case attributes in the default ACI list.

ticket 641
2010-12-21 13:00:15 -05:00
Pavel Zuna
1a7f5e0cc4 Fix reporting of errors when validating parameters.
Print the attribute CLI name instead of its 'real' name.
The real name is usually the name of the corresponding LDAP
attribute, which is confusing to the user.

This way we get:
Invalid 'login': blablabla
instead of:
Invalid 'uid': blablabla

Another example:
Invalid 'hostname': blablabla
instead of:
Invalid 'fqdn': blablabla

Ticket #435
2010-12-21 12:57:41 -05:00
Jan Zeleny
7bcc533d95 Added some fields to DNS2 plugin
Field idnszoneactive is marked as optional, because it is set to true by
default (see class dnszone_add).

https://fedorahosted.org/freeipa/ticket/601
2010-12-21 12:37:06 -05:00
Pavel Zuna
ec5fba6e67 Fix the mod operations. 2010-12-21 12:34:04 -05:00
Jr Aquino
fc8f7f9da8 SUDO plugin support for external hosts and users https://fedorahosted.org/freeipa/ticket/570 2010-12-21 12:29:46 -05:00
Adam Young
07ace112af aci ui
Implements the role, privilege, permission, delegation and selfservice entities ui.

Targetgroup has been added to the object types.
The groups lists need to be filter.  The filter is currently hidden, with a
hyperlink that reads 'filter' to unhide it.  Each keystroke in this filter
performs an AJAX request to the server.

There are bugs on the server side that block some of the functionality from
completing

Creating a Permission requires one of 4 target types. The add dialog in this
version assumes the user will want to create a filter type. They can change
this on the edit page.

Most search results come back with the values as arrays, but ACIs seem not to.
Search and details both required special code to handle non-arrays.

The unit tests now make use of the 'module' aspect of QUnit.  This means that
future unit test will also need to specify the module.  The advantage is that
multiple tests can share a common setup and teardown.

Bugs that need to be fixed before this works 100% are
https://fedorahosted.org/freeipa/ticket/634
https://fedorahosted.org/freeipa/ticket/633
2010-12-20 23:32:06 -05:00
Jakub Hrozek
7493d781df Change FreeIPA license to GPLv3+
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
2010-12-20 17:19:53 -05:00
Rob Crittenden
ffd467bd7e Translate the membergroup dn into a group name.
Drop filter from the output, it is superfluous.

ticket 634
2010-12-20 15:18:42 -05:00
Pavel Zuna
3a9210f06f Enable filtering search results by member attributes.
LDAPSearch base class has now the ability to generate additional
options for objects with member attributes. These options are
used to filter search results - search only for objects without
the specified members.

Example:
ipa group-find --no-users=admin

Only direct members are taken into account.

Ticket #288
2010-12-20 12:28:45 -05:00
Jakub Hrozek
ffc6031ad7 Allow RDN changes from CLI
https://fedorahosted.org/freeipa/ticket/397
2010-12-20 11:27:46 -05:00
Jakub Hrozek
1317cf4966 Check the number of fields when importing automount maps
https://fedorahosted.org/freeipa/ticket/359
2010-12-20 11:27:38 -05:00
Jakub Hrozek
d7d77a749c import NSPRError in host.py 2010-12-20 10:46:37 -05:00
Jan Zeleny
a1a8e7c138 Added option --no-reverse to add-host
When adding a host with specific IP address, the operation would fail in
case IPA doesn't own the reverse DNS. This new option overrides the
check for reverse DNS zone and falls back to different IP address
existence check.

https://fedorahosted.org/freeipa/ticket/417
2010-12-20 10:45:27 -05:00
Jakub Hrozek
409e4062f4 Allow renaming of object that have a parent
Allow renaming of object that have a parent
2010-12-20 10:44:10 -05:00
Jakub Hrozek
7aed107973 Make pkey always iterable when deleting 2010-12-20 10:42:33 -05:00
Rob Crittenden
34534a026f Don't use camel-case LDAP attributes in ACI and don't clear enrolledBy
We keep LDAP attributes lower-case elsewhere in the API we should do the
same with all access controls.

There were two ACIs pointing at the manage_host_keytab permission. This
isn't allowed in general and we have decided separately to not clear out
enrolledBy when a host is unenrolled so dropping it is the obvious thing
to do.

ticket 597
2010-12-17 18:04:37 -05:00
Rob Crittenden
7035ffe49c Fix some doctests
A few had bad formatting causing the doctests to fail.
2010-12-17 18:04:37 -05:00
Rob Crittenden
eb9cb783ee Catch ACI errors better when adding a permission.
We create the aci with the --test flag to test its validity but it doesn't
do the same level of tests that actually adding an aci to LDAP does. Catch
any syntax errors that get thrown and clean up as best we can.

ticket 621
2010-12-17 18:04:37 -05:00
Rob Crittenden
1207a7c83f Fix the change_password permissions and the DNS access controls.
The change_password permission was too broad, limit it to users.

The DNS access controls rolled everything into a single ACI. I broke
it out into separate ACIs for add, delete and add. I also added a new
dns type for the permission plugin.

ticket 628
2010-12-17 17:16:25 -05:00
Rob Crittenden
b66c680f86 Remove principal as an option when updating an existing user.
ticket 559
2010-12-17 17:08:12 -05:00
Rob Crittenden
e0a39234f7 Add metadata for the selfservice and delegation plugins. 2010-12-14 11:06:51 -05:00
Rob Crittenden
cd7b64103b Add group to group delegation plugin.
This is a thin wrapper around the ACI plugin that manages granting group A
the ability to write a set of attributes of group B.

ticket 532
2010-12-13 20:15:46 -05:00
Rob Crittenden
8a534bf07b Give the memberof plugin time to work when adding/removing reverse members.
When we add/remove reverse members it looks like we're operating on group A
but we're really operating on group B. This adds/removes the member attribute
on group B and the memberof plugin adds the memberof attribute into group A.

We need to give the memberof plugin a chance to do its work so loop a few
times, reading the entry to see if the number of memberof is more or less
what we expect. Bail out if it is taking too long.

ticket 560
2010-12-13 17:58:43 -05:00
Jr Aquino
b23b3911d2 sudo run as user or group https://fedorahosted.org/freeipa/ticket/570 2010-12-13 17:56:13 -05:00
Adam Young
2884bce276 relabel role
no longer calling them role groups.
2010-12-13 15:10:20 -05:00
Rob Crittenden
5f8a9b9849 Add --out option to service, host and cert-show to save the cert to a file.
Override forward() to grab the result and if a certificate is in the entry
and the file is writable then dump the certificate in PEM format.

ticket 473
2010-12-13 09:58:26 -05:00
Rob Crittenden
c9807f4b25 Better handle permission object updates versus aci object updates.
permissions are a real group pointed to by an aci, managed by the same
plugin. Any given update can update one or both or neither. Do a better
job at determining what it is that needs to be updated and handle the
case where only the ACI is updated so that EmptyModList is not thrown.

ticket 603
2010-12-13 09:55:28 -05:00
Rob Crittenden
ba8d21f5ae Check for existence of the group when adding a user.
The Managed Entries plugin will allow a user to be added even if a group
of the same name exists. This would leave the user without a private
group.

We need to check for both the user and the group so we can do 1 of 3 things:
- throw an error that the group exists (but not the user)
- throw an error that the user exists (and the group)
- allow the uesr to be added

ticket 567
2010-12-13 09:53:29 -05:00
Rob Crittenden
e8157f2628 Fix typo in migration documentation 2010-12-13 09:48:16 -05:00
Rob Crittenden
be3c8e8c02 Don't import from ipaserver when not in a server context.
ticket 579
2010-12-11 12:50:17 -05:00
Jan Zeleny
8fd288df08 Print expected error message in hbac-mod
This patch catches NotFound exception and calls handling function
which then sends exception with unified error message.

https://fedorahosted.org/freeipa/ticket/487
2010-12-10 13:52:14 -05:00
Rob Crittenden
e8e274c9e0 Properly handle multi-valued attributes when using setattr/addattr.
The problem was that the normalizer was returning each value as a tuple
which we were then appending to a list, so it looked like
[(u'value1',), (u'value2',),...]. If there was a single value we could
end up adding a tuple to a list which would fail. Additionally python-ldap
doesn't like lists of lists so it was failing later in the process as well.

I've added some simple tests for setattr and addattr.

ticket 565
2010-12-10 13:42:47 -05:00
Rob Crittenden
1a20d75421 Set labels on all attributes in the config object.
Make the cert subject base read-only. This is here only so replicated servers
know their base.

ticket 466
2010-12-10 13:41:35 -05:00
Rob Crittenden
5b7abefb42 If any params marked alwaysask are provided then prompt for none of them.
ticket 604
2010-12-09 15:06:42 -05:00
Rob Crittenden
bfcf25cf54 Add documentation to the migrate-ds command.
ticket 539
2010-12-09 15:04:32 -05:00
Rob Crittenden
4c09809ea8 Add plugin for manage self-service ACIs
This is just a thin wrapper around the aci plugin, controlling what
types of ACIs can be added.

Right now only ACIs in the basedn can be managed with this plugin.

ticket 531
2010-12-08 13:51:10 -05:00
Jr Aquino
751ee81771 Enable/Disable SudoRule https://fedorahosted.org/freeipa/ticket/570 2010-12-08 11:32:55 -05:00
Jr Aquino
cdf360151b Adding user/host category and ipaenabledflag https://fedorahosted.org/freeipa/ticket/570 This patch Addresses items: 1. The UI needs a rule status with values active & inactive. The CLI doesn't have this attribute. HBAC has ipaenabledflag attribute which can be managed using hbac-enable/disable operations. 2. The UI needs a user category for the "Who" section. The CLI doesn't have this attribute. HBAC has usercategory attribute which can be managed using hbac-add/mod operations. 3. The UI needs a host category for the "Access this host" section. The CLI doesn't have this attribute. HBAC has hostcategory attribute which can be managed using hbac-add/mod operations. 2010-12-08 10:30:02 -05:00
Jakub Hrozek
9e5fdcb3a4 Fix kwargs usage in automount plugin
https://fedorahosted.org/freeipa/ticket/580
2010-12-07 17:17:23 -05:00
Pavel Zuna
bee5c1d174 Fix default attributes in config plugin (ipadefaultemaildomain).
Ticket #573
2010-12-07 16:41:06 -05:00
Rob Crittenden
6e2dd0fa5b Add new parameter type IA5Str and use this to enforce the right charset.
ticket 496
2010-12-07 16:37:42 -05:00
Jakub Hrozek
4c75495b3d Do not migrate krbPrincipalKey
https://fedorahosted.org/freeipa/ticket/455
2010-12-07 10:37:26 -05:00
Jakub Hrozek
1c3aa1f2c8 Make the migration plugin more configurable
This patch adds new options to the migration plugin:
 * the option to fine-tune the objectclass of users or groups being imported
 * the option to select the LDAP schema (RFC2307 or RFC2307bis)

Also makes the logic that decides whether an entry is a nested group or user
(for RFC2307bis) smarter by looking at the DNS. Does not hardcode primary keys
for migrated entries.

https://fedorahosted.org/freeipa/ticket/429
2010-12-07 10:37:17 -05:00
Rob Crittenden
fee9fae941 Add more information and examples on targets.
ticket 310
2010-12-06 11:46:40 -05:00
Rob Crittenden
bfb3e46996 Remove accessTime from HBAC.
ticket 545
2010-12-06 11:42:13 -05:00
Jan Zeleny
19049d1a64 Check if the group exists
When setting default group, we should check if the group exists.
If not, it could lead to some issues with adding new users after
the new default group is set.

https://fedorahosted.org/freeipa/ticket/504
2010-12-06 11:25:25 -05:00
Jan Zeleny
9a5d4f2e18 Document that the default group has to exist
After calling ipa config --defaultgroup=xxx with nonexistent group xxx,
the result will be that no new user can be added. The operation will
always fail in the middle because it is not possible to add the new user
to desired default group.

https://bugzilla.redhat.com/show_bug.cgi?id=654117#c4
2010-12-06 11:24:51 -05:00
Rob Crittenden
1bcd4a389d When deleting multiple entries use --continue, not --continuous.
ticket 561
2010-12-03 17:32:38 -05:00
Rob Crittenden
0ca29095a8 Don't look up the CoS entry with the global password policy.
ticket 523
2010-12-03 13:51:01 -05:00
Rob Crittenden
8a63315ef3 Provide list of available attributes for use in ACI UI.
Also include flag indicating whether the object is bindable. This will
be used to determine if the object can have a selfservice ACI.

ticket 446
2010-12-03 13:01:42 -05:00
Endi S. Dewata
867ac1f03d Fixed association links
The create_association_facets() has been modified such that it
does not generate duplicate links. This is done by assigning the
proper labels and hiding non-assignable associations.

Each association will get a label based on the attribute used:
 - memberof: Membership in <entity name>
 - member.*: <entity name> Members
 - managedby: Managed by <entity name>

The following associations will be hidden:
 - memberindirect
 - enrolledby

The internal.py was modified to return localized labels.

The test data has been updated.
2010-12-03 12:57:43 -05:00
Adam Young
e33377bc13 dns2 ui replaceing calls for the dns plugin to the dns2 plugin no has attribute permissions and all other benefits of building on the baseldap plugin 2010-12-03 11:42:38 -05:00
Jan Zeleny
188ca3a360 Added some fields to user object
Some fields were missing from user object, this change adds them
along with their l10n

https://fedorahosted.org/freeipa/ticket/305
2010-12-03 10:18:23 -05:00
Rob Crittenden
a41e69fba3 Add labels for passwords, fix output of exceptions, fix passwd output.
Passwords didn't have internationalizable labels.

Exceptions that occured during required input weren't printed as unicode
so weren't being translated properly.

Don't use output_for_cli() directly in the passwd plugin, use output.Output.

ticket 352
2010-12-02 16:31:42 -05:00
Rob Crittenden
6c393e53b0 This is the second half of a patch. Only the part that had to be
re-based got pushed for some reason.

Use better description for group names in help and always prompt for members

When running <foo>-[add|remove]-member completely interactively it didn't
prompt for managing membership, it just reported that 0 members were
handled which was rather confusing.

This will work via a shell if you want to echo too:

$ echo "" | ipa group-add-member g1

This returns 0 members because nothing is read for users or group members.

$ echo -e "g1\nadmin\n" | ipa group-add-member

This adds the user admin to the group g1. It adds it as a user because
user membership is prompted for first.

ticket 415
2010-12-02 16:29:26 -05:00
Rob Crittenden
df592c6cc8 Use better description for group names in help and always prompt for members
When running <foo>-[add|remove]-member completely interactively it didn't
prompt for managing membership, it just reported that 0 members were
handled which was rather confusing.

This will work via a shell if you want to echo too:

$ echo "" | ipa group-add-member g1

This returns 0 members because nothing is read for users or group members.

$ echo -e "g1\nadmin\n" | ipa group-add-member

This adds the user admin to the group g1. It adds it as a user because
user membership is prompted for first.

ticket 415
2010-12-02 16:21:31 -05:00
Jan Zeleny
ac62447329 Updated output when calling hbac-show
Some attributes weren't included in the output of hbac-show command.
This patch fixes it.

https://fedorahosted.org/freeipa/ticket/494
https://fedorahosted.org/freeipa/ticket/495
2010-12-02 16:10:25 -05:00
Jakub Hrozek
55479e4512 Normalize and convert default params, too
https://fedorahosted.org/freeipa/ticket/555
2010-12-02 16:06:13 -05:00
Pavel Zuna
5db7c4ec34 Add new version of DNS plugin: complete rework with baseldap + unit tests.
Ticket #36
Ticket #450
2010-12-01 21:32:09 -05:00
Rob Crittenden
4ad8055341 Re-implement access control using an updated model.
The new model is based on permssions, privileges and roles.
Most importantly it corrects the reverse membership that caused problems
in the previous implementation. You add permission to privileges and
privileges to roles, not the other way around (even though it works that
way behind the scenes).

A permission object is a combination of a simple group and an aci.
The linkage between the aci and the permission is the description of
the permission. This shows as the name/description of the aci.

ldap:///self and groups granting groups (v1-style) are not supported by
this model (it will be provided separately).

This makes the aci plugin internal only.

ticket 445
2010-12-01 20:42:31 -05:00
Adam Young
47d61e6cab action panel sibling added function to get sibling entities from the tab set. remove explicit sibling code from entity pages Modified the Label fields on HBAC and SUDO to make them appear cleaner in the UI 2010-12-01 15:21:02 -05:00
Pavel Zuna
94957c8ddc Prompt correctly for required Password params.
Ticket #361
2010-11-30 15:14:28 -05:00
Rob Crittenden
88133ab43c Create user private groups with a uniqueid.
If we don't then we need to add it when a group is detached causing
aci issues.

I had to move where we create the UPG template until after the DS
restart so the schema is available.

ticket 542
2010-11-30 09:52:05 -05:00
Jan Zeleny
58bcb5e7f9 Handle error messages during various HBAC operations
During some HBAC operations, various error messages were handled
incorrectly - displaying only generic error messages instead of
correct ones, which were defined for the module.

This patch adds catching these generic exceptions and raising
new exceptions with the correct error message.

https://fedorahosted.org/freeipa/ticket/487
2010-11-29 17:19:40 -05:00
Adam Young
16b935169c whoami fix
recent changes to the scope mechanism weren't propigated to the whoami call
2010-11-24 16:36:36 -05:00
Pavel Zuna
a34bb67cbd Rename parent LDAPObject pkeys in child LDAPObject methods.
If the parent and child entries have the same attribute as primary
key (such as in the DNS schema), we need to rename the parent key
to prevent a param name conflict. It has no side effects, because
the primary key name is always taken from the LDAPObject params,
never from the method params.
2010-11-24 09:54:01 -05:00
Rob Crittenden
97e9309db3 Gracefully handle an empty members list
This can occur if you do something like:

$ ipa hbac-add-host --hosts="" testrule

options will have an entry for 'host' but it will be None whcih is
not iterable.

ticket 486
2010-11-24 08:38:48 -05:00
Pavel Zuna
9120155dae Generate better DuplicateEntry error messages in LDAPCreate.
Ticket #530
2010-11-23 21:32:12 -05:00
Pavel Zuna
5060fdfade Change signature of LDAPSearch.pre_callback.
Add the opportunity to change base DN and scope in the callback.
2010-11-23 21:29:08 -05:00
Rob Crittenden
6d51a48af8 Add ability to add/remove DNS records when adding/removing a host entry.
A host in DNS must have an IP address so a valid IP address is required
when adding a host. The --force flag will be needed too since you are
adding a host that isn't in DNS.

For IPv4 it will create an A and a PTR DNS record.

IPv6 isn't quite supported yet. Some basic work in the DNS installer
is needed to get this working. Once the get_reverse_zone() returns the
right value then this should start working and create an AAAA record and
the appropriate reverse entry.

When deleting a host with the --updatedns flag it will try to remove all
records it can find in the zone for this host.

ticket 238
2010-11-23 18:23:29 -05:00
Endi S. Dewata
3e540272c6 Multivalued email address 2010-11-20 02:31:40 -05:00
Jakub Hrozek
3682a1c385 Improve the documentation of setattr/addattr
https://fedorahosted.org/freeipa/ticket/245
2010-11-19 13:54:27 -05:00
Rob Crittenden
53d1553755 Give a detached group a full set of group objectclasses.
The UUID plugin handles adding ipaUniqueId for us as well as the access
control for it.

ticket 250
2010-11-19 13:47:09 -05:00
Rob Crittenden
1b166c9e8b Fix returning effective rights for password policy.
This also returns the rights for cospriority if the policy is for a group.

ticket 449
2010-11-19 12:36:31 -05:00
Rob Crittenden
d4f25453e1 Add managedby to Host entries
This will allow others to provision on behalf of the host.

ticket 280
2010-11-19 10:31:42 -05:00
Rob Crittenden
2046eddb7a Revoke a host's certificate (if any) when it is deleted or disabled.
Disable any services when its host is disabled.

This also adds displaying the certificate attributes (subject, etc)
a bit more universal and centralized in a single function.

ticket 297
2010-11-19 10:31:42 -05:00
Simo Sorce
151059b0e7 Use distutil.version to check for min version 2010-11-18 15:13:22 -05:00
Simo Sorce
8c616eb10a add plugin to enable/disable anonymous pkinit 2010-11-18 15:09:51 -05:00
Adam Young
775fc23738 batch init this batches together the calls to json_metadata, i18n_messages, and user-find [whoami] tostreamline the init process, and also allow us to add a call to enumerate the plugins. 2010-11-18 20:02:45 -05:00
Rob Crittenden
25469cf4f1 Increase # of chars in users and groups to 255 and default username to 32.
ticket 434
2010-11-12 17:25:40 -05:00
Rob Crittenden
1db42b5461 Don't include INTERNAL commands in ipa help commands output.
ticket 463
2010-11-10 20:20:29 -05:00
Pavel Zuna
dc34075fa5 Replace 'Locking' in ipa help user with 'Disabling'.
Ticket #452
2010-11-09 14:02:12 -05:00
Adam Young
1f9531bea2 delete to remove THe keyword delete is reserved in Javascript Using it breaks the WebUI on Chrome. This fixes replaces the word with delete. 2010-11-09 02:14:23 -05:00
Rob Crittenden
537f4074d1 Add usercategory and hostcategory and fix displaying members in netgroup_show
ticket 443
2010-11-08 15:23:41 -05:00
Jakub Hrozek
a874d5f8e5 Clarify the description of --raw and -all
https://fedorahosted.org/freeipa/ticket/244
2010-11-08 15:23:03 -05:00
Adam Young
90baf597dd Ticket Expiration
THis patch handles Kerberos ticket expiration in the UI.  Additionally it removes the mod_atuh_kerb authorization for elements in the static directory, cutting down on the number of round trips required for initializing the web app

Conflicts:

	install/static/ipa.js
2010-11-08 14:17:47 -05:00
Rob Crittenden
655aa0fcdf Add the --rights option to the LDAPUpdate base class.
ticket 437
2010-11-05 16:30:19 -04:00
Rob Crittenden
9c50371652 Fix typo in exception sample causing a doctest to fail 2010-11-05 12:17:09 -04:00
Adam Young
2c7f2e8fea batch
Allows the user to send multiple commands bundled together
2010-11-05 11:21:42 -04:00
Rob Crittenden
6f5cd3232a user-enable/disable improvements
Always display the account enable/disable status.

Don't ignore the exceptions when a user is already enabled or disabled.

Fix the exception error messages to use the right terminology.

In baseldap when retrieving all attributes include the default attributes
in case they include some operational attributes.

ticket 392
2010-11-04 12:49:33 -04:00
Rob Crittenden
72cf73b6b6 Output ACI's broken out into attributes rather than a single text field
Also add validation to the List parameter type.

ticket 357
2010-11-04 12:48:45 -04:00
Jr Aquino
c99fda0d1e Added fixes to adjust for sudocmd attribute for sudocmds. Added fix for sudorule to allow for cmdCategory all Added fixes for xmlrpc tests to reflect sudocmd changes. 2010-11-03 10:23:40 -04:00
Rob Crittenden
813dfe5013 Use kerberos password policy.
This lets the KDC count password failures and can lock out accounts for
a period of time. This only works for KDC >= 1.8.

There currently is no way to unlock a locked account across a replica. MIT
Kerberos 1.9 is adding support for doing so. Once that is available unlock
will be added.

The concept of a "global" password policy has changed. When we were managing
the policy using the IPA password plugin it was smart enough to search up
the tree looking for a policy. The KDC is not so smart and relies on the
krbpwdpolicyreference to find the policy. For this reason every user entry
requires this attribute. I've created a new global_policy entry to store
the default password policy. All users point at this now. The group policy
works the same and can override this setting.

As a result the special "GLOBAL" name has been replaced with global_policy.
This policy works like any other and is the default if a name is not
provided on the command-line.

ticket 51
2010-11-01 14:15:42 -04:00
Rob Crittenden
03de1b89ca Implement nested netgroups and include summaries for the commands.
Replace the existing netgroup test cases with Declarative tests. This triples
the number of tests we were doing.

ticket 209
2010-10-29 14:03:15 -04:00
Rob Crittenden
3c795f3251 Return reason for failure when updating group membership fails.
We used to return a list of dns that failed to be added. We now return
a list of tuples instead. The tuple looks like (dn, reason) where reason
is the exception that was returned.

Also made the label we use for failures to be singular instead of plural
since we now print them out individually instead of as comma-separated.

ticket 270
2010-10-28 17:47:20 -04:00
Rob Crittenden
7486ead6c9 Don't allow managed groups to have group password policy.
UPG cannot have members and we use memberOf in class of service to determine
which policy to apply.

ticket 160
2010-10-28 17:36:05 -04:00
Rob Crittenden
c1dfb50ee9 Remove group nesting from the HBAC service groups
ticket 389
2010-10-28 17:34:34 -04:00
Rob Crittenden
33802ab712 Use context to decide which name to return on RequirementsErrors
When a Requirement fails we throw an exception including the name of the
field that is missing. To make the command-line friendlier we have a
cli_name defined which may or may not match the LDAP attribute. This can
be confusing if you are using ipalib directly because the attribute name
missing may not match what is actually required (desc vs description is
a good example).

If you use the context 'cli' then it will throw exceptions using cli_name.
If you use any other context it will use the name of the attribute.

ticket 187
2010-10-28 16:06:06 -04:00
Rob Crittenden
ff636984ab Add option to generate random one-time password for hosts for bulk enrollment
ticket 228
2010-10-28 15:27:58 -04:00
Rob Crittenden
c25d62965a Populate indirect members when showing a group object.
This is done by creating a new attribute, memberindirect, to hold this
indirect membership.

The new function get_members() can return all members or just indirect or
direct. We are only using it to retrieve indirect members currently.

This also:
* Moves all member display attributes into baseldap.py to reduce duplication
* Adds netgroup nesting
* Use a unique object name in hbacsvc and hbacsvcgroup

ticket 296
2010-10-28 15:15:52 -04:00
Rob Crittenden
47629a604d Retrieve Get Effective Rights output with LDAPRetrieve
The output is a pure python dict so is really only useful when used with
--all so it is required.

Updated to return a string for rights as opposed to a list.  Terser, reducing the wire size by a factor of 3.5
2010-10-28 14:35:34 -04:00
Rob Crittenden
70a57924c8 Allow RDN changes for users, groups, rolegroups and taskgroups.
To do a change right now you have to perform a setattr like:

ipa user-mod --setattr uid=newuser olduser

The RDN change is performed before the rest of the mods. If the RDN
change is the only change done then the EmptyModlist that update_entry()
throws is ignored.

ticket 323
2010-10-28 08:39:10 -04:00
Pavel Zuna
93290c8a72 Add LDAPObject setting to handle different attributes for RDN and PKEY. 2010-10-28 07:58:31 -04:00
Simo Sorce
c51ce61e4d UUIDs: remove uuid python plugin and let DS always autogenerate
merge in remove uuid
2010-10-28 07:58:31 -04:00
Adam Young
038ae18a8a whoami goodbye
Removing the whoami plugin, as it has been wrapped up into the user plugin
2010-10-26 10:20:32 -04:00
Rob Crittenden
0e4e1f4bbd Fix two failing tests.
The first test is a mismatch in the sample output of an exception.

The second test adds certificate information output to the service plugin.
2010-10-22 21:45:37 -04:00
Rob Crittenden
6220b53893 Set default encoding to utf-8, use unicode when printing output.
The Gettext() object only does the lookup when you print it as a unicode.

ticket 308
2010-10-22 21:39:53 -04:00
Pavel Zuna
42c78a383d Add flag to group-find to only search on private groups.
ticket #251
2010-10-20 17:38:03 -04:00
Endi S. Dewata
2c5f3cfd60 Host certificate management
The service certificate management UI has been generalized and moved
into certificate.js. The host details page is now using the same code
to manage certificates. The host.py has been modified to return host
certificate info.

The Get/Revoke/View buttons behavior has been modified such that they
are visible only if there is a valid certificate. The Get dialog box
has been fixed to show the correct certificate header and footer.

The ipa.css has been modified to store the style of the status bullets.
New unit tests for certificate has been added. The test data has been
modified to include sample host certificate.
2010-10-20 09:33:44 -04:00
Rob Crittenden
fe7d97a3d9 Fix problem testing for mutual exclusivity in hbac plugin.
This should fix the hbac tests.
2010-10-18 15:47:16 -04:00
Pavel Zuna
dff2ff8300 Disallow RDN change and single-value bypass using setattr/addattr.
When setting or adding an attribute wiht setatt/addattr check to
see if there is a Param for the attribute and enforce the multi-value.
If there is no Param check the LDAP schema for SINGLE-VALUE.

Catch RDN mods and try to return a more reasonable error message.

Ticket #230
Ticket #246
2010-10-18 14:44:42 -04:00
Rob Crittenden
0ceba59d87 Add Requires on ipa-client to ipa-admintools, ensure ipa client is configured
It makes little sense to install ipa-admintools without ipa-client, require it.

Also see if the client has been configured. This is a bit tricky since we
have a full set of defaults. Add a new env option that gets set if at least
one configuration file is loaded.

ticket 213
2010-10-15 15:03:51 -04:00
Rob Crittenden
264413bcb9 Handle regular socket errors gracefully in ipa command
ticket 382
2010-10-15 15:02:18 -04:00
Rob Crittenden
2f6fa22ab0 Improve doc string for password
ticket 182
2010-10-15 15:00:48 -04:00
Endi S. Dewata
4c24581b5c Service certificate UI.
The service.py has been modified to include certificate info in
the service-show result if the service contains usercertificate.

A new file certificate.js has been added to store codes related
to certificates (e.g. revocation reasons, dialog boxes). The
service.js has been modified to provide the UI for certificate
management. The certificate.js can also be used for host
certificate management.

The Makefile.am and index.xhtml has been modified to include
certificate.js. New test data files have been added for certificate
operations.

To test revoke and restore operations the server needs to be
installed with dogtag CA instead of self-signed CA.

The certificate status and revocation reason in the details page
will be implemented in subsequent patches. Unit tests will also
be added in subsequent patches.
2010-10-15 14:26:07 -04:00
Rob Crittenden
19272e5b8e Fix group deletion
ticket 347
2010-10-13 17:58:15 -04:00
Rob Crittenden
53c218cf2f Return non-zero when the number of entries from *-find returned is zero.
ticket 325
2010-10-13 13:00:58 -04:00
Rob Crittenden
3d55b66e48 Enforce the maximum username length from cn=ipaconfig
ticket 226
2010-10-13 13:00:51 -04:00
Rob Crittenden
16931cfe2d Detect when DNS is not configured and return an error message
It would be nicer if we disabled the command altogether but this would require
checking the server to see every time the ipa command is executed (which would
be bad). We can't store this in a configuration file because it is possible
to add a DNS post-install (and it would require adding this to every single
client install).

ticket 147
2010-10-13 13:00:07 -04:00
Rob Crittenden
0197ebbb7b Add ability to import automount files from the command-line.
Support is fairly basic right now and will only work on the CLI. All
the work is done on the client side.

To continue past errors use the --continue option.

Fixed a bug where direct mounts weren't always added properly.

Added real user documentation to the plugin.

ticket 78
2010-10-12 18:07:26 -04:00
Adam Young
dcc0d76ef9 dns metadata
This is a little bit of a copy and paste approach, as the code for__json__
 was copied from baseldap.  Long term, we want to rewrite this plugin as
an extension of baseldap anyway.
2010-10-12 14:30:13 -04:00
Endi S. Dewata
1dc0a3ab3e Certificate management for services.
This is an initial implementation of certificate management for
services. It addresses the mechanism required to view and update
certificates. The complete UI implementation will be addressed in
subsequent patches.

On the server side, the service.py has been modified to define
usercertificate in the service object's takes_params. This is
needed to generate the proper JSON metadata which is needed by
the UI. It also has been modified to accept null certificate for
deletion.

On the client side, the service details page has been modified to
display the base64-encoded certificate in a text area. When the
page is saved, the action handler will store the base64-encoded
certificate in the proper JSON structure. Also the service name
and service hostname are now displayed in separate fields.

The details configuration has been modified to support displaying
and updating certificates. The structure is changed to use maps
to define sections and fields. A section contains name, label,
and an array of fields. A field contains name, label, setup
function, load function, and save function. This is used to
implement custom interface and behavior for certificates.

All other entities, test cases, and test data have been updated
accordingly. Some functions and variables have been renamed to
improve clarity and consistency.
2010-10-12 14:17:24 -04:00
Rob Crittenden
d2a9ccf407 Accept an incoming certificate as either DER or base64 in the service plugin.
The plugin required a base64-encoded certificate and always decoded it
before processing. This doesn't work with the UI because the json module
decodes binary values already.

Try to detect if the incoming value is base64-encoded and decode if
necessary. Finally, try to pull the cert apart to validate it. This will
tell us for sure that the data is a certificate, regardless of the format
it came in as.

ticket 348
2010-10-08 13:15:03 -04:00
Rob Crittenden
be6aa7039b Return non-zero when group membership change fails, no empty fail list.
There is no point (and it is confusing) to print an empty list when
modifying group membership fails, so suppress it.

If any membership change fails we should return non-zero.

tickets 271, 273, 274
2010-10-08 10:11:54 -04:00
Rob Crittenden
bed6e81935 If an HBAC category is 'all' don't allow individual objects to be added.
Basically, make 'all' mutually exclusive. This makes debugging lots easier.
If say usercat='all' there is no point adding specific users to the rule
because it will always apply to everyone.

ticket 164
2010-10-08 10:11:41 -04:00
Adam Young
9cb3a07aca policy and config
Population of the policy and entites tabs.
    DNS and ACI are broken due to PLugin issues
    Fix for entities without search
    Added new files to Makefile.am
    used rolegroup.js file as the start point, renamed to serverconfig.js
2010-10-07 14:51:02 -04:00
Pavel Zuna
8a2ea9a7e0 Fix inconsistent error message when deleting groups that don't exist.
Ticket #292
2010-10-06 10:01:59 -04:00
Pavel Zuna
6606b2a9c5 Rename user-lock and user-unlock to user-enable user-disable.
Ticket #165
2010-10-06 09:20:44 -04:00
Pavel Zuna
9832780414 Add 'continuous' mode to LDAPDelete. Fix *-del unit tests.
Ticket #321
2010-10-06 09:20:41 -04:00
Pavel Zuna
bf053652bc Generate additional positional arguments for baseldap commands from takes_args. 2010-10-06 09:20:38 -04:00
Jr Aquino
bfd2e383dc Added modifications to the sudorule plugin to reflect the schema update. 2010-10-05 21:37:59 -04:00
Adam Young
38490d35d3 phonenumbers
Added in params for phone number  types: phone, fax, mobile ,pager
2010-10-01 16:05:08 -04:00
Rob Crittenden
f906aaf376 Groups are now created as POSIX by default.
ticket 241
2010-10-01 14:16:36 -04:00
Rob Crittenden
aac7badb77 Remove reliance on the name 'admin' as a special user.
And move it to the group 'admins' instead. This way the admin user can
be removed/renamed.

ticket 197
2010-10-01 13:38:52 -04:00
Pavel Zuna
c106922c13 Add Delete capabilities to Search facet in the WebUI.
Ticket #206
2010-10-01 10:00:10 -04:00
Pavel Zuna
838c1f2c94 Add LDAPMultiQuery base class and make it the base of LDAPDelete.
In other words: make *-del commands accept 1 or more primary keys
of entries to be deleted.

Ticket #20
2010-10-01 10:00:01 -04:00
Rob Crittenden
b5fcfb1495 Fix sizelimit/timelimit options not working in user_find 2010-09-30 17:48:00 -04:00
Rob Crittenden
c298560a1e Handle an empty base_dn and no cn=ipaconfig in the ldap2 backend, fix migration.
We lacked good error messages if the user/group container you used doesn't
exist.

Add a --continue option so things can continue if you use a bad user/group
container. This has the side-effect of letting you migrate just users or
groups by using a bad container for the one you don't want.

Fix a Gettext() error when displaying the migrated password message.

ticket 289
2010-09-28 13:39:28 -04:00
Jr Aquino
af48654cbc Add plugins for Sudo Commands, Command Groups and Rules 2010-09-27 22:38:06 -04:00
Adam Young
c187702bfe I18N for web
Performing I18N completely on the server, to leverage the
existing gettext architecture.
Also, the browser does not have access to the Language header.

Added the additional po files for a set of required languages

conflict with install/static/ipa.js was resolved.

Note that the addition of the .po files in this patch is necessary.
In order to get Transifex support, we need to update the LINGUAS
file with the languages for which we want support.  If we don't
add the .po files in, they get automatically generated by the rpmbuild
process.  Our implementation of gettext has a bug in it (It might
be F13 thing) where the the Plurals line is not getting correctly
transformed, which causes a build failure.  However, since the
RPM would have the .po files  anyway, we should revision control
the ones we have, even if they are empty.

Fixed the Bug reporting url to the original value.
Corrected the Chartype encoding for UK
2010-09-27 13:30:55 -04:00
Rob Crittenden
ed56112023 Use the principal from the context in whoami.
ticket 227
2010-09-24 09:55:03 -04:00
Rob Crittenden
47f849ec21 Try to make topic help less confusing. Rename Related to Topic commands.
Also don't print the commands at the bottom if the plugin implements
only one command, like the passwd plugin.

ticket 105
2010-09-23 12:04:13 -04:00
Rob Crittenden
9fd7fedb76 Add an example for creating an HBAC service and service group.
Try to tie in the hbacsvc and hbacsvcgroup plugins better through an
example.

ticket 159
2010-09-23 11:59:14 -04:00