Exemplo n.º 1
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 )