public Yield ProxyToService(DreamContext context, DreamMessage request, Result <DreamMessage> response) { PermissionsBL.IsUserAllowed(DekiContext.Current.User, Permissions.ADMIN); //Private feature requires api-key var identifier = context.GetParam("id"); ServiceRepository.IServiceInfo serviceInfo = null; if (identifier.StartsWith("=")) { serviceInfo = DekiContext.Current.Instance.RunningServices[XUri.Decode(identifier.Substring(1))]; } else { uint serviceId; if (uint.TryParse(identifier, out serviceId)) { serviceInfo = DekiContext.Current.Instance.RunningServices[serviceId]; } else { throw new DreamBadRequestException(string.Format("Invalid id '{0}'", identifier)); } } if (serviceInfo == null) { throw new ServiceNotFoundException(identifier); } var proxyUri = serviceInfo.ServiceUri.At(context.GetSuffixes(UriPathFormat.Original).Skip(1).ToArray()); yield return(context.Relay(Plug.New(proxyUri), request, response)); }
public Yield FeatureGetAuthenticate(DreamContext context, DreamMessage request, Result <DreamMessage> response) { string user = Authenticate(context, request); string password; HttpUtil.GetAuthentication(context.Uri.ToUri(), request.Headers, out user, out password); yield return(context.Relay(Self.At("users", XUri.Encode(user)).WithCredentials(user, password), request, response)); }
public Yield GetFiles(DreamContext context, DreamMessage request, Result <DreamMessage> response) { if (_resourcesUri != null) { yield return(context.Relay(Plug.New(_resourcesUri).AtPath(string.Join("/", context.GetSuffixes(UriPathFormat.Original))), request, response)); } else { response.Return(GetFile(context)); } yield break; }
public Yield GetImage(DreamContext context, DreamMessage request, Result <DreamMessage> response) { string image = context.GetParam("name"); if (Path.GetExtension(image) != ".xaml") { response.Return(DreamMessage.NotFound("xaml not found")); } else { yield return(context.Relay(Storage.At(image), request, response)); } }
public Yield GetLibraryFiles(DreamContext context, DreamMessage request, Result <DreamMessage> response) { string name = context.GetParam("name"); Plug resource; if (!_files.TryGetValue(name, out resource)) { response.Return(DreamMessage.NotFound("resource not found: " + name)); } else { yield return(context.Relay(resource, request, response)); } }
public Yield GetImage(DreamContext context, DreamMessage request, Result <DreamMessage> response) { yield return(context.Relay(Storage.At(context.GetParam("name")), request, response)); }
public Yield ProxyToService(DreamContext context, DreamMessage request, Result<DreamMessage> response) { PermissionsBL.IsUserAllowed(DekiContext.Current.User, Permissions.ADMIN); //Private feature requires api-key var identifier = context.GetParam("id"); ServiceRepository.IServiceInfo serviceInfo = null; if(identifier.StartsWith("=")) { serviceInfo = DekiContext.Current.Instance.RunningServices[XUri.Decode(identifier.Substring(1))]; } else { uint serviceId; if(uint.TryParse(identifier, out serviceId)) { serviceInfo = DekiContext.Current.Instance.RunningServices[serviceId]; } else { throw new DreamBadRequestException(string.Format("Invalid id '{0}'", identifier)); } } if(serviceInfo == null) { response.Return(DreamMessage.NotFound(string.Format(DekiResources.SERVICE_NOT_FOUND, identifier))); yield break; } var proxyUri = serviceInfo.ServiceUri.At(context.GetSuffixes(UriPathFormat.Original).Skip(1).ToArray()); yield return context.Relay(Plug.New(proxyUri), request, response); }
public Yield GetImage(DreamContext context, DreamMessage request, Result<DreamMessage> response) { yield return context.Relay(Storage.At(context.GetParam("name")), request, response); }
public Yield GetImage(DreamContext context, DreamMessage request, Result<DreamMessage> response) { string image = context.GetParam("name"); if(Path.GetExtension(image) != ".png") { response.Return(DreamMessage.NotFound("image not found")); } else { yield return context.Relay(Storage.At(image), request, response); } }
public Yield GetFiles(DreamContext context, DreamMessage request, Result<DreamMessage> response) { if(_resourcesUri != null) { yield return context.Relay(Plug.New(_resourcesUri).AtPath(string.Join("/", context.GetSuffixes(UriPathFormat.Original))), request, response); } else { response.Return(GetFile(context)); } yield break; }
public Yield PostUnsubscribeEvents(DreamContext context, DreamMessage request, Result <DreamMessage> response) { yield return(context.Relay(_events.At("unsubscribe"), request, response)); }
public Yield GetErrorXsl(DreamContext context, DreamMessage request, Result<DreamMessage> response) { string resource = context.GetParam("resource"); Plug plug = Plug.New(string.Format("resource://mindtouch.core/MindTouch.Dream.resources.host.{0}", resource)).With(DreamOutParam.TYPE, MimeType.FromFileExtension(resource).FullType); yield return context.Relay(plug, request, response); }
public Yield home(DreamContext context) { yield return context.Relay(_fs.At("metl.html"), "GET:", null, null); }
public Yield PostUnsubscribeEvents(DreamContext context, DreamMessage request, Result<DreamMessage> response) { yield return context.Relay(_events.At("unsubscribe"), request, response); }
public Yield FeatureGetAuthenticate(DreamContext context, DreamMessage request, Result<DreamMessage> response) { string user = Authenticate(context, request); string password; HttpUtil.GetAuthentication(context.Uri.ToUri(), request.Headers, out user, out password); yield return context.Relay(Self.At("users", XUri.Encode(user)).WithCredentials(user, password), request, response); }
public Yield GetHttp(DreamContext context, DreamMessage request, Result<DreamMessage> response) { yield return context.Relay(_redirect.At(context.GetSuffixes(UriPathFormat.Original)), request, response); }
public Yield GetHttp(DreamContext context, DreamMessage request, Result <DreamMessage> response) { yield return(context.Relay(_redirect.At(context.GetSuffixes(UriPathFormat.Original)), request, response)); }