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 )