From: Tim P. <ti...@pa...> - 2003-04-25 10:56:44
|
On Thursday 24 April 2003 2:44 pm, Jim Wright wrote: > Hi William or anyone, > > I want some rows of a table to be readable > only by users with a capability. I think I can > get this by adding a row: > > Capability canread > > and adding a non-null capability to such > rows. > > However, looking at the code I think that > Selection.wm will result in a request > for the user to login as someone who can > read all rows. > > This is no good but what would be OK is > for the rows that the user cannot read to > be excluded from the selection. > > Can I get this just by configuring a > different Selection.wm? > Not easily, as it is running against $results,=20 so you would need to override Admin as well. It seems to me that the right place to do it is=20 by overriding the appendWhereClause method in=20 your table. public void appendWhereClause(StringBuffer clause, Persistent persistent)= { super.appendWhereClause(clause, persistent); if(!clause.toString().equals("")) clause.append(" AND "); clause.append("accesslevel <=3D " + PoemThread.accessToken().accessLe= vel()); } Where accesslevel is a new field in your user table.=20 I have a feeling that this isn't the most elegant solution=20 but hope it helps.=20 cheers timp |