Re: [Freeipa-devel] [PATCHES] 0464-0466 Multivalued targetfilter

2014-02-20 Thread Petr Viktorin

On 02/20/2014 01:06 PM, Martin Kosek wrote:

On 02/20/2014 12:57 PM, Petr Viktorin wrote:

On 02/19/2014 05:32 PM, Martin Kosek wrote:

On 02/19/2014 10:44 AM, Petr Viktorin wrote:

On 02/18/2014 08:02 PM, Petr Viktorin wrote:

On 02/18/2014 09:42 AM, Martin Kosek wrote:

On 02/13/2014 01:12 PM, Petr Viktorin wrote:

Hello,
These patches fix https://fedorahosted.org/freeipa/ticket/4074
Design:
http://www.freeipa.org/page/V3/Multivalued_target_filters_in_permissions


Since --type, affects only targetfilter values in the form
"(objectclass=...)"
and leaves others alone, and in the -mod command we don't fetch the
existing
entry until the pre_callback, I had to put the adds/removes in the
context. I
don't think the approach is too terrible given the limitations.


464:

1) Internal Error:

# ipa permission-mod can_write2 --filter='foo=bar'
ipa: ERROR: an internal error has occurred


Thanks for the catch! Fixed & added to tests.


2) ACI target filter

I would relabel targetfilter from "ACI target filter" to "Target
filter" to
make it consistent with other ACI attributes. We are sort of hiding
there are
any underlying ACIs anyway...


Fixed.


3) I am now thinking about the behavior of --memberof and --filter
options and
how they interact. It looks OK except for the case when I set filter
to None:


The same would happen when setting --filter to any other value(s) that
don't include existing memberOf filters.


# ipa permission-mod can_write2 --memberof=bar

Modified permission "can_write2"

 Permission name: can_write2
 Permissions: write
 Effective attributes: description
 Bind rule type: permission
 Subtree: dc=example,dc=com
 ACI target filter: (foo=bar),

(memberOf=cn=bar,cn=groups,cn=accounts,dc=example,dc=com)
 Member of group: bar
# ipa permission-mod can_write2 --filter=

Modified permission "can_write2"

 Permission name: can_write2
 Permissions: write
 Effective attributes: description
 Bind rule type: permission
 Subtree: dc=example,dc=com

Then both memberOf and filter is erased. Are we ok with that?
Shouldn't we keep
memberOf part until that is set to None? I am not insisting, just
trying to
discuss the best behavior.


Memberof affects the filter; this is even pointed out in --help output.
The alternative would be to make --filter= exclude filters affected by
other options, which I think would be even more confusing.
Keep in mind --type sets (objectclass=...) filters in exactly the same
way as --memberof works for (memberof=...).
The --memberof, --targetgroup, --type options are just shortcuts for
setting other permission attributes. I'm hoping we can get this message
across, in --help, and in the docs, well enough to reduce the confusion.


465: I know this was already discussed previously, but I am now having
second
thoughts - should we use posixAccount as THE objectclass for user
targetfilter?

# ipa permission-add can_write --permissions write --attrs=description
--type=user

Added permission "can_write"

 Permission name: can_write
 Permissions: write
 Effective attributes: description
 Bind rule type: permission
 Subtree: cn=users,cn=accounts,dc=example,dc=com
 ACI target filter: (objectclass=posixaccount)
 Type: user

What if we add system users at some point which would miss the
posixaccount
objectclass? Wouldn't it be better to use the inetOrgPerson structural
objectclass instead of posixAccount? Simo or Ludwig, any opinion on this?


I'm not opposed.
(I don't think it should block this patchset though. We'll have to add
canonical objectclasses to all the types that don't currently have them.
Deciding it for `user` can be a part of that effort.)


Apologies, I've sent a slightly wrong version of the tests. Here's the fixed
patchset.



Thanks. New check works fine, but the attribute name in the error message seems
inconsistent:

# ipa permission-mod can_write --filter=foo=bar
ipa: ERROR: invalid 'filter': must be enclosed in parentheses

# ipa permission-mod can_write --filter="(foo=bar))"
ipa: ERROR: invalid 'ipapermtargetfilter': Bad search filter

If you fix that, it's ACK for all.

Martin



It turns out this is a deeper issue; for the time being I'd rather defer it for
more discussion & refactoring than hack around it.

https://fedorahosted.org/freeipa/ticket/4183



Ok, agreed. ACK to the original patches then.

Martin



Thanks, pushed to master: 0f1e13761993cdc77a573a68686723fa816ce5a9

--
PetrĀ³

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


Re: [Freeipa-devel] [PATCHES] 0464-0466 Multivalued targetfilter

2014-02-20 Thread Martin Kosek
On 02/20/2014 12:57 PM, Petr Viktorin wrote:
> On 02/19/2014 05:32 PM, Martin Kosek wrote:
>> On 02/19/2014 10:44 AM, Petr Viktorin wrote:
>>> On 02/18/2014 08:02 PM, Petr Viktorin wrote:
 On 02/18/2014 09:42 AM, Martin Kosek wrote:
> On 02/13/2014 01:12 PM, Petr Viktorin wrote:
>> Hello,
>> These patches fix https://fedorahosted.org/freeipa/ticket/4074
>> Design:
>> http://www.freeipa.org/page/V3/Multivalued_target_filters_in_permissions
>>
>>
>> Since --type, affects only targetfilter values in the form
>> "(objectclass=...)"
>> and leaves others alone, and in the -mod command we don't fetch the
>> existing
>> entry until the pre_callback, I had to put the adds/removes in the
>> context. I
>> don't think the approach is too terrible given the limitations.
>
> 464:
>
> 1) Internal Error:
>
> # ipa permission-mod can_write2 --filter='foo=bar'
> ipa: ERROR: an internal error has occurred

 Thanks for the catch! Fixed & added to tests.

> 2) ACI target filter
>
> I would relabel targetfilter from "ACI target filter" to "Target
> filter" to
> make it consistent with other ACI attributes. We are sort of hiding
> there are
> any underlying ACIs anyway...

 Fixed.

> 3) I am now thinking about the behavior of --memberof and --filter
> options and
> how they interact. It looks OK except for the case when I set filter
> to None:

 The same would happen when setting --filter to any other value(s) that
 don't include existing memberOf filters.

> # ipa permission-mod can_write2 --memberof=bar
> 
> Modified permission "can_write2"
> 
> Permission name: can_write2
> Permissions: write
> Effective attributes: description
> Bind rule type: permission
> Subtree: dc=example,dc=com
> ACI target filter: (foo=bar),
>
> (memberOf=cn=bar,cn=groups,cn=accounts,dc=example,dc=com)
> Member of group: bar
> # ipa permission-mod can_write2 --filter=
> 
> Modified permission "can_write2"
> 
> Permission name: can_write2
> Permissions: write
> Effective attributes: description
> Bind rule type: permission
> Subtree: dc=example,dc=com
>
> Then both memberOf and filter is erased. Are we ok with that?
> Shouldn't we keep
> memberOf part until that is set to None? I am not insisting, just
> trying to
> discuss the best behavior.

 Memberof affects the filter; this is even pointed out in --help output.
 The alternative would be to make --filter= exclude filters affected by
 other options, which I think would be even more confusing.
 Keep in mind --type sets (objectclass=...) filters in exactly the same
 way as --memberof works for (memberof=...).
 The --memberof, --targetgroup, --type options are just shortcuts for
 setting other permission attributes. I'm hoping we can get this message
 across, in --help, and in the docs, well enough to reduce the confusion.

> 465: I know this was already discussed previously, but I am now having
> second
> thoughts - should we use posixAccount as THE objectclass for user
> targetfilter?
>
> # ipa permission-add can_write --permissions write --attrs=description
> --type=user
> 
> Added permission "can_write"
> 
> Permission name: can_write
> Permissions: write
> Effective attributes: description
> Bind rule type: permission
> Subtree: cn=users,cn=accounts,dc=example,dc=com
> ACI target filter: (objectclass=posixaccount)
> Type: user
>
> What if we add system users at some point which would miss the
> posixaccount
> objectclass? Wouldn't it be better to use the inetOrgPerson structural
> objectclass instead of posixAccount? Simo or Ludwig, any opinion on this?

 I'm not opposed.
 (I don't think it should block this patchset though. We'll have to add
 canonical objectclasses to all the types that don't currently have them.
 Deciding it for `user` can be a part of that effort.)
>>>
>>> Apologies, I've sent a slightly wrong version of the tests. Here's the fixed
>>> patchset.
>>>
>>
>> Thanks. New check works fine, but the attribute name in the error message 
>> seems
>> inconsistent:
>>
>> # ipa permission-mod can_write --filter=foo=bar
>> ipa: ERROR: invalid 'filter': must be enclosed in parentheses
>>
>> # ipa permission-mod can_write --filter="(foo=bar))"
>> ipa: ERROR: invalid 'ipapermtargetfilter': Bad search filter
>>
>> If you fix that, it's ACK for all.
>>
>> Martin
>>
> 
> It turns out this is a deeper issue; for the ti

Re: [Freeipa-devel] [PATCHES] 0464-0466 Multivalued targetfilter

2014-02-20 Thread Petr Viktorin

On 02/19/2014 05:32 PM, Martin Kosek wrote:

On 02/19/2014 10:44 AM, Petr Viktorin wrote:

On 02/18/2014 08:02 PM, Petr Viktorin wrote:

On 02/18/2014 09:42 AM, Martin Kosek wrote:

On 02/13/2014 01:12 PM, Petr Viktorin wrote:

Hello,
These patches fix https://fedorahosted.org/freeipa/ticket/4074
Design:
http://www.freeipa.org/page/V3/Multivalued_target_filters_in_permissions


Since --type, affects only targetfilter values in the form
"(objectclass=...)"
and leaves others alone, and in the -mod command we don't fetch the
existing
entry until the pre_callback, I had to put the adds/removes in the
context. I
don't think the approach is too terrible given the limitations.


464:

1) Internal Error:

# ipa permission-mod can_write2 --filter='foo=bar'
ipa: ERROR: an internal error has occurred


Thanks for the catch! Fixed & added to tests.


2) ACI target filter

I would relabel targetfilter from "ACI target filter" to "Target
filter" to
make it consistent with other ACI attributes. We are sort of hiding
there are
any underlying ACIs anyway...


Fixed.


3) I am now thinking about the behavior of --memberof and --filter
options and
how they interact. It looks OK except for the case when I set filter
to None:


The same would happen when setting --filter to any other value(s) that
don't include existing memberOf filters.


# ipa permission-mod can_write2 --memberof=bar

Modified permission "can_write2"

Permission name: can_write2
Permissions: write
Effective attributes: description
Bind rule type: permission
Subtree: dc=example,dc=com
ACI target filter: (foo=bar),

(memberOf=cn=bar,cn=groups,cn=accounts,dc=example,dc=com)
Member of group: bar
# ipa permission-mod can_write2 --filter=

Modified permission "can_write2"

Permission name: can_write2
Permissions: write
Effective attributes: description
Bind rule type: permission
Subtree: dc=example,dc=com

Then both memberOf and filter is erased. Are we ok with that?
Shouldn't we keep
memberOf part until that is set to None? I am not insisting, just
trying to
discuss the best behavior.


Memberof affects the filter; this is even pointed out in --help output.
The alternative would be to make --filter= exclude filters affected by
other options, which I think would be even more confusing.
Keep in mind --type sets (objectclass=...) filters in exactly the same
way as --memberof works for (memberof=...).
The --memberof, --targetgroup, --type options are just shortcuts for
setting other permission attributes. I'm hoping we can get this message
across, in --help, and in the docs, well enough to reduce the confusion.


465: I know this was already discussed previously, but I am now having
second
thoughts - should we use posixAccount as THE objectclass for user
targetfilter?

# ipa permission-add can_write --permissions write --attrs=description
--type=user

Added permission "can_write"

Permission name: can_write
Permissions: write
Effective attributes: description
Bind rule type: permission
Subtree: cn=users,cn=accounts,dc=example,dc=com
ACI target filter: (objectclass=posixaccount)
Type: user

What if we add system users at some point which would miss the
posixaccount
objectclass? Wouldn't it be better to use the inetOrgPerson structural
objectclass instead of posixAccount? Simo or Ludwig, any opinion on this?


I'm not opposed.
(I don't think it should block this patchset though. We'll have to add
canonical objectclasses to all the types that don't currently have them.
Deciding it for `user` can be a part of that effort.)


Apologies, I've sent a slightly wrong version of the tests. Here's the fixed
patchset.



Thanks. New check works fine, but the attribute name in the error message seems
inconsistent:

# ipa permission-mod can_write --filter=foo=bar
ipa: ERROR: invalid 'filter': must be enclosed in parentheses

# ipa permission-mod can_write --filter="(foo=bar))"
ipa: ERROR: invalid 'ipapermtargetfilter': Bad search filter

If you fix that, it's ACK for all.

Martin



It turns out this is a deeper issue; for the time being I'd rather defer 
it for more discussion & refactoring than hack around it.


https://fedorahosted.org/freeipa/ticket/4183

--
PetrĀ³

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


Re: [Freeipa-devel] [PATCHES] 0464-0466 Multivalued targetfilter

2014-02-19 Thread Martin Kosek
On 02/19/2014 10:44 AM, Petr Viktorin wrote:
> On 02/18/2014 08:02 PM, Petr Viktorin wrote:
>> On 02/18/2014 09:42 AM, Martin Kosek wrote:
>>> On 02/13/2014 01:12 PM, Petr Viktorin wrote:
 Hello,
 These patches fix https://fedorahosted.org/freeipa/ticket/4074
 Design:
 http://www.freeipa.org/page/V3/Multivalued_target_filters_in_permissions


 Since --type, affects only targetfilter values in the form
 "(objectclass=...)"
 and leaves others alone, and in the -mod command we don't fetch the
 existing
 entry until the pre_callback, I had to put the adds/removes in the
 context. I
 don't think the approach is too terrible given the limitations.
>>>
>>> 464:
>>>
>>> 1) Internal Error:
>>>
>>> # ipa permission-mod can_write2 --filter='foo=bar'
>>> ipa: ERROR: an internal error has occurred
>>
>> Thanks for the catch! Fixed & added to tests.
>>
>>> 2) ACI target filter
>>>
>>> I would relabel targetfilter from "ACI target filter" to "Target
>>> filter" to
>>> make it consistent with other ACI attributes. We are sort of hiding
>>> there are
>>> any underlying ACIs anyway...
>>
>> Fixed.
>>
>>> 3) I am now thinking about the behavior of --memberof and --filter
>>> options and
>>> how they interact. It looks OK except for the case when I set filter
>>> to None:
>>
>> The same would happen when setting --filter to any other value(s) that
>> don't include existing memberOf filters.
>>
>>> # ipa permission-mod can_write2 --memberof=bar
>>> 
>>> Modified permission "can_write2"
>>> 
>>>Permission name: can_write2
>>>Permissions: write
>>>Effective attributes: description
>>>Bind rule type: permission
>>>Subtree: dc=example,dc=com
>>>ACI target filter: (foo=bar),
>>>
>>> (memberOf=cn=bar,cn=groups,cn=accounts,dc=example,dc=com)
>>>Member of group: bar
>>> # ipa permission-mod can_write2 --filter=
>>> 
>>> Modified permission "can_write2"
>>> 
>>>Permission name: can_write2
>>>Permissions: write
>>>Effective attributes: description
>>>Bind rule type: permission
>>>Subtree: dc=example,dc=com
>>>
>>> Then both memberOf and filter is erased. Are we ok with that?
>>> Shouldn't we keep
>>> memberOf part until that is set to None? I am not insisting, just
>>> trying to
>>> discuss the best behavior.
>>
>> Memberof affects the filter; this is even pointed out in --help output.
>> The alternative would be to make --filter= exclude filters affected by
>> other options, which I think would be even more confusing.
>> Keep in mind --type sets (objectclass=...) filters in exactly the same
>> way as --memberof works for (memberof=...).
>> The --memberof, --targetgroup, --type options are just shortcuts for
>> setting other permission attributes. I'm hoping we can get this message
>> across, in --help, and in the docs, well enough to reduce the confusion.
>>
>>> 465: I know this was already discussed previously, but I am now having
>>> second
>>> thoughts - should we use posixAccount as THE objectclass for user
>>> targetfilter?
>>>
>>> # ipa permission-add can_write --permissions write --attrs=description
>>> --type=user
>>> 
>>> Added permission "can_write"
>>> 
>>>Permission name: can_write
>>>Permissions: write
>>>Effective attributes: description
>>>Bind rule type: permission
>>>Subtree: cn=users,cn=accounts,dc=example,dc=com
>>>ACI target filter: (objectclass=posixaccount)
>>>Type: user
>>>
>>> What if we add system users at some point which would miss the
>>> posixaccount
>>> objectclass? Wouldn't it be better to use the inetOrgPerson structural
>>> objectclass instead of posixAccount? Simo or Ludwig, any opinion on this?
>>
>> I'm not opposed.
>> (I don't think it should block this patchset though. We'll have to add
>> canonical objectclasses to all the types that don't currently have them.
>> Deciding it for `user` can be a part of that effort.)
> 
> Apologies, I've sent a slightly wrong version of the tests. Here's the fixed
> patchset.
> 

Thanks. New check works fine, but the attribute name in the error message seems
inconsistent:

# ipa permission-mod can_write --filter=foo=bar
ipa: ERROR: invalid 'filter': must be enclosed in parentheses

# ipa permission-mod can_write --filter="(foo=bar))"
ipa: ERROR: invalid 'ipapermtargetfilter': Bad search filter

If you fix that, it's ACK for all.

Martin

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


Re: [Freeipa-devel] [PATCHES] 0464-0466 Multivalued targetfilter

2014-02-18 Thread Martin Kosek
On 02/13/2014 01:12 PM, Petr Viktorin wrote:
> Hello,
> These patches fix https://fedorahosted.org/freeipa/ticket/4074
> Design: 
> http://www.freeipa.org/page/V3/Multivalued_target_filters_in_permissions
> 
> 
> Since --type, affects only targetfilter values in the form "(objectclass=...)"
> and leaves others alone, and in the -mod command we don't fetch the existing
> entry until the pre_callback, I had to put the adds/removes in the context. I
> don't think the approach is too terrible given the limitations.

464:

1) Internal Error:

# ipa permission-mod can_write2 --filter='foo=bar'
ipa: ERROR: an internal error has occurred

2) ACI target filter

I would relabel targetfilter from "ACI target filter" to "Target filter" to
make it consistent with other ACI attributes. We are sort of hiding there are
any underlying ACIs anyway...

3) I am now thinking about the behavior of --memberof and --filter options and
how they interact. It looks OK except for the case when I set filter to None:

# ipa permission-mod can_write2 --memberof=bar

Modified permission "can_write2"

  Permission name: can_write2
  Permissions: write
  Effective attributes: description
  Bind rule type: permission
  Subtree: dc=example,dc=com
  ACI target filter: (foo=bar),
 (memberOf=cn=bar,cn=groups,cn=accounts,dc=example,dc=com)
  Member of group: bar
# ipa permission-mod can_write2 --filter=

Modified permission "can_write2"

  Permission name: can_write2
  Permissions: write
  Effective attributes: description
  Bind rule type: permission
  Subtree: dc=example,dc=com

Then both memberOf and filter is erased. Are we ok with that? Shouldn't we keep
memberOf part until that is set to None? I am not insisting, just trying to
discuss the best behavior.

465: I know this was already discussed previously, but I am now having second
thoughts - should we use posixAccount as THE objectclass for user targetfilter?

# ipa permission-add can_write --permissions write --attrs=description 
--type=user

Added permission "can_write"

  Permission name: can_write
  Permissions: write
  Effective attributes: description
  Bind rule type: permission
  Subtree: cn=users,cn=accounts,dc=example,dc=com
  ACI target filter: (objectclass=posixaccount)
  Type: user

What if we add system users at some point which would miss the posixaccount
objectclass? Wouldn't it be better to use the inetOrgPerson structural
objectclass instead of posixAccount? Simo or Ludwig, any opinion on this?

Otherwise the patches worked fine for me.

Martin

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel