Skip to content

Commit

Permalink
preparing multiuser bookmarks
Browse files Browse the repository at this point in the history
git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@3256 6c8d7289-2bf4-0310-a012-ef5d649a1542
  • Loading branch information
allo committed Jan 19, 2007
1 parent 6d6a783 commit f40169f
Show file tree
Hide file tree
Showing 5 changed files with 65 additions and 35 deletions.
1 change: 1 addition & 0 deletions htroot/Bookmarks.java
Expand Up @@ -53,6 +53,7 @@

import de.anomic.data.bookmarksDB;
import de.anomic.data.listManager;
import de.anomic.data.userDB;
import de.anomic.data.bookmarksDB.Tag;
import de.anomic.http.httpHeader;
import de.anomic.index.indexURLEntry;
Expand Down
1 change: 1 addition & 0 deletions htroot/User_p.html
Expand Up @@ -61,6 +61,7 @@ <h2>User Administration</h2>
<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="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>
</tr>
<tr>
Expand Down
56 changes: 31 additions & 25 deletions htroot/User_p.java
Expand Up @@ -79,6 +79,8 @@ public static serverObjects respond(httpHeader header, serverObjects post, serve
prop.put("page_downloadRight", 0);
prop.put("page_uploadRight", 0);
prop.put("page_adminRight", 0);
prop.put("page_wikiAdminRight", 0);
prop.put("page_bookmarkRight", 0);

prop.put("page_users", 0);

Expand All @@ -99,19 +101,20 @@ public static serverObjects respond(httpHeader header, serverObjects post, serve
// link: "If you want to manage more Users, return to the user page." (parameter "user" is empty)
if (entry != null) {
//TODO: set username read-only in html
prop.put("page_current_user", post.get("user"));
prop.put("page_username", post.get("user"));
prop.put("page_firstname", entry.getFirstName());
prop.put("page_lastname", entry.getLastName());
prop.put("page_address", entry.getAddress());
prop.put("page_timelimit", entry.getTimeLimit());
prop.put("page_timeused", entry.getTimeUsed());
prop.put("page_current_user", post.get("user"));
prop.put("page_username", post.get("user"));
prop.put("page_firstname", entry.getFirstName());
prop.put("page_lastname", entry.getLastName());
prop.put("page_address", entry.getAddress());
prop.put("page_timelimit", entry.getTimeLimit());
prop.put("page_timeused", entry.getTimeUsed());
prop.put("page_proxyRight", (entry.hasProxyRight()?1:0));
prop.put("page_uploadRight", (entry.hasUploadRight()?1:0));
prop.put("page_downloadRight", (entry.hasDownloadRight()?1:0));
prop.put("page_adminRight", (entry.hasAdminRight()?1:0));
prop.put("page_blogRight", (entry.hasBlogRight()?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") ){
sb.userDB.removeEntry((String)post.get("user"));
Expand Down Expand Up @@ -140,22 +143,24 @@ public static serverObjects respond(httpHeader header, serverObjects post, serve
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 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();
if( post.get("current_user").equals("newuser")){ //new user

if(!pw.equals("")){ //change only if set
mem.put(userDB.Entry.MD5ENCODED_USERPWD_STRING, serverCodings.encodeMD5Hex(username+":"+pw));
}
mem.put(userDB.Entry.USER_FIRSTNAME, firstName);
mem.put(userDB.Entry.USER_LASTNAME, lastName);
mem.put(userDB.Entry.USER_FIRSTNAME, firstName);
mem.put(userDB.Entry.USER_LASTNAME, lastName);
mem.put(userDB.Entry.USER_ADDRESS, address);
mem.put(userDB.Entry.TIME_LIMIT, timeLimit);
mem.put(userDB.Entry.TIME_USED, timeUsed);
mem.put(userDB.Entry.PROXY_RIGHT, proxyRight);
mem.put(userDB.Entry.UPLOAD_RIGHT, uploadRight);
mem.put(userDB.Entry.DOWNLOAD_RIGHT, downloadRight);
mem.put(userDB.Entry.BLOG_RIGHT, blogRight);
mem.put(userDB.Entry.WIKIADMIN_RIGHT, wikiAdminRight);
mem.put(userDB.Entry.TIME_USED, timeUsed);
mem.put(userDB.Entry.PROXY_RIGHT, proxyRight);
mem.put(userDB.Entry.UPLOAD_RIGHT, uploadRight);
mem.put(userDB.Entry.DOWNLOAD_RIGHT, downloadRight);
mem.put(userDB.Entry.BLOG_RIGHT, blogRight);
mem.put(userDB.Entry.WIKIADMIN_RIGHT, wikiAdminRight);
mem.put(userDB.Entry.BOOKMARK_RIGHT, bookmarkRight);

try{
entry=sb.userDB.createEntry(username, mem);
Expand All @@ -175,17 +180,18 @@ public static serverObjects respond(httpHeader header, serverObjects post, serve
if(! pw.equals("")){
entry.setProperty(userDB.Entry.MD5ENCODED_USERPWD_STRING, serverCodings.encodeMD5Hex(username+":"+pw));
}
entry.setProperty(userDB.Entry.USER_FIRSTNAME, firstName);
entry.setProperty(userDB.Entry.USER_LASTNAME, lastName);
entry.setProperty(userDB.Entry.USER_ADDRESS, address);
entry.setProperty(userDB.Entry.USER_FIRSTNAME, firstName);
entry.setProperty(userDB.Entry.USER_LASTNAME, lastName);
entry.setProperty(userDB.Entry.USER_ADDRESS, address);
entry.setProperty(userDB.Entry.TIME_LIMIT, timeLimit);
entry.setProperty(userDB.Entry.TIME_USED, timeUsed);
entry.setProperty(userDB.Entry.PROXY_RIGHT, proxyRight);
entry.setProperty(userDB.Entry.UPLOAD_RIGHT, uploadRight);
entry.setProperty(userDB.Entry.DOWNLOAD_RIGHT, downloadRight);
entry.setProperty(userDB.Entry.ADMIN_RIGHT, adminRight);
entry.setProperty(userDB.Entry.BLOG_RIGHT, blogRight);
entry.setProperty(userDB.Entry.WIKIADMIN_RIGHT, wikiAdminRight);
entry.setProperty(userDB.Entry.TIME_USED, timeUsed);
entry.setProperty(userDB.Entry.PROXY_RIGHT, proxyRight);
entry.setProperty(userDB.Entry.UPLOAD_RIGHT, uploadRight);
entry.setProperty(userDB.Entry.DOWNLOAD_RIGHT, downloadRight);
entry.setProperty(userDB.Entry.ADMIN_RIGHT, adminRight);
entry.setProperty(userDB.Entry.BLOG_RIGHT, blogRight);
entry.setProperty(userDB.Entry.WIKIADMIN_RIGHT, wikiAdminRight);
entry.setProperty(userDB.Entry.BOOKMARK_RIGHT, bookmarkRight);
}catch (IOException e){
}
}else{
Expand Down
11 changes: 11 additions & 0 deletions source/de/anomic/data/bookmarksDB.java
Expand Up @@ -737,6 +737,7 @@ public class Bookmark{
public static final String BOOKMARK_TAGS="bookmarkTags";
public static final String BOOKMARK_PUBLIC="bookmarkPublic";
public static final String BOOKMARK_TIMESTAMP="bookmarkTimestamp";
public static final String BOOKMARK_OWNER="bookmarkOwner";
private String urlHash;
private Map mem;
private HashSet tags;
Expand Down Expand Up @@ -816,6 +817,16 @@ public String getTitle(){
}
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(){
if(this.mem.containsKey(BOOKMARK_PUBLIC)){
return ((String) this.mem.get(BOOKMARK_PUBLIC)).equals("public");
Expand Down
31 changes: 21 additions & 10 deletions source/de/anomic/data/userDB.java
Expand Up @@ -140,7 +140,8 @@ public String addEntry(Entry entry) {
return null;
}
}
/*

/*
* use a ProxyAuth String to authenticate a user
* @param auth a base64 Encoded String, which contains "username:pw".
*/
Expand Down Expand Up @@ -168,23 +169,29 @@ public Entry proxyAuth(String auth) {
}
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
* it tests both userDB and oldstyle adminpw.
* @param auth the http-headerline for authorisation
*/
public boolean hasAdminRight(String auth, String ip, String cookies){
Entry entry=null;
if(auth != null)
entry=proxyAuth(auth);
if(entry != null && entry.hasAdminRight())
Entry entry=getUser(auth, ip, cookies);
if(entry != null)
return true;
entry=cookieAuth(cookies);
if(entry != null && entry.hasAdminRight())
else if(cookieAdminAuth(cookies))
return true;
if(cookieAdminAuth(cookies))
return true;
return false;
else
return false;
}

/*
Expand Down Expand Up @@ -319,6 +326,7 @@ public class Entry {
public static final String PROXY_RIGHT = "proxyRight";
public static final String BLOG_RIGHT = "blogRight";
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_ERROR = 1; //unknown error
Expand Down Expand Up @@ -518,6 +526,9 @@ public boolean hasBlogRight() {
public boolean hasWikiAdminRight() {
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(){
return (this.mem.containsKey(LOGGED_OUT)?((String)this.mem.get(LOGGED_OUT)).equals("true"):false);
}
Expand Down

0 comments on commit f40169f

Please sign in to comment.