Esempio n. 1
0
    def post(self, request):
        E = ED()
        E.u, E.k = -1, 1
        E.au, E.uni, E.already, E.not_found = 2, 3, 4, 5
        if not request.session.get('is_login', False):
            return E.au
        u = User.get_via_encoded_id(request.session['uid'])
        if u is None:
            return E.au
        # todo: 更多权限判断
        kwargs: dict = json.loads(request.body)
        if kwargs.keys() != {'id', 'type', 'pfid'}:
            return E.k

        e = Entity.get_via_encoded_id(kwargs['id'])
        if e is None:
            return E.u

        fa = Entity.get_via_encoded_id(kwargs['pfid'])
        if fa is None or fa.is_doc():
            return E.not_found

        if e.father is not None and e.father.id == fa.id:
            return E.already

        if fa.sons_dup_name(e.name):
            return E.uni

        e.replicate(u, fa)

        return 0
Esempio n. 2
0
 def post(self, request):
     E = EasyDict()
     E.uk = -1
     E.key, E.auth, E.root = 1, 2, 3
     kwargs: dict = json.loads(request.body)
     if kwargs.keys() != {'fid'}:
         return None, E.key
     if not request.session['is_login']:
         return None, E.auth
     try:
         user = User.objects.get(id=int(decode(request.session['uid'])))
         entity = Entity.get_via_encoded_id(kwargs['fid'])
     except:
         return None, E.uk
     if not entity.can_convert_to_team():
         return None, E.root
     try:
         team = Team.objects.create(root=entity)
         Member.objects.create(member=user, team=team, auth='owner')
         entity.father = None
         entity.name = team.name + ROOT_SUFFIX
         entity.save()
         record_create(user, entity, delete=True)
     except:
         return None, E.uk
     return team.id, 0
Esempio n. 3
0
    def post(self, request):
        E = ED()
        E.u, E.k = -1, 1
        E.au, E.no_id = 2, 3
        if not request.session.get('is_login', False):
            return E.au
        u = User.get_via_encoded_id(request.session['uid'])
        if u is None:
            return E.au
        # todo: 更多权限判断
        kwargs: dict = json.loads(request.body)
        if kwargs.keys() != {'id', 'type'}:
            return E.k

        e = Entity.get_via_encoded_id(kwargs['id'])
        if e is None:
            return E.u

        q = Links.objects.filter(user=u, ent=e)
        if q.exists():
            q.delete()
        else:
            return E.no_id

        return 0
Esempio n. 4
0
    def post(self, request):
        E = ED()
        E.u, E.k = -1, 1
        E.au, E.no_fa, E.inv_name, E.rename = 2, 3, 4, 5
        if not request.session.get('is_login', False):
            return '', E.au
        u = User.get_via_encoded_id(request.session['uid'])
        if u is None:
            return '', E.au
        kwargs: dict = {'pfid': None}
        kwargs.update(json.loads(request.body))
        if kwargs.keys() != {'name', 'pfid', 'type'}:
            return '', E.k

        name, pfid, type = kwargs['name'], kwargs['pfid'], kwargs['type']

        fa = Entity.get_via_encoded_id(pfid) if pfid is not None else u.root
        if fa is None:
            return '', E.no_fa
        if fa.sons_dup_name(name):
            return '', E.rename
        e = Entity(name=name, father=fa, type=type)
        try:
            e.save()
        except:
            return '', E.u
        record_create(u, e)
        return e.encoded_id, 0
Esempio n. 5
0
    def post(self, request):
        E = ED()
        E.u, E.k = -1, 1
        E.au, E.uni, E.too_long = 2, 3, 4
        if not request.session.get('is_login', False):
            return E.au
        u = User.get_via_encoded_id(request.session['uid'])
        if u is None:
            return E.au
        # todo: 更多权限判断
        kwargs: dict = json.loads(request.body)
        if kwargs.keys() != {'id', 'type', 'name'}:
            return E.k

        name = kwargs['name']
        if not CHECK_ENAME(name):
            return E.too_long
        e = Entity.get_via_encoded_id(kwargs['id'])
        if e is None:
            return E.u
        if e.brothers_dup_name(name):
            return E.uni
        e.name = name
        e.save()
        return 0
Esempio n. 6
0
    def get(self, request):
        E = ED()
        E.u, E.k = -1, 1
        E.au, E.no_ent = 2, 3
        if not request.session.get('is_login', False):
            return E.au
        u = User.get_via_encoded_id(request.session['uid'])
        if u is None:
            return E.au
        kwargs: dict = request.GET
        if kwargs.keys() != {'did'}:
            return E.k

        did = kwargs.get('did')

        e = Entity.get_via_encoded_id(did)
        if e is None:
            return E.no_ent
        return (
            0,
            e.name,
            Collection.objects.filter(user=u, ent=e).exists(),
            e.create_dt_str,
            e.creator.encoded_id,
            e.creator.name,
            e.edit_dt,
            e.editor.encoded_id,
            e.editor.name,
        )
Esempio n. 7
0
    def post(self, request):
        E = ED()
        E.u, E.k = -1, 1
        E.au, E.inv_name, E.inv_cont, E.rename = 2, 3, 4, 5
        if not request.session.get('is_login', False):
            return E.au
        u = User.get_via_encoded_id(request.session['uid'])
        if u is None:
            return E.au
        kwargs: dict = json.loads(request.body)
        if kwargs.keys() != {'did', 'content'}:
            return E.k

        did, content = kwargs['did'], kwargs['content']

        e = Entity.get_via_encoded_id(did)
        if e is None:
            return E.u
        e.content = content
        try:
            e.save()
        except:
            return E.u

        return 0
Esempio n. 8
0
    def get(self, request):
        E = ED()
        E.u, E.k = -1, 1
        E.au, E.no_f = 2, 3
        if not request.session.get('is_login', False):
            return E.au, '', [], []
        u = User.get_via_encoded_id(request.session['uid'])
        if u is None:
            return E.au, '', [], []
        kwargs = request.GET
        if kwargs.keys() != {'fid'}:
            return E.k, '', [], []

        e = Entity.get_via_encoded_id(kwargs.get('fid'))
        if e is None:
            return E.no_f, '', [], []

        path: List[Entity] = e.path
        sons: List[Tuple[Entity,
                         bool]] = [(s, False)
                                   for s in e.sons.filter(is_deleted=False)]
        if e.is_user_root():
            sons.extend([(lk.ent, True)
                         for lk in Links.objects.filter(user=u)])

        print('==' * 20, f'apply for {sons}')
        path_s = [{'fid': f.encoded_id, 'name': f.name} for f in path]
        sons_s = [{
            'type':
            f.type,
            'id':
            f.encoded_id,
            'name':
            f.name,
            'is_link':
            is_link,
            'is_starred':
            Collection.objects.filter(user=u, ent=f).exists(),
            'create_dt':
            f.create_dt_str,
            'cuid':
            f.creator.encoded_id,
            'cname':
            f.creator.name,
            'edit_dt':
            f.edit_dt,
            'euid':
            f.editor.encoded_id,
            'ename':
            f.editor.name,
        } for f, is_link in sons]

        return 0, cur_time(), path_s, sons_s, e.name
Esempio n. 9
0
    def get(self, request):
        E = ED()
        E.u, E.k = -1, 1
        E.au, E.no_ent = 2, 3
        if not request.session.get('is_login', False):
            return E.au
        u = User.get_via_encoded_id(request.session['uid'])
        if u is None:
            return E.au
        kwargs: dict = request.GET
        if kwargs.keys() != {'did'}:
            return E.k

        did = kwargs.get('did')

        e = Entity.get_via_encoded_id(did)
        if e is None:
            return E.no_ent
        return 0, e.is_locked
Esempio n. 10
0
    def get(self, request):
        E = ED()
        E.u, E.k = -1, 1
        E.au, E.no, E.no_father = 2, 3, 4
        if not request.session.get('is_login', False):
            return E.au, ''
        u = User.get_via_encoded_id(request.session['uid'])
        if u is None:
            return E.au, ''
        kwargs = request.GET
        if kwargs.keys() != {'id', 'type'}:
            return E.k, ''

        e = Entity.get_via_encoded_id(kwargs.get('id'))
        if e is None:
            return E.no, ''
        if e.father is None:
            return E.no_father, ''

        return 0, e.father.encoded_id
Esempio n. 11
0
    def post(self, request):
        u = User.objects.filter(id=int(decode(request.session['uid'])))
        if not u.exists():
            return -1
        u = u.get()
        kwargs: dict = json.loads(request.body)
        if kwargs.keys() != {'id', 'type', 'is_starred'}:
            return 1,

        ent = Entity.get_via_encoded_id(kwargs['id'])
        if ent is None:
            return 3

        if kwargs['is_starred']:
            try:
                Collection.objects.create(user=u, ent=ent)
            except:
                return -1
            return 0
        else:
            Collection.objects.filter(
                ent=ent, user_id=int(decode(request.session['uid']))).delete()
            return 0
Esempio n. 12
0
    def post(self, request):
        E = ED()
        E.u, E.k = -1, 1
        E.au, E.no_id = 2, 3
        if not request.session.get('is_login', False):
            return E.au
        u = User.get_via_encoded_id(request.session['uid'])
        if u is None:
            return E.au
        # todo: 更多权限判断
        kwargs: dict = json.loads(request.body)
        if kwargs.keys() != {'id', 'type'}:
            return E.k

        e = Entity.get_via_encoded_id(kwargs['id'])
        if e is None:
            return E.no_id

        e.is_deleted = True
        e.delete_dt = datetime.now()
        e.save()

        return 0
Esempio n. 13
0
    def post(self, request):
        E = ED()
        E.u, E.k = -1, 1
        E.au, E.uni, E.no_id = 2, 3, 4
        if not request.session.get('is_login', False):
            return E.au
        u = User.get_via_encoded_id(request.session['uid'])
        if u is None:
            return E.au
        # todo: 更多权限判断
        kwargs: dict = json.loads(request.body)
        if kwargs.keys() != {'id', 'type'}:
            return E.k

        e = Entity.get_via_encoded_id(kwargs['id'])
        if e is None:
            return E.u
        if u.links.filter(ent__name=e.name):
            return E.uni

        Links.objects.create(user=u, ent=e)

        return 0
Esempio n. 14
0
    def get(self, request):
        E = ED()
        E.u, E.k = -1, 1
        E.au, E.no = 2, 3
        if not request.session.get('is_login', False):
            return E.au
        u = User.get_via_encoded_id(request.session['uid'])
        if u is None:
            return E.au
        # todo: 更多权限判断
        kwargs = request.GET
        if kwargs.keys() != {'did'}:
            return E.k

        e = Entity.get_via_encoded_id(kwargs.get('did'))
        if e is None or e.father is None:
            return E.no

        return (0, e.name, len(e.plain_content), e.creator.encoded_id,
                e.creator.name, e.is_locked, [{
                    'fid': f.encoded_id,
                    'name': f.name
                } for f in e.path])
Esempio n. 15
0
    def post(self, request):
        E = ED()
        E.u, E.k = -1, 1
        E.au, E.no_ent = 2, 3
        if not request.session.get('is_login', False):
            return E.au
        u = User.get_via_encoded_id(request.session['uid'])
        if u is None:
            return E.au
        kwargs: dict = json.loads(request.body)
        if kwargs.keys() != {'did', 'is_locked'}:
            return E.k

        did, is_locked = kwargs['did'], kwargs['is_locked']

        e = Entity.get_via_encoded_id(did)
        if e is None:
            return E.no_ent
        e.is_locked = is_locked
        try:
            e.save()
        except:
            return E.u
        return 0