Commit 3d3724d1 authored by delanoe's avatar delanoe

[FEAT] Improving backend needs more features.

parent 0c367b99
......@@ -216,14 +216,17 @@ class NodeUser(Base):
Example:
A user only node: 700 == rwx --- ---
A user sharing read mode to his group: 740 == rwx r-- ---
A user sharing all rights to his group: 770 == rwx rwx ---
A user sharing to the public (read mode only): 744 == rwx r-- r--
A user sharing rights with group and publc: 774 == rwx rwx r--
"""
__tablename__ = 'node_user'
node_id = Column(Integer, ForeignKey(Node.id, ondelete='CASCADE'), primary_key=True)
user_id = Column(Integer, ForeignKey(User.id, ondelete='CASCADE'))
group_id = Column(Integer, ForeignKey(User.id, ondelete='CASCADE'))
rules_user = Column(Integer)
rules_group = Column(Integer)
rules_others = Column(Integer)
......
......@@ -177,4 +177,20 @@ class Contact(Base):
__table_args__ = (UniqueConstraint('user1_id', 'user2_id'), )
class Group(Base):
__tablename__ = 'groups'
id = Column(Integer, primary_key=True)
name = Column(String(60))
is_active = Column(Boolean(), default=True)
class GroupUser(Base):
__tablename__ = 'group_user'
id = Column(Integer, primary_key=True, autoincrement=True)
group_id = Column(Integer, ForeignKey(Group.id, ondelete='CASCADE'))
user_id = Column(Integer, ForeignKey(User.id, ondelete='CASCADE'))
__table_args__ = (UniqueConstraint('group_id', 'user_id'), )
from gargantext.util.db import *
#from gargantext.util.db_cache import cache
from gargantext.models import *
def set_rights_pure(nodeUser, user=None, group=None, others=None):
"""
set_rights :: NodeUser
-> Maybe (Int, Int)
-> Maybe (Int, Int)
-> Maybe Int
-> NodeUser
"""
if user is not None:
user_id, mode_user = user
nodeUser.user_id = user_id
nodeUser.mode_user = mode_user
if group is not None:
group_id, mode_group = group
nodeUser.group_id = group_id
nodeUser.mode_group = mode_group
if others is not None:
nodeUser.mode_others = others
return nodeUser
def set_rights(node_id, user_id=None, group_id=None, rights=(7,0,0)):
"""
Set rights of a node
"""
nodeUser = session.query(NodeUser).filter(NodeUser.node_id == node_id).first()
if nodeUser is None:
nodeUser = NodeUser()
nodeUser
def share_node(node_id, user_id=None)
def share_corpus(corpus_id, user_id=None, )
def share_project()
def share_document()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment