freeipa/ipalib/plugins
Nathaniel McCallum 98851256f9 Add support for managedBy to tokens
This also constitutes a rethinking of the token ACIs after the introduction
of SELFDN support.

Admins, as before, have full access to all token permissions.

Normal users have read/search/compare access to all of the non-secret data
for tokens assigned to them, whether managed by them or not. Users can add
tokens if, and only if, they will also manage this token.

Managers can also read/search/compare tokens they manage. Additionally,
they can write non-secret data to their managed tokens and delete them.

When a normal user self-creates a token (the default behavior), then
managedBy is automatically set. When an admin creates a token for another
user (or no owner is assigned at all), then managed by is not set. In this
second case, the token is effectively read-only for the assigned owner.

This behavior enables two important other behaviors. First, an admin can
create a hardware token and assign it to the user as a read-only token.
Second, when the user is deleted, only his self-managed tokens are deleted.
All other (read-only) tokens are instead orphaned. This permits the same
token object to be reasigned to another user without loss of any counter
data.

https://fedorahosted.org/freeipa/ticket/4228
https://fedorahosted.org/freeipa/ticket/4259

Reviewed-By: Jan Cholasta <jcholast@redhat.com>
2014-06-16 10:13:59 +02:00
..
__init__.py Change FreeIPA license to GPLv3+ 2010-12-20 17:19:53 -05:00
aci.py aci plugin: Fix internal error when ACIs are not readable 2014-05-29 16:22:37 +02:00
automember.py Make 'permission' the default bind type for managed permissions 2014-06-11 13:21:29 +02:00
automount.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
baseldap.py get_ancestors_primary_keys clone 2014-06-03 15:55:32 +02:00
batch.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
cert.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
config.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
delegation.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
dns.py Fix --ttl description for DNS zones 2014-06-12 09:57:58 +02:00
group.py Make sure member* attrs are always granted together in read permissions 2014-06-11 13:21:30 +02:00
hbacrule.py Make sure member* attrs are always granted together in read permissions 2014-06-11 13:21:30 +02:00
hbacsvc.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
hbacsvcgroup.py Make sure member* attrs are always granted together in read permissions 2014-06-11 13:21:30 +02:00
hbactest.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
host.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
hostgroup.py Make sure member* attrs are always granted together in read permissions 2014-06-11 13:21:30 +02:00
idrange.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
internal.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
kerberos.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
krbtpolicy.py Make 'permission' the default bind type for managed permissions 2014-06-11 13:21:29 +02:00
migration.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
misc.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
netgroup.py Make sure member* attrs are always granted together in read permissions 2014-06-11 13:21:30 +02:00
otptoken.py Add support for managedBy to tokens 2014-06-16 10:13:59 +02:00
passwd.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
permission.py Make sure member* attrs are always granted together in read permissions 2014-06-11 13:21:30 +02:00
ping.py Allow API plugin registration via a decorator 2013-08-14 12:08:27 +02:00
pkinit.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
privilege.py Make sure member* attrs are always granted together in read permissions 2014-06-11 13:21:30 +02:00
pwpolicy.py Make 'permission' the default bind type for managed permissions 2014-06-11 13:21:29 +02:00
radiusproxy.py Split long docstrings that were recently modified 2014-06-10 13:19:32 +02:00
realmdomains.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
role.py Make sure member* attrs are always granted together in read permissions 2014-06-11 13:21:30 +02:00
rpcclient.py Switch client to JSON-RPC 2013-11-26 16:59:59 +01:00
selfservice.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
selinuxusermap.py Make sure member* attrs are always granted together in read permissions 2014-06-11 13:21:30 +02:00
service.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
sudocmd.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
sudocmdgroup.py Make sure member* attrs are always granted together in read permissions 2014-06-11 13:21:30 +02:00
sudorule.py Make sure member* attrs are always granted together in read permissions 2014-06-11 13:21:30 +02:00
trust.py Update all remaining plugins to the new Registry API 2014-06-11 09:24:22 +02:00
user.py Add support for managedBy to tokens 2014-06-16 10:13:59 +02:00
virtual.py Internationalization for public errors 2012-09-03 18:16:12 +02:00