मेरा एसीएल ग्राफ

सारांश में प्रत्येक उपयोगकर्ता या समूह जिसके पास Folder1 तक पहुंच है, उसके पास File1 तक पहुंच होगी

usecase #1 - Folder1 पर user1 के लिए एक्सेस की जांच करना, जो नीचे दिए गए gremlin के साथ ठीक काम करता है

g.V().has('user','userId','user1').
  emit().
    until(__.not(outE('member_of'))).
    repeat(out('member_of')).
  filter(outE('has_permission').has('permission','VS_F').
           inV().has('folder','folderId','Folder1')).hasNext()

यूज़केस #2 - File1 पर उपयोगकर्ता1 के लिए एक्सेस की जांच करना, इसे प्राप्त करने के लिए ग्रेमलिन के ऊपर कैसे संशोधित किया जा सकता है ? मैं ग्रेमलिन के लिए काफी नया हूं और अपने नियोक्ता के लिए जेनसग्राफ पर पीओसी कर रहा हूं।

0
VT0906 27 अगस्त 2019, 01:40

1 उत्तर

सबसे बढ़िया उत्तर

सबसे पहले चीज़ें: आपको हमेशा एक स्क्रिप्ट से शुरू करना चाहिए जिसे लोग आपका नमूना ग्राफ़ बनाने के लिए चला सकें। साथ ही, आपके प्रश्न में कोड स्वरूपित करने से कोई दिक्कत नहीं होगी।

इसके साथ ही, यहां वह स्क्रिप्ट है जो आपका ग्राफ बनाती है:

g = TinkerGraph.open().traversal()
g.addV('user').property('userId','user1').as('u1').
  addV('user').property('userId','user2').as('u2').
  addV('user').property('userId','user3').as('u3').
  addV('group').property('groupId','group1').as('g1').
  addV('group').property('groupId','group2').as('g2').
  addV('group').property('groupId','group3').as('g3').
  addV('folder').property('folderId','folder1').as('f1').
  addV('file').property('fileId','file1').
  addE('in_folder').to('f1').
  addE('member_of').from('u1').to('g1').
  addE('member_of').from('u2').to('g2').
  addE('member_of').from('u3').to('g3').
  addE('member_of').from('g3').to('g1').
  addE('has_permission').from('g1').to('f1').
  addE('has_permission').from('u2').to('f1').iterate()

... और जिस क्वेरी को आप ढूंढ रहे हैं:

g.V().has('file','fileId','file1').
  until(inE('has_permission')).
    repeat(out('in_folder')).as('folder').
  V().has('user','userId','user1').
  emit().
    until(__.not(outE('member_of'))).
    repeat(out('member_of')).
  filter(out('has_permission').where(eq('folder'))).hasNext()
1
Daniel Kuppitz 27 अगस्त 2019, 00:02