mirror of
https://github.com/apache/zeppelin
synced 2026-05-24 09:38:26 +00:00
User see read, write, owner permission notebook.
This commit is contained in:
parent
371fa76cd5
commit
82beb18ff0
3 changed files with 55 additions and 2 deletions
|
|
@ -467,8 +467,7 @@ public class NotebookServer extends WebSocketServlet implements
|
|||
LOG.error("Fail to reload notes from repository", e);
|
||||
}
|
||||
}
|
||||
|
||||
List<Note> notes = notebook.getAllNotes();
|
||||
List<Note> notes = notebook.getAllNotes(subject);
|
||||
List<Map<String, String>> notesInfo = new LinkedList<>();
|
||||
for (Note note : notes) {
|
||||
Map<String, String> info = new HashMap<>();
|
||||
|
|
|
|||
|
|
@ -28,8 +28,12 @@ import java.util.LinkedHashMap;
|
|||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import com.google.common.base.Predicate;
|
||||
import com.google.common.collect.FluentIterable;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
|
|
@ -523,6 +527,35 @@ public class Notebook implements NoteEventListener {
|
|||
}
|
||||
}
|
||||
|
||||
public List<Note> getAllNotes(AuthenticationInfo subject) {
|
||||
final Set<String> entities = Sets.newHashSet();
|
||||
if (subject != null) {
|
||||
entities.add(subject.getUser());
|
||||
}
|
||||
|
||||
synchronized (notes) {
|
||||
return FluentIterable.from(notes.values()).filter(new Predicate<Note>() {
|
||||
@Override
|
||||
public boolean apply(Note input) {
|
||||
return input != null && notebookAuthorization.isReader(input.getId(), entities);
|
||||
}
|
||||
}).toSortedList(new Comparator<Note>() {
|
||||
@Override
|
||||
public int compare(Note note1, Note note2) {
|
||||
String name1 = note1.id();
|
||||
if (note1.getName() != null) {
|
||||
name1 = note1.getName();
|
||||
}
|
||||
String name2 = note2.id();
|
||||
if (note2.getName() != null) {
|
||||
name2 = note2.getName();
|
||||
}
|
||||
return name1.compareTo(name2);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private Map<String, Object> getParagraphForJobManagerItem(Paragraph paragraph) {
|
||||
Map<String, Object> paragraphItem = new HashMap<>();
|
||||
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ import org.apache.zeppelin.scheduler.Job;
|
|||
import org.apache.zeppelin.scheduler.Job.Status;
|
||||
import org.apache.zeppelin.scheduler.SchedulerFactory;
|
||||
import org.apache.zeppelin.search.SearchService;
|
||||
import org.apache.zeppelin.user.AuthenticationInfo;
|
||||
import org.apache.zeppelin.user.Credentials;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
|
|
@ -812,6 +813,26 @@ public class NotebookTest implements JobListenerFactory{
|
|||
notebook.removeNote(note1.getId(), null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAllNotes() throws Exception {
|
||||
Note note1 = notebook.createNote(null);
|
||||
Note note2 = notebook.createNote(null);
|
||||
assertEquals(2, notebook.getAllNotes(new AuthenticationInfo("anonymous")).size());
|
||||
|
||||
notebook.getNotebookAuthorization().setOwners(note1.getId(), Sets.newHashSet("user1"));
|
||||
notebook.getNotebookAuthorization().setWriters(note1.getId(), Sets.newHashSet("user1"));
|
||||
notebook.getNotebookAuthorization().setReaders(note1.getId(), Sets.newHashSet("user1"));
|
||||
assertEquals(1, notebook.getAllNotes(new AuthenticationInfo("anonymous")).size());
|
||||
assertEquals(2, notebook.getAllNotes(new AuthenticationInfo("user1")).size());
|
||||
|
||||
notebook.getNotebookAuthorization().setOwners(note2.getId(), Sets.newHashSet("user2"));
|
||||
notebook.getNotebookAuthorization().setWriters(note2.getId(), Sets.newHashSet("user2"));
|
||||
notebook.getNotebookAuthorization().setReaders(note2.getId(), Sets.newHashSet("user2"));
|
||||
assertEquals(0, notebook.getAllNotes(new AuthenticationInfo("anonymous")).size());
|
||||
assertEquals(1, notebook.getAllNotes(new AuthenticationInfo("user1")).size());
|
||||
assertEquals(1, notebook.getAllNotes(new AuthenticationInfo("user2")).size());
|
||||
}
|
||||
|
||||
private void delete(File file){
|
||||
if(file.isFile()) file.delete();
|
||||
else if(file.isDirectory()){
|
||||
|
|
|
|||
Loading…
Reference in a new issue