[JDEV] On Privacy/Invisibility (aka: Buddy Permit/Deny)

2002-03-18 Thread Jean Louis Seguineau

Jim,

Well, my idea was that this kind of xml would be interpreted as

1- I, as the query originating user, don't want to have anything to do with
[EMAIL PROTECTED] , hence the "deny" without any kind of sub elements in the
 tag,
2- [EMAIL PROTECTED] will be denied to receive/send any  and  (as
specified by the tags contained in the  element) from the originating
user (the one that is seting-up the list)
3- [EMAIL PROTECTED] will be allowed to receive/send  (as specified
by the  tag contained in the  element) to the originating
user.

If filtering specific namespaces comes into the picture, I gather the
easiest way to transcribe this kind of constraint would be to include 
tags inside the  tag, as most namespaces in Jabber are used by info
queries. A possible use could be

 
   
 
   
 jabber:iq:browse
 jabber:iq:oob


  


which could be interpreted as [EMAIL PROTECTED] is denied to receive/send any
 packets that pertain to the jabber:iq:browse and jabber:iq:oob
namespaces, and may receive/send other iq packet to the originating user.

This is obviously not a real life case, just a way to show how the xml tags
would look like.

As to why I propose this xml syntax rather than modifying the 
element, I tend to agree with Peter in that we should keep the protocol from
going in too many directions. The  element doesn't provide any
support for attributes outside the xmlns. To keep some kind of consitency in
the way we build new xml snippets, it is probably best to achieve the
requested result by specifying differently the inner elements, like the
 tag.

Now the way this would work in practice is a matter of :
1- agreement of what the defaul behaviour must be
2- implementation at the server level.

A possible combined white/black list could be to say that anybody not in the
blacklist is automatically "allowed". Some others may like the oposite,
where anything which is not in the whitelist is automatically black listed,
and probably the best (IMHO) appraoch would be to have the choice of the
default server behaviour by setting some switch in the configuration file
(note that this last approach would certainly require that the client be
able to query what the defaul behaviour of the server is).

As to the way this should be implemented at the server level is at this
stage a bit premature. But I would think that having this information
arranged as "attributes" of a user profile that would be interpreted by a
rule engine could be a way to go.

Coming to the relation that may exists between the privacy namespace and the
"invisible" attribute in the presence tag, my understanding is that the
"invisible" state is a transient user status, i.e. something that is only
valid for the duration of it being set in a user session, whereas the
privacy namespace manages a persistent state that should be enforced every
time the user logs in and create a user session. Again what the server
should do is a matter of agreement, but I would be thinking that if you have
denied somebody to receive your presence information at the level of the
privacy namespace this will take precedence on any subsequent change to
"invisible" status, as the server should not relay that presence info
anyway.

Does it make sense?

Jean-Louis

> Message: 7
> To: [EMAIL PROTECTED]
> Subject: Re: [JDEV] On Privacy/Invisibility (aka: Buddy Permit/Deny)
> Date: Sun, 17 Mar 2002 10:50:59 -0500 (EST)
> From: [EMAIL PROTECTED] (Jim Seymour)
> Reply-To: [EMAIL PROTECTED]
>
> "Jean Louis Seguineau" <[EMAIL PROTECTED]> wrote:
> >
> [snip]
> >  What I meant was to use
> > something like:
> >
> > 
> >   
> > 
> > 
> >   
> >   
> > 
> > 
> >   
> > 
> >   
> > 
> [snip]
>
> Forgive me if my comments are nonsense.  I'm relatively new at Jabber
> and XML.
>
> It seems to me the above doesn't work.  How would a combined deny/allow
> list work in practice?  Specifically: what should the server do in the
> presence of both, but the absence of a particular JID on either list?
> Allow?  Deny?  And in the above scenario, what should the server do?
> First JID match wins or last JID match over-rides?
>
> Here are my thoughts, such as they are and keeping the caveat I
> mentioned above in mind.
>
> First of all: I believe "whitelisting" support needs to happen at the
> start.  Particularly if the goal is to provide support similar to that
> of AIM.  What I'm mainly working on is Jabber support in Gaim, so both
> "blacklisting" and "whitelisting" capability would make things
> considerably easier for consistency's sake.
>
> I'm wondering if something more like this wouldn'

Re: [JDEV] On Privacy/Invisibility (aka: Buddy Permit/Deny)

2002-03-17 Thread Jim Seymour

"Jean Louis Seguineau" <[EMAIL PROTECTED]> wrote:
> 
[snip]
>  What I meant was to use
> something like:
> 
> 
>   
> 
> 
>   
>   
> 
> 
>   
> 
>   
> 
[snip]

Forgive me if my comments are nonsense.  I'm relatively new at Jabber
and XML.

It seems to me the above doesn't work.  How would a combined deny/allow
list work in practice?  Specifically: what should the server do in the
presence of both, but the absence of a particular JID on either list?
Allow?  Deny?  And in the above scenario, what should the server do?
First JID match wins or last JID match over-rides?

Here are my thoughts, such as they are and keeping the caveat I
mentioned above in mind.

First of all: I believe "whitelisting" support needs to happen at the
start.  Particularly if the goal is to provide support similar to that
of AIM.  What I'm mainly working on is Jabber support in Gaim, so both
"blacklisting" and "whitelisting" capability would make things
considerably easier for consistency's sake.

I'm wondering if something more like this wouldn't work better
(warning: possibly completely brain-dead XML follows):

 
  
   
   

   
  


Which would provide for:

 
  
   
   
  


Then an empty "deny" list would be "permit everybody" and an empty
"permit" list would be a "deny everybody".

Admittedly: I'm not sure how this would work in conjunction with
"Client Requests to Filter a Specific IQ Namespace" (in the proposal).

I'm wondering what the thoughts are wrt interaction between "privacy,"
subscription requests, presence and the new "invisible" stuff in 1.4.2?
Would privacy "trump" these?  In other words:  if a JID was denied (or
not allowed--same thing): would/should the server automatically not
propagate subscription requests from the denied JID to the client?
And/or should it not propagate presence info back to the denied JID?


Regards,
Jim
-- 
Jim Seymour  | PGP Public Key available at:
[EMAIL PROTECTED] | http://www.uk.pgp.net/pgpnet/pks-commands.html
http://jimsun.LinxNet.com|

___
jdev mailing list
[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev



[JDEV] On Privacy/Invisibility (aka: Buddy Permit/Deny)

2002-03-12 Thread Jean Louis Seguineau

Peter,

I think we are on the same page :)
My comment was not to change the use of the  tag (which keep some
consistency with other constructs), but only the type attribute of that same
tag (what you expressed in your second point).  What I meant was to use
something like:


  


  
  


  

  


where the type attribute of the  tag which is only presented as
"block" in the JEP becomes either "deny" for black list and "allow" for
white list. This way, we should be able to bring all privacy management
under a single umbrella, with an adequate granularity.

Jean-Louis



> Message: 12
> From: "Peter Millard" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Subject: Re: [JDEV] On Privacy/Invisibility (aka: Buddy Permit/Deny)
> Date: Tue, 12 Mar 2002 09:38:39 -0700
> Reply-To: [EMAIL PROTECTED]
>
> I used  as the tag for a few reasons:
>
> 1) It keeps consistancy w/ the roster protocol.
> 2) It allows the type attribute to be used for: allow|deny|remove. Using
> allow and deny as the element names would mean we'd have to come up w/ a
new
> way of removing items from the list.
>
> Otherwise, I find that often this is just a XML syntax "religious" issue
:)
> If we just needed allow & deny, I'd agree to use the element names. But
the
> removal issue is the big reason I went with a generic  tag.
>
> Peter M.
>
> - Original Message -
> From: "Jean Louis Seguineau" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Tuesday, March 12, 2002 8:58 AM
> Subject: Re: [JDEV] On Privacy/Invisibility (aka: Buddy Permit/Deny)
>
>
> > Peter
> >
> > After looking again at JEP-0016: Server-Based Privacy Rules
> > (jabber:iq:privacy), wouldn't it be interresting to use "allow"/"deny"
as
> > type instead of "block" in the item tag. This way the namespace would be
> > able to manage both the blacklist and the whitelist in a single process.
> >
> > Jean-Louis
>


___
jdev mailing list
[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev



Re: [JDEV] On Privacy/Invisibility (aka: Buddy Permit/Deny)

2002-03-12 Thread Peter Millard

I used  as the tag for a few reasons:

1) It keeps consistancy w/ the roster protocol.
2) It allows the type attribute to be used for: allow|deny|remove. Using
allow and deny as the element names would mean we'd have to come up w/ a new
way of removing items from the list.

Otherwise, I find that often this is just a XML syntax "religious" issue :)
If we just needed allow & deny, I'd agree to use the element names. But the
removal issue is the big reason I went with a generic  tag.

Peter M.

- Original Message -
From: "Jean Louis Seguineau" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, March 12, 2002 8:58 AM
Subject: Re: [JDEV] On Privacy/Invisibility (aka: Buddy Permit/Deny)


> Peter
>
> After looking again at JEP-0016: Server-Based Privacy Rules
> (jabber:iq:privacy), wouldn't it be interresting to use "allow"/"deny" as
> type instead of "block" in the item tag. This way the namespace would be
> able to manage both the blacklist and the whitelist in a single process.
>
> Jean-Louis


___
jdev mailing list
[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev



Re: [JDEV] On Privacy/Invisibility (aka: Buddy Permit/Deny)

2002-03-12 Thread Jean Louis Seguineau

Peter

After looking again at JEP-0016: Server-Based Privacy Rules
(jabber:iq:privacy), wouldn't it be interresting to use "allow"/"deny" as
type instead of "block" in the item tag. This way the namespace would be
able to manage both the blacklist and the whitelist in a single process.

Jean-Louis


> From: "Peter Millard" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Subject: Re: [JDEV] On Privacy/Invisibility (aka: Buddy Permit/Deny)
> Date: Mon, 11 Mar 2002 11:00:50 -0700
> Reply-To: [EMAIL PROTECTED]
>
> Jim -
>
> For those of us not some intimately familiar with the AIM client, perhaps
> you could explain in more "jabber-ish" terms what these modes mean. Are
they
> "presence modes" (ie, determining who gets you presence info) or "message
> modes" where you can determine who can send you messages??
>
> More comments inline below:
>
> - Original Message -
> From: "Jim Seymour" <[EMAIL PROTECTED]>
> [STUFF MUNCHED]
> > With server release 1.4.1, I found this model difficult to achieve, at
> > best.  (At least not w/o maintaining a lot of local state information.
> > E.g.: who you've denied in the past so if you later want to permit
> > them, you can make the appropriate presence/roster changes.)
> >
> > This JEP was brought to my attention
> >
> > JEP-0016: Server-Based Privacy Rules (jabber:iq:privacy)
> > http://www.jabber.org/jeps/jep-0016.html
> >
> > I had considered submitting comments to the author.  (For example:
> > "white- listing" needs to go in right at the start, IMHO.)  In the
> > mean-time, server 1.4.2 has been released.  In the docs for that I find
> >
> > JEP-0018: Presence
> > http://www.jabber.org/jeps/jep-0018.html
> >
> > This seems to duplicate/trump/obsolete/whatever, JEP-0016, in a way?
>
> Not at all.. Blacklisting + Whitelisting are VERY different from invisible
> mode. JEP 16 deals with how clients can control what packets the server
> (jabberd) delivers to it. JEP 18 deals with how the user can control WHO
can
> see them online (their availability information).
>
> > As you might imagine, I'm wondering what to think of all this.
> >
> > Lastly, in any event, it seems to me the client code will have to know
> > what version of the server it's dealing with so it can know what is
> > supported and what is not.  (E.g.: 1.4.1 won't support "invisible,"
> > 1.4.2 does.)  Is there a way to fetch the server's release level?
>
> Servers that do NOT support invisible mode will return a presence error.
> This is pretty easy for the client to trap and then send a normal
> "available" packet and notify the user that the server doesn't support
> invisible mode. You can try this against any 1.4.1 or JCS install.
>
> Hope this helps.
>
> Peter M.

___
jdev mailing list
[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev



Re: [JDEV] On Privacy/Invisibility (aka: Buddy Permit/Deny)

2002-03-11 Thread Jim Seymour

"Peter Millard" <[EMAIL PROTECTED]> wrote:
> 
> Jim -
> 
> For those of us not some intimately familiar with the AIM client, perhaps
> you could explain in more "jabber-ish" terms what these modes mean. Are they
> "presence modes" (ie, determining who gets you presence info) or "message
> modes" where you can determine who can send you messages??

I *think* they're both.  I'm not much familiar with AIM clients
myself.  I do know that when you deny or not-allow someone, they 
can no longer "see" you.

> 
> More comments inline below:

Likewise :-)

> 
> - Original Message -
> From: "Jim Seymour" <[EMAIL PROTECTED]>
[snip]
> >
> > This seems to duplicate/trump/obsolete/whatever, JEP-0016, in a way?
> 
> Not at all.. Blacklisting + Whitelisting are VERY different from invisible
> mode. JEP 16 deals with how clients can control what packets the server
> (jabberd) delivers to it. JEP 18 deals with how the user can control WHO can
> see them online (their availability information).

Ok.  (I may have more thoughts on this later.  I need go cogitate on it
a bit.)

> 
> > As you might imagine, I'm wondering what to think of all this.
> >
> > Lastly, in any event, it seems to me the client code will have to know
> > what version of the server it's dealing with so it can know what is
> > supported and what is not.  (E.g.: 1.4.1 won't support "invisible,"
> > 1.4.2 does.)  Is there a way to fetch the server's release level?
> 
> Servers that do NOT support invisible mode will return a presence error.
> This is pretty easy for the client to trap and then send a normal
> "available" packet and notify the user that the server doesn't support
> invisible mode. You can try this against any 1.4.1 or JCS install.

I was thinking of just not "trying it" on servers that don't support
it.  Call it "bandwidth conservation" ;-).

> 
> Hope this helps.

It does.  Thanks.


Regards,
Jim
-- 
Jim Seymour  | PGP Public Key available at:
[EMAIL PROTECTED] | http://www.uk.pgp.net/pgpnet/pks-commands.html
http://jimsun.LinxNet.com|
___
jdev mailing list
[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev



Re: [JDEV] On Privacy/Invisibility (aka: Buddy Permit/Deny)

2002-03-11 Thread Peter Millard

Jim -

For those of us not some intimately familiar with the AIM client, perhaps
you could explain in more "jabber-ish" terms what these modes mean. Are they
"presence modes" (ie, determining who gets you presence info) or "message
modes" where you can determine who can send you messages??

More comments inline below:

- Original Message -
From: "Jim Seymour" <[EMAIL PROTECTED]>
[STUFF MUNCHED]
> With server release 1.4.1, I found this model difficult to achieve, at
> best.  (At least not w/o maintaining a lot of local state information.
> E.g.: who you've denied in the past so if you later want to permit
> them, you can make the appropriate presence/roster changes.)
>
> This JEP was brought to my attention
>
> JEP-0016: Server-Based Privacy Rules (jabber:iq:privacy)
> http://www.jabber.org/jeps/jep-0016.html
>
> I had considered submitting comments to the author.  (For example:
> "white- listing" needs to go in right at the start, IMHO.)  In the
> mean-time, server 1.4.2 has been released.  In the docs for that I find
>
> JEP-0018: Presence
> http://www.jabber.org/jeps/jep-0018.html
>
> This seems to duplicate/trump/obsolete/whatever, JEP-0016, in a way?

Not at all.. Blacklisting + Whitelisting are VERY different from invisible
mode. JEP 16 deals with how clients can control what packets the server
(jabberd) delivers to it. JEP 18 deals with how the user can control WHO can
see them online (their availability information).

> As you might imagine, I'm wondering what to think of all this.
>
> Lastly, in any event, it seems to me the client code will have to know
> what version of the server it's dealing with so it can know what is
> supported and what is not.  (E.g.: 1.4.1 won't support "invisible,"
> 1.4.2 does.)  Is there a way to fetch the server's release level?

Servers that do NOT support invisible mode will return a presence error.
This is pretty easy for the client to trap and then send a normal
"available" packet and notify the user that the server doesn't support
invisible mode. You can try this against any 1.4.1 or JCS install.

Hope this helps.

Peter M.


___
jdev mailing list
[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev



Re: [JDEV] On Privacy/Invisibility (aka: Buddy Permit/Deny)

2002-03-11 Thread DJ Adams

On Mon, Mar 11, 2002 at 08:46:28AM -0500, Jim Seymour wrote:
> Lastly, in any event, it seems to me the client code will have to know
> what version of the server it's dealing with so it can know what is
> supported and what is not.  (E.g.: 1.4.1 won't support "invisible,"
> 1.4.2 does.)  Is there a way to fetch the server's release level?

Sending a query like this


  


will get you the version. Of the server. Well, of the JSM, which is
what you want.[1]

cheers
dj

[1]hendiadys is alive and well ;-)
___
jdev mailing list
[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev



[JDEV] On Privacy/Invisibility (aka: Buddy Permit/Deny)

2002-03-11 Thread Jim Seymour

Hi All,

I've been working on the Jabber plugin for Gaim.  One of the features
requested is support for "AIM-style" buddy permit/deny.  As I
understand it, the way AIM handles this is that you set one of four
"modes": permit all, deny all, permit some or deny some.  For the
latter two: you also send along the list of those permitted or denied.

With server release 1.4.1, I found this model difficult to achieve, at
best.  (At least not w/o maintaining a lot of local state information.
E.g.: who you've denied in the past so if you later want to permit
them, you can make the appropriate presence/roster changes.)

This JEP was brought to my attention

JEP-0016: Server-Based Privacy Rules (jabber:iq:privacy)
http://www.jabber.org/jeps/jep-0016.html

I had considered submitting comments to the author.  (For example:
"white- listing" needs to go in right at the start, IMHO.)  In the
mean-time, server 1.4.2 has been released.  In the docs for that I find

JEP-0018: Presence
http://www.jabber.org/jeps/jep-0018.html

This seems to duplicate/trump/obsolete/whatever, JEP-0016, in a way?

As you might imagine, I'm wondering what to think of all this.

Lastly, in any event, it seems to me the client code will have to know
what version of the server it's dealing with so it can know what is
supported and what is not.  (E.g.: 1.4.1 won't support "invisible,"
1.4.2 does.)  Is there a way to fetch the server's release level?


Thanks,
Jim
-- 
Jim Seymour  | PGP Public Key available at:
[EMAIL PROTECTED] | http://www.uk.pgp.net/pgpnet/pks-commands.html
http://jimsun.LinxNet.com|
___
jdev mailing list
[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev