Example #1
0
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 )
Example #2
0
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 )
Example #3
0
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 )
Example #4
0
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)
Example #5
0
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 )
Example #6
0
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)
Example #7
0
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)
Example #8
0
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
Example #9
0
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)
Example #10
0
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 )
Example #11
0
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 )
Example #12
0
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 )