def rename( request, username, name, id, parent = settings.STORAGE_BUCKET_ID, _ts = None, csrfmiddlewaretoken = None, **kwargs ): kwargs[ 'page' ] = 'storage/directory' data = { 'view' : True } if not utils.is_numeric( id ): return utils.fail( kwargs, data = data, errors = 'Invalid Request' ) data[ 'regions' ] = settings.STORAGE_NAMES if float( parent ) == settings.STORAGE_BUCKET_ID else False user = request.user.get_profile().id if request.user.is_authenticated() else -1 try : s = Directory.objects.get( id = parent ) p = request.user.get_profile() if request.user.is_authenticated() else None d = Directory.objects.get( id = id ) data[ 'directory' ] = d if d.authorize( request, action = 'edit' ): if d.name != name: d.rename( name ) else: return utils.fail( kwargs, data = data, errors = 'Not Authorized' ) data[ 'storage' ] = s data[ 'admin' ] = p.authorize( request, action = 'add' ) except Directory.DoesNotExist: return utils.fail( kwargs, data = data, errors = 'Invalid Storage' ) return utils.success( kwargs, data = data )
def add(request, username, name, type = settings.STORAGE_DIRECTORY_TYPE, id = settings.STORAGE_BUCKET_ID, _ts = None, csrfmiddlewaretoken = None, **kwargs): kwargs[ 'page' ] = 'storage/directory' data = { 'view' : True } if not utils.is_numeric( id, type ): return utils.fail( kwargs, data = data, errors = 'Invalid Request' ) data[ 'regions' ] = settings.STORAGE_NAMES if float( id ) == settings.STORAGE_BUCKET_ID else False user = request.user.get_profile().id if request.user.is_authenticated() else -1 try : s = Directory.objects.get( id = id ) p = request.user.get_profile() if request.user.is_authenticated() else None if d.authorize( request, action = 'add' ): d = Directory( name = name, owner = p, parent = s ) if data[ 'regions' ]: d.type = int( type ) d.add( base = settings.INTERLINK_COLOR_ALL ) d.link( parent = s, base = p ) data[ 'directory' ] = d else: return utils.fail( kwargs, data = data, errors = 'Not Authorized' ) data[ 'storage' ] = s data[ 'admin' ] = p.authorize( request, action = 'add' ) except Directory.DoesNotExist: return utils.fail( kwargs, data = data, errors = 'Invalid Storage' ) return utils.success( kwargs, data = data )
def list( request, username, id = settings.STORAGE_BUCKET_ID, **kwargs ): kwargs[ 'page' ] = 'page/storage' data = { 'list' : True } if not utils.is_numeric( id ): return utils.fail( kwargs, data = data, errors = 'Invalid Request' ) data[ 'regions' ] = settings.STORAGE_NAMES if float( id ) == settings.STORAGE_BUCKET_ID else False user = request.user.get_profile().id if request.user.is_authenticated() else -1 try : d = Directory.objects.get( id = id ) u = User.objects.get( username = username ) p = u.get_profile() if d.authorize( request, action = 'list' ): s = d.network.filter( bridge_base = p ) ds = s.filter( type = settings.STORAGE_DIRECTORY_TYPE ) data[ 'directories' ] = ds fs = s.filter( type = settings.STORAGE_FILE_TYPE ) data[ 'files' ] = fs data[ 'valid' ] = True else: return utils.fail( kwargs, data = data, errors = 'Not Authorized' ) data[ 'user' ] = u data[ 'person' ] = p data[ 'storage' ] = d data[ 'admin' ] = p.authorize( request, action = 'add' ) except Directory.DoesNotExist: return utils.fail( kwargs, data = data, errors = 'Invalid Storage' ) return utils.success( kwargs, data = data )
def rename( request, username, name, id, parent=settings.STORAGE_BUCKET_ID, _ts=None, csrfmiddlewaretoken=None, **kwargs ): kwargs["page"] = "storage/directory" data = {"view": True} if not utils.is_numeric(id): return utils.fail(kwargs, data=data, errors="Invalid Request") # if(float(parent) == settings.STORAGE_BUCKET_ID): return utils.fail(kwargs, data = data, errors = 'Objects are not allowed here.') data["regions"] = settings.STORAGE_NAMES if float(parent) == settings.STORAGE_BUCKET_ID else False user = request.user.get_profile().id if request.user.is_authenticated() else -1 try: s = Directory.objects.get(id=parent) p = request.user.get_profile() if request.user.is_authenticated() else None d = Directory.objects.get(id=id) data["directory"] = d try: if d.name != name: name = get_available_name(name, s, user, request) d.edit(user=user) d.rename(name) except utils.GuardException: return utils.fail(kwargs, data=data, errors="Not Authorized") data["storage"] = s data["admin"] = p.guard(user=user, action="add") except Directory.DoesNotExist: return utils.fail(kwargs, data=data, errors="Invalid Storage") return utils.success(kwargs, data=data)
def remove( request, id, parent = settings.STORAGE_BUCKET_ID, _ts = None, csrfmiddlewaretoken = None, **kwargs ): kwargs[ 'page' ] = 'storage/file' data = { 'view' : True } if not utils.is_numeric( id ): return utils.fail( kwargs, data = data, errors = 'Invalid Request' ) if( float( parent ) == settings.STORAGE_BUCKET_ID ): return utils.fail( kwargs, data = data, errors = 'Objects are not allowed here.' ) user = request.user.get_profile().id if request.user.is_authenticated() else -1 try : s = Directory.objects.get( id = parent ) p = request.user.get_profile() if request.user.is_authenticated() else None f = File.objects.get( id = id ) data[ 'file' ] = f if f.authorize( request, action = 'remove' ): f.remove() else: return utils.fail( kwargs, data = data, errors = 'Not Authorized' ) data[ 'storage' ] = s data[ 'admin' ] = p.authorize( request, action = 'add' ) except File.DoesNotExist: return utils.fail( kwargs, data = data, errors = 'Invalid File' ) except Directory.DoesNotExist: return utils.fail( kwargs, data = data, errors = 'Invalid Storage' ) return utils.success( kwargs, data = data )
def add(request, username, name, root=0, id=settings.STORAGE_BUCKET_ID, _ts=None, csrfmiddlewaretoken=None, **kwargs): kwargs["page"] = "storage/directory" data = {"view": True} if not utils.is_numeric(id, root): return utils.fail(kwargs, data=data, errors="Invalid Request") data["regions"] = settings.STORAGE_NAMES if float(id) == settings.STORAGE_BUCKET_ID else False user = request.user.get_profile().id if request.user.is_authenticated() else -1 try: s = Directory.objects.get(id=id) p = request.user.get_profile() if request.user.is_authenticated() else None name = get_available_name(name, s, user, request) try: d = Directory(name=name, type="directory", parent=s, owner=p, author=request.user.username) if data["regions"]: d.root = int(root) d.add(user=user, ecolor="all." + request.user.username) data["directory"] = d except utils.GuardException: return utils.fail(kwargs, data=data, errors="Not Authorized") data["storage"] = s data["admin"] = p.guard(user=user, action="add") except Directory.DoesNotExist: return utils.fail(kwargs, data=data, errors="Invalid Storage") return utils.success(kwargs, data=data)
def remove(request, id, parent=settings.STORAGE_BUCKET_ID, _ts=None, csrfmiddlewaretoken=None, **kwargs): kwargs["page"] = "storage/file" data = {"view": True} if not utils.is_numeric(id): return utils.fail(kwargs, data=data, errors="Invalid Request") if float(parent) == settings.STORAGE_BUCKET_ID: return utils.fail(kwargs, data=data, errors="Objects are not allowed here.") user = request.user.get_profile().id if request.user.is_authenticated() else -1 try: s = Directory.objects.get(id=parent) p = request.user.get_profile() if request.user.is_authenticated() else None f = File.objects.get(id=id) data["file"] = f try: f.remove(user=user) except utils.GuardException: return utils.fail(kwargs, data=data, errors="Not Authorized") data["storage"] = s data["admin"] = p.guard(user=user, action="add") except File.DoesNotExist: return utils.fail(kwargs, data=data, errors="Invalid File") except Directory.DoesNotExist: return utils.fail(kwargs, data=data, errors="Invalid Storage") return utils.success(kwargs, data=data)
def list(request, username, id=settings.STORAGE_BUCKET_ID, **kwargs): kwargs["page"] = "page/storage" data = {"list": True} if not utils.is_numeric(id): return utils.fail(kwargs, data=data, errors="Invalid Request") data["regions"] = settings.STORAGE_NAMES if float(id) == settings.STORAGE_BUCKET_ID else False user = request.user.get_profile().id if request.user.is_authenticated() else -1 try: d = Directory.objects.get(id=id) u = User.objects.get(username=username) p = u.get_profile() try: ds = d.list(user=user, type="directory", lcolor=username) data["directories"] = ds fs = d.list(user=user, type="file", lcolor=username) data["files"] = fs data["valid"] = True except: data["errors"] = "Not Authorized" data["user"] = u data["person"] = p data["storage"] = d data["admin"] = p.guard(user=user, action="add") except Directory.DoesNotExist: data["errors"] = "Invalid Storage" kwargs["data"] = data return kwargs
def upload( request, username, name=None, id=None, parent=settings.STORAGE_BUCKET_ID, _ts=None, csrfmiddlewaretoken=None, **kwargs ): kwargs["page"] = "storage/file" data = {"view": True} if (id and not utils.is_numeric(id)) or (not name and not request.FILES): return utils.fail(kwargs, data=data, errors="Invalid Request") if float(parent) == settings.STORAGE_BUCKET_ID: return utils.fail(kwargs, data=data, errors="Objects are not allowed here.") user = request.user.get_profile().id if request.user.is_authenticated() else -1 try: s = Directory.objects.get(id=parent) p = request.user.get_profile() if request.user.is_authenticated() else None name = name if name else request.FILES["file"].name if not id: name = get_available_name(name, s, user, request) try: f = File(name=name, type="file", parent=s, owner=p, author=request.user.username) print f.id f.add(user=user, ecolor="all." + request.user.username) data["file"] = f except utils.GuardException: return utils.fail(kwargs, data=data, errors="Not Authorized") else: f = File.objects.get(id=id) data["file"] = f if request.FILES: try: f.file = request.FILES["file"] f.mime = request.FILES["file"].content_type f.edit(user=user) except utils.GuardException: return utils.fail(kwargs, data=data, errors="Not Authorized") data["storage"] = s data["admin"] = p.guard(user=user, action="add") except Directory.DoesNotExist: return utils.fail(kwargs, data=data, errors="Invalid Storage") return utils.success(kwargs, data=data)
def upload( request, username, name = None, id = None, parent = settings.STORAGE_BUCKET_ID, _ts = None, csrfmiddlewaretoken = None, **kwargs ): kwargs[ 'page' ] = 'storage/file' data = { 'view' : True } if( id and not utils.is_numeric( id ) ) or ( not name and not request.FILES ): return utils.fail( kwargs, data = data, errors = 'Invalid Request' ) if( float( parent ) == settings.STORAGE_BUCKET_ID ): return utils.fail( kwargs, data = data, errors = 'Objects are not allowed here.' ) user = request.user.get_profile().id if request.user.is_authenticated() else -1 try : s = Directory.objects.get( id = parent ) p = request.user.get_profile() if request.user.is_authenticated() else None name = name if name else request.FILES[ 'file' ].name if not id: if s.authorize( request, action = 'add' ): f = File( name = name, type = settings.STORAGE_FILE_TYPE, owner = p, parent = s ) f.add( base = settings.INTERLINK_COLOR_ALL ) f.link( parent = s, base = p ) data[ 'file' ] = f else: return utils.fail( kwargs, data = data, errors = 'Not Authorized' ) else: f = File.objects.get( id = id ) data[ 'file' ] = f if request.FILES: if f.authorize( request, action = 'edit' ): f.write( request ) else: return utils.fail( kwargs, data = data, errors = 'Not Authorized' ) data[ 'storage' ] = s data[ 'admin' ] = p.authorize( request, action = 'add' ) except Directory.DoesNotExist: return utils.fail( kwargs, data = data, errors = 'Invalid Storage' ) return utils.success( kwargs, data = data )
def change( request, username, name = None, id = None, parent = settings.STORAGE_BUCKET_ID, _ts = None, csrfmiddlewaretoken = None, **kwargs ): kwargs[ 'page' ] = 'storage/file' data = { 'view' : True } if not utils.is_numeric( id ) or ( not name and not request.FILES ): return utils.fail( kwargs, data = data, errors = 'Invalid Request' ) if( float( parent ) == settings.STORAGE_BUCKET_ID ): return utils.fail( kwargs, data = data, errors = 'Objects are not allowed here.' ) user = request.user.get_profile().id if request.user.is_authenticated() else -1 try : s = Directory.objects.get( id = parent ) p = request.user.get_profile() if request.user.is_authenticated() else None name = name if name else request.FILES[ 'file' ].name f = File.objects.get( id = id ) data[ 'file' ] = f if f.authorize( request, action = 'edit' ): if f.name != name: f.rename( name ) if request.FILES: f.file = request.FILES[ 'file' ] f.mime = request.FILES[ 'file' ].content_type else: return utils.fail( kwargs, data = data, errors = 'Not Authorized' ) data[ 'storage' ] = s data[ 'admin' ] = p.authorize( request, action = 'add' ) except File.DoesNotExist: return utils.fail( kwargs, data = data, errors = 'Invalid File' ) except Directory.DoesNotExist: return utils.fail( kwargs, data = data, errors = 'Invalid Storage' ) return utils.success( kwargs, data = data )
def rate( request, id, username, _ts = None, csrfmiddlewaretoken = None, **kwargs ): kwargs[ 'page' ] = 'kestrel/engine/rate' data = { 'view' : True } if not utils.is_numeric( id ): return utils.fail( kwargs, data = data, errors = 'Invalid Request' ) try : if not request.user.is_authenticated(): return utils.fail( kwargs, data = data, errors = 'Invalid User' ) p = request.user.get_profile() sql = ''.join( [ 'SELECT *, exists( SELECT `interlink_bridge`.`id` from `interlink_bridge` where `src_id`=', str( p.id ),' and `sink_id`=`interlink_node`.`id` and `base`=', str( settings.ENGINE_RATING_TYPE ),' ) as `done` from `interlink_node` WHERE `interlink_node`.`id`=', str( id ),' LIMIT 1' ] ) n = Node.objects.raw( sql )[ 0 ] rating = -1 if n.done else 1 if n.authorize( request, action = 'rate' ): n.rating = models.F( 'rating' ) + rating n.save() if n.done: n.unlink( parent = p, base = settings.ENGINE_RATING_TYPE ) else: n.link( parent = p, base = settings.ENGINE_RATING_TYPE ) n = Node.objects.raw( sql )[ 0 ] data[ 'node' ] = n if n.done: data[ 'ratings' ] = set( [ n.id ] ) print n.rating else: return utils.fail( kwargs, data = data, errors = 'Not Authorized' ) except Node.DoesNotExist: return utils.fail( kwargs, data = data, errors = 'Invalid Node' ) return utils.success( kwargs, data = data )