diff --git a/htroot/Bookmarks.java b/htroot/Bookmarks.java index f71a7831a..be9bd843a 100644 --- a/htroot/Bookmarks.java +++ b/htroot/Bookmarks.java @@ -72,7 +72,8 @@ public class Bookmarks { int max_count=10; String tagName=""; int start=0; - boolean isAdmin=switchboard.verifyAuthentication(header, true); + userDB.Entry user=switchboard.userDB.getUser(header); + boolean isAdmin=(switchboard.verifyAuthentication(header, true) || user!= null && user.hasBookmarkRight()); //defaultvalues prop.put("mode", 0); diff --git a/source/de/anomic/data/userDB.java b/source/de/anomic/data/userDB.java index 39f41087b..2b9ce249a 100644 --- a/source/de/anomic/data/userDB.java +++ b/source/de/anomic/data/userDB.java @@ -54,6 +54,7 @@ import java.util.Iterator; import java.util.Map; import java.util.Random; +import de.anomic.http.httpHeader; import de.anomic.kelondro.kelondroBase64Order; import de.anomic.kelondro.kelondroDyn; import de.anomic.kelondro.kelondroException; @@ -169,7 +170,10 @@ public final class userDB { } return null; } - public Entry getUser(String auth, String ip, String cookies){ + public Entry getUser(httpHeader header){ + return getUser((String) header.get(httpHeader.AUTHORIZATION), (String)header.get("CLIENTIP"), header.getHeaderCookies()); + } + public Entry getUser(String auth, String ip, String cookies){ Entry entry=null; if(auth != null) entry=proxyAuth(auth); @@ -187,9 +191,9 @@ public final class userDB { public boolean hasAdminRight(String auth, String ip, String cookies){ Entry entry=getUser(auth, ip, cookies); if(entry != null) - return true; + return entry.hasAdminRight(); else if(cookieAdminAuth(cookies)) - return true; + return entry.hasAdminRight(); else return false; }