Hehe
forgot the "piece of code" :)
private boolean addPermission(WebdavResource webdavResource, QName
permission, String path, String principal, boolean negative) throws
HttpException, IOException
{
AclProperty acl = webdavResource.aclfindMethod(path);
if (acl==null)
{
out.println("Error: PropFind didn't return an AclProperty!");
return false;
}
Ace[] aces=acl.getAces();
if (aces==null)
aces=new Ace[0];
if (debugLevel>5) {
out.println();
out.println("ACL from server");
showAces(path, aces);
}
Ace ace=null;
for (int i=0; i<aces.length && (ace==null); i++)
{
if ((aces[i].isNegative()==negative) && !aces[i].isProtected()
&& !aces[i].isInherited() &&
aces[i].getPrincipal().equals(principal))
{
if (debugLevel>5)
out.println("found ace");
ace=aces[i];
}
}
if (ace==null)
{
Ace[] oldAces=aces;
aces=new Ace[oldAces.length+1];
System.arraycopy(oldAces,0,aces,0,oldAces.length);
ace=new Ace(principal, negative, false, false,null);
aces[oldAces.length]=ace;
}
Privilege privilege=new
Privilege(permission.getNamespaceURI(), permission.getLocalName(),
null);
ace.addPrivilege(privilege);
if (debugLevel>5) {
out.println();
out.println("ACL with updated privileges");
showAces(path, aces);
}
boolean success = webdavResource.aclMethod(path,aces);
if (!success)
out.println(webdavResource.getStatusMessage());
if (debugLevel>5) {
acl = webdavResource.aclfindMethod(path);
if (acl==null)
out.println("Error: PropFind didn't return an AclProperty!");
else
{
aces=acl.getAces();
out.println();
out.println("ACL from server after update");
showAces(path, aces);
}
}
return success;
}
2005/12/7, Gabriel Bermudez <[EMAIL PROTECTED]>:
> The webdav command client is a good example to, I found this piece of
> code for adding a permission to principal, what is a principal? I
> tried out the command client and It can be a role or a user, that is
> the path to a role or user, for example:
> /slide/roles/myrole <-- principal for a role
> /slide/users/myuser <-- principal for a user
> Correct me if Im wrong
> Thanks for the help
>
> 2005/12/6, Ray Sprinkle <[EMAIL PROTECTED]>:
> > If you know how to assign object permissions to a user it works the same
> > way. Use the role path where ever you would you the user path. To put
> > add a user to a role you have to manipulate the "group-member-set" (I
> > think) property of the role. I know there is a Wiki example.
> >
> > -----Original Message-----
> > From: Gabriel Bermudez [mailto:[EMAIL PROTECTED]
> > Sent: Tuesday, December 06, 2005 2:41 PM
> > To: Slide Users Mailing List
> > Subject: Re: Unresolved problem with users and passwords
> >
> > I forgot to ask something, creating a role is the same as creating a
> > user, that is creating a collecition under /slide/roles/ and setting up
> > the right properties?
> > How do you give permissions to certains collections to a role, for
> > example
> >
> > /slide/
> > |--files/new/
> > |--roles/
> > |--newRole/ <---the users associted to this role can
> > just read/write "/slide/new/"
> >
> > Again has anyone done this with the slide client library, or even better
> > has some example code to use as base.
> >
> > Thanks in advanced
> >
> > 2005/12/6, Gabriel Bermudez <[EMAIL PROTECTED]>:
> > > Hi,
> > > A lot of thanks for the pointer :)
> > > After struggling the whole morning with the problem I finally could
> > > create a user with a password and set it to a role :) First of all I
> > > am using the JCA connector to handle the connection and the
> > > transaction. I'm calling the code from the method of an EJB.
> > > Here is what I did:
> > >
> > > String host="http://127.0.0.1:8888/slide/";
> > > //the next line get a connection using JNDI
> > > WebDAVConnection
> > connection=JBSCUtil.getWebDAVConnection(host);
> > > WebdavResource
> > resource=connection.getWebdavResource();
> > > //the variable login is the username
> > > resource.mkcolMethod("/slide/users/"+login);
> > >
> > > PropertyName pn=new
> > > PropertyName("http://jakarta.apache.org/slide/","password");
> > >
> > resource.proppatchMethod("/slide/users/"+login,pn,password,true);
> > > resource.setPath("/slide/roles/user");
> > > Enumeration
> > propEnum=resource.propfindMethod("group-member-set");
> > > String val=(String)propEnum.nextElement();
> > > String newProp="<![CDATA[<D:href
> > > xmlns:D='DAV:'>"+"/slide/users/"+login+"</D:href>\r\n"+val+"]]>";
> > >
> > > //this little part changes I create a new PropertyName
> >
> > > with
> > > namespace=DAV: and tag=group-member-set
> > > pn=new PropertyName("DAV:","group-member-set");
> > > resource.proppatchMethod(pn,newProp,true);
> > > connection.close();
> > >
> > > Hope this helps anyone that has or will have the same problem.
> > > Again, thanks to Virgilio and Matias for the help given
> > >
> > > Regards
> > >
> > > 2005/12/5, Virgilio duce <[EMAIL PROTECTED]>:
> > > > I have created a new user using webdav library.Here my code:
> > > >
> > > > Enumeration enumProp;
> > > > try {
> > > > // creates user
> > > > String userDir= "/slide/slide/users/"+userName;
> > > > webdavResource.mkcolMethod(userDir);
> > > > webdavResource.setPath(userDir);
> > > > PropertyName pn=new
> > > > PropertyName("http://jakarta.apache.org/slide/","password");
> > > > webdavResource.proppatchMethod(pn,password,true);
> > > >
> > > > // Creating Xml of all existing user also
> > > > String roleToAssign="/slide/slide/roles/"+role;
> > > > System.out.println(roleToAssign);
> > > > webdavResource.setPath(roleToAssign);
> > > > enumProp = webdavResource.propfindMethod("group-member-set");
> > > >
> > > > String val=(String)enumProp.nextElement();
> > > > System.out.println("Group-member-set vale :"+val);
> > > > String newProp= "<![CDATA[<D:href
> > > > xmlns:D='DAV:'>"+userDir+"</D:href>"+val+"]]>";
> > > >
> > webdavResource.proppatchMethod("group-member-set",newProp,true);
> > > > } catch (IOException e) {
> > > >
> > > > e.printStackTrace();
> > > > }
> > > >
> > > > I hope this can help you!!!
> > > >
> > > >
> > > > ----- Original Message -----
> > > > From: "Gabriel Bermudez" <[EMAIL PROTECTED]>
> > > > To: "Slide Users Mailing List" <[email protected]>
> > > > Sent: Monday, December 05, 2005 9:20 PM
> > > > Subject: Unresolved problem with users and passwords
> > > >
> > > >
> > > > Hi, I've been reading the users mailing list and searching the web
> > > > but everywhere I read, seems to have the same problem.
> > > > To create a new user in slide, you have to create a colletion uner
> > > > /slide/users with the user name, and then set a property with
> > > > certain values, you can do it with third parties software like
> > > > DAVExplorer, even the slide documentation has a little HOW-TO on
> > > > that (jakarta.apache.org/slide/howto-create-users.html), but there
> > > > is no WHO-TO example using the webdavclient library :( Was some one
> > > > has done this already or you simple can't create users and set
> > > > passwords with this library? Ive been trying to use the PropertyName
> >
> > > > because the webdav command client uses it to set properties like
> > > > this:
> > > >
> > > > void proppatch(String path, String prop, String value)
> > > > {
> > > > String name=prop;
> > > > try {
> > > > path=checkUri(path);
> > > > out.print("Putting property(" + name + ", " + value +
> > > > ") to '" + path + "': ");
> > > > if (webdavResource.proppatchMethod(
> > > > path, new PropertyName("DAV:",name), value, true)) {
> > > > out.println("succeeded.");
> > > > } else {
> > > > out.println("failed.");
> > > > out.println(webdavResource.getStatusMessage());
> > > > }
> > > > }
> > > > catch (Exception ex) {
> > > > handleException(ex);
> > > > }
> > > > }
> > > >
> > > > Has anyone had a sucessfull creation of a user with a password using
> >
> > > > the webdavclient library, did you use the PropertyName class, can
> > > > you give some sample code.
> > > > Thanks a lot for your help
> > > >
> > > > --------------------------------------------------------------------
> > > > - To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > >
> > > >
> > > > --------------------------------------------------------------------
> > > > - To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > >
> > > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]