Skip to content

Commit b104249

Browse files
add isAnonymous
1 parent 1a54cc0 commit b104249

File tree

2 files changed

+33
-11
lines changed

2 files changed

+33
-11
lines changed

zeppelin-interpreter/src/main/java/org/apache/zeppelin/user/AuthenticationInfo.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,20 @@
1818

1919
package org.apache.zeppelin.user;
2020

21+
import org.apache.commons.lang.StringUtils;
22+
import org.slf4j.Logger;
23+
import org.slf4j.LoggerFactory;
24+
2125
/***
2226
*
2327
*/
2428
public class AuthenticationInfo {
29+
private static final Logger LOG = LoggerFactory.getLogger(AuthenticationInfo.class);
2530
String user;
2631
String ticket;
2732
UserCredentials userCredentials;
33+
public static final AuthenticationInfo ANONYMOUS = new AuthenticationInfo("anonymous",
34+
"anonymous");
2835

2936
public AuthenticationInfo() {}
3037

@@ -66,4 +73,17 @@ public void setUserCredentials(UserCredentials userCredentials) {
6673
this.userCredentials = userCredentials;
6774
}
6875

76+
public static boolean isAnonymous(AuthenticationInfo subject) {
77+
if (subject == null) {
78+
LOG.warn("Subject is null, assuming anonymous. "
79+
+ "Not recommended to use subject as null except in tests");
80+
return true;
81+
}
82+
return subject.isAnonymous();
83+
}
84+
85+
public boolean isAnonymous() {
86+
return ANONYMOUS.equals(this) || "anonymous".equalsIgnoreCase(this.getUser())
87+
|| StringUtils.isEmpty(this.getUser());
88+
}
6989
}

zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/NotebookRepoSync.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -249,18 +249,20 @@ private void pushNotes(AuthenticationInfo subject, List<String> ids, NotebookRep
249249
}
250250

251251
private void makePrivate(String noteId, AuthenticationInfo subject) {
252-
if (subject != null && !"anonymous".equals(subject.getUser())) {
253-
NotebookAuthorization notebookAuthorization = NotebookAuthorization.getInstance();
254-
Set<String> users = notebookAuthorization.getOwners(noteId);
255-
users.add(subject.getUser());
256-
notebookAuthorization.setOwners(noteId, users);
257-
users = notebookAuthorization.getReaders(noteId);
258-
users.add(subject.getUser());
259-
notebookAuthorization.setReaders(noteId, users);
260-
users = notebookAuthorization.getWriters(noteId);
261-
users.add(subject.getUser());
262-
notebookAuthorization.setWriters(noteId, users);
252+
if (AuthenticationInfo.isAnonymous(subject)) {
253+
LOG.info("User is anonymous, permissions are not set for pulled notes");
254+
return;
263255
}
256+
NotebookAuthorization notebookAuthorization = NotebookAuthorization.getInstance();
257+
Set<String> users = notebookAuthorization.getOwners(noteId);
258+
users.add(subject.getUser());
259+
notebookAuthorization.setOwners(noteId, users);
260+
users = notebookAuthorization.getReaders(noteId);
261+
users.add(subject.getUser());
262+
notebookAuthorization.setReaders(noteId, users);
263+
users = notebookAuthorization.getWriters(noteId);
264+
users.add(subject.getUser());
265+
notebookAuthorization.setWriters(noteId, users);
264266
}
265267

266268
private void deleteNotes(AuthenticationInfo subject, List<String> ids, NotebookRepo repo)

0 commit comments

Comments
 (0)