preparing multiuser bookmarks

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@3256 6c8d7289-2bf4-0310-a012-ef5d649a1542
pull/1/head
allo 18 years ago
parent 6d6a783ddf
commit f40169fcd7

@ -53,6 +53,7 @@ import java.util.Iterator;
import de.anomic.data.bookmarksDB; import de.anomic.data.bookmarksDB;
import de.anomic.data.listManager; import de.anomic.data.listManager;
import de.anomic.data.userDB;
import de.anomic.data.bookmarksDB.Tag; import de.anomic.data.bookmarksDB.Tag;
import de.anomic.http.httpHeader; import de.anomic.http.httpHeader;
import de.anomic.index.indexURLEntry; import de.anomic.index.indexURLEntry;

@ -61,6 +61,7 @@
<input type="checkbox" id="dwnld" name="downloadRight"#(downloadRight)#:: checked="checked"#(/downloadRight)# /><label for="dwnld">Fileshare-Download</label><br /> <input type="checkbox" id="dwnld" name="downloadRight"#(downloadRight)#:: checked="checked"#(/downloadRight)# /><label for="dwnld">Fileshare-Download</label><br />
<input type="checkbox" id="blog" name="blogRight"#(blogRight)#:: checked="checked"#(/blogRight)# /><label for="blog">Blog</label><br /> <input type="checkbox" id="blog" name="blogRight"#(blogRight)#:: checked="checked"#(/blogRight)# /><label for="blog">Blog</label><br />
<input type="checkbox" id="wiki" name="wikiAdminRight"#(wikiAdminRight)#:: checked="checked"#(/wikiAdminRight)# /><label for="wiki">Wiki Admin</label> <input type="checkbox" id="wiki" name="wikiAdminRight"#(wikiAdminRight)#:: checked="checked"#(/wikiAdminRight)# /><label for="wiki">Wiki Admin</label>
<input type="checkbox" id="wiki" name="bookmarkRight"#(bookmarkRight)#:: checked="checked"#(/bookmarkRight)# /><label for="wiki">Bookmarks</label>
</td> </td>
</tr> </tr>
<tr> <tr>

@ -79,6 +79,8 @@ public class User_p {
prop.put("page_downloadRight", 0); prop.put("page_downloadRight", 0);
prop.put("page_uploadRight", 0); prop.put("page_uploadRight", 0);
prop.put("page_adminRight", 0); prop.put("page_adminRight", 0);
prop.put("page_wikiAdminRight", 0);
prop.put("page_bookmarkRight", 0);
prop.put("page_users", 0); prop.put("page_users", 0);
@ -112,6 +114,7 @@ public class User_p {
prop.put("page_adminRight", (entry.hasAdminRight()?1:0)); prop.put("page_adminRight", (entry.hasAdminRight()?1:0));
prop.put("page_blogRight", (entry.hasBlogRight()?1:0)); prop.put("page_blogRight", (entry.hasBlogRight()?1:0));
prop.put("page_wikiAdminRight", (entry.hasWikiAdminRight()?1:0)); prop.put("page_wikiAdminRight", (entry.hasWikiAdminRight()?1:0));
prop.put("page_bookmarkRight", (entry.hasBookmarkRight()?1:0));
} }
}else if( post.containsKey("delete_user") && !((String)post.get("user")).equals("newuser") ){ }else if( post.containsKey("delete_user") && !((String)post.get("user")).equals("newuser") ){
sb.userDB.removeEntry((String)post.get("user")); sb.userDB.removeEntry((String)post.get("user"));
@ -140,6 +143,7 @@ public class User_p {
String adminRight=( post.containsKey("adminRight")&&((String)post.get("adminRight")).equals("on") ? "true" : "false"); String adminRight=( post.containsKey("adminRight")&&((String)post.get("adminRight")).equals("on") ? "true" : "false");
String blogRight=( post.containsKey("blogRight")&&((String)post.get("blogRight")).equals("on") ? "true" : "false"); String blogRight=( post.containsKey("blogRight")&&((String)post.get("blogRight")).equals("on") ? "true" : "false");
String wikiAdminRight=( post.containsKey("wikiAdminRight")&&((String)post.get("wikiAdminRight")).equals("on") ? "true" : "false"); String wikiAdminRight=( post.containsKey("wikiAdminRight")&&((String)post.get("wikiAdminRight")).equals("on") ? "true" : "false");
String bookmarkRight=( post.containsKey("bookmarkRight")&&((String)post.get("bookmarkRight")).equals("on") ? "true" : "false");
HashMap mem=new HashMap(); HashMap mem=new HashMap();
if( post.get("current_user").equals("newuser")){ //new user if( post.get("current_user").equals("newuser")){ //new user
@ -156,6 +160,7 @@ public class User_p {
mem.put(userDB.Entry.DOWNLOAD_RIGHT, downloadRight); mem.put(userDB.Entry.DOWNLOAD_RIGHT, downloadRight);
mem.put(userDB.Entry.BLOG_RIGHT, blogRight); mem.put(userDB.Entry.BLOG_RIGHT, blogRight);
mem.put(userDB.Entry.WIKIADMIN_RIGHT, wikiAdminRight); mem.put(userDB.Entry.WIKIADMIN_RIGHT, wikiAdminRight);
mem.put(userDB.Entry.BOOKMARK_RIGHT, bookmarkRight);
try{ try{
entry=sb.userDB.createEntry(username, mem); entry=sb.userDB.createEntry(username, mem);
@ -186,6 +191,7 @@ public class User_p {
entry.setProperty(userDB.Entry.ADMIN_RIGHT, adminRight); entry.setProperty(userDB.Entry.ADMIN_RIGHT, adminRight);
entry.setProperty(userDB.Entry.BLOG_RIGHT, blogRight); entry.setProperty(userDB.Entry.BLOG_RIGHT, blogRight);
entry.setProperty(userDB.Entry.WIKIADMIN_RIGHT, wikiAdminRight); entry.setProperty(userDB.Entry.WIKIADMIN_RIGHT, wikiAdminRight);
entry.setProperty(userDB.Entry.BOOKMARK_RIGHT, bookmarkRight);
}catch (IOException e){ }catch (IOException e){
} }
}else{ }else{

@ -737,6 +737,7 @@ public class bookmarksDB {
public static final String BOOKMARK_TAGS="bookmarkTags"; public static final String BOOKMARK_TAGS="bookmarkTags";
public static final String BOOKMARK_PUBLIC="bookmarkPublic"; public static final String BOOKMARK_PUBLIC="bookmarkPublic";
public static final String BOOKMARK_TIMESTAMP="bookmarkTimestamp"; public static final String BOOKMARK_TIMESTAMP="bookmarkTimestamp";
public static final String BOOKMARK_OWNER="bookmarkOwner";
private String urlHash; private String urlHash;
private Map mem; private Map mem;
private HashSet tags; private HashSet tags;
@ -816,6 +817,16 @@ public class bookmarksDB {
} }
return (String) this.mem.get(BOOKMARK_URL); return (String) this.mem.get(BOOKMARK_URL);
} }
public String getOwner(){
if(this.mem.containsKey(BOOKMARK_OWNER)){
return (String) this.mem.get(BOOKMARK_OWNER);
}else{
return null; //null means admin
}
}
public void setOwner(String owner){
this.mem.put(BOOKMARK_OWNER, owner);
}
public boolean getPublic(){ public boolean getPublic(){
if(this.mem.containsKey(BOOKMARK_PUBLIC)){ if(this.mem.containsKey(BOOKMARK_PUBLIC)){
return ((String) this.mem.get(BOOKMARK_PUBLIC)).equals("public"); return ((String) this.mem.get(BOOKMARK_PUBLIC)).equals("public");

@ -140,6 +140,7 @@ public final class userDB {
return null; return null;
} }
} }
/* /*
* use a ProxyAuth String to authenticate a user * use a ProxyAuth String to authenticate a user
* @param auth a base64 Encoded String, which contains "username:pw". * @param auth a base64 Encoded String, which contains "username:pw".
@ -168,22 +169,28 @@ public final class userDB {
} }
return null; return null;
} }
public Entry getUser(String auth, String ip, String cookies){
Entry entry=null;
if(auth != null)
entry=proxyAuth(auth);
if(entry == null)
entry=cookieAuth(cookies);
if(entry == null)
entry=cookieAuth(cookies);
return entry;
}
/* /*
* determinate, if a user has Adminrights from a authorisation http-headerfield * determinate, if a user has Adminrights from a authorisation http-headerfield
* it tests both userDB and oldstyle adminpw. * it tests both userDB and oldstyle adminpw.
* @param auth the http-headerline for authorisation * @param auth the http-headerline for authorisation
*/ */
public boolean hasAdminRight(String auth, String ip, String cookies){ public boolean hasAdminRight(String auth, String ip, String cookies){
Entry entry=null; Entry entry=getUser(auth, ip, cookies);
if(auth != null) if(entry != null)
entry=proxyAuth(auth);
if(entry != null && entry.hasAdminRight())
return true; return true;
entry=cookieAuth(cookies); else if(cookieAdminAuth(cookies))
if(entry != null && entry.hasAdminRight())
return true;
if(cookieAdminAuth(cookies))
return true; return true;
else
return false; return false;
} }
@ -319,6 +326,7 @@ public final class userDB {
public static final String PROXY_RIGHT = "proxyRight"; public static final String PROXY_RIGHT = "proxyRight";
public static final String BLOG_RIGHT = "blogRight"; public static final String BLOG_RIGHT = "blogRight";
public static final String WIKIADMIN_RIGHT = "wikiAdminRight"; public static final String WIKIADMIN_RIGHT = "wikiAdminRight";
public static final String BOOKMARK_RIGHT = "bookmarkRight";
public static final int PROXY_ALLOK = 0; //can Surf public static final int PROXY_ALLOK = 0; //can Surf
public static final int PROXY_ERROR = 1; //unknown error public static final int PROXY_ERROR = 1; //unknown error
@ -518,6 +526,9 @@ public final class userDB {
public boolean hasWikiAdminRight() { public boolean hasWikiAdminRight() {
return (this.mem.containsKey(WIKIADMIN_RIGHT)?((String)this.mem.get(WIKIADMIN_RIGHT)).equals("true"):false); return (this.mem.containsKey(WIKIADMIN_RIGHT)?((String)this.mem.get(WIKIADMIN_RIGHT)).equals("true"):false);
} }
public boolean hasBookmarkRight() {
return (this.mem.containsKey(BOOKMARK_RIGHT)?((String)this.mem.get(BOOKMARK_RIGHT)).equals("true"):false);
}
public boolean isLoggedOut(){ public boolean isLoggedOut(){
return (this.mem.containsKey(LOGGED_OUT)?((String)this.mem.get(LOGGED_OUT)).equals("true"):false); return (this.mem.containsKey(LOGGED_OUT)?((String)this.mem.get(LOGGED_OUT)).equals("true"):false);
} }

Loading…
Cancel
Save