Exemplo n.º 1
0
        async void Initialize()
        {
            var keys = new KeyStorage();
            var client = new DropNetClient(await keys.Get("dropbox-apikey"), await keys.Get("dropbox-secret"));
            client.UseSandbox = true;

            var token = await client.GetRequestToken();
            var url = client.BuildAuthorizeUrl(token, "http://localhost");

            var regClient = new WebClientImpl();
            browser.SetWebViewClient(regClient);
            browser.LoadUrl(url);

            await regClient.Callback.Task;
            await client.GetAccessToken();

            browser.Visibility = ViewStates.Gone;

            var items = new List<Adaptar.Item>();
            foreach (var file in (await client.GetMetaData("/")).Contents.Take(10))
            {
                var buffer = await client.GetThumbnail(file);
                items.Add(
                    new Adaptar.Item
                    {
                        Title = file.Name,
                        Icon = await BitmapFactory.DecodeByteArrayAsync(buffer, 0, buffer.Length),
                    });
            }
            adapter.Update(items);
        }
Exemplo n.º 2
0
        public static bool SendMessage(string number, string message)
        {
            if (!Enabled())
            {
                return(false);
            }

            SmsProvider provider = null;

            if (ClickatellProvider.Enable())
            {
                provider = ClickatellProvider;
            }

            string smsUsa;

            if (ClickatellUSAProvider.Enable() &&
                !string.IsNullOrEmpty(smsUsa = KeyStorage.Get("clickatellUSA")) && Regex.IsMatch(number, smsUsa))
            {
                provider = ClickatellUSAProvider;
            }

            if (provider == null && TwilioProvider.Enable())
            {
                provider = TwilioProvider;
            }

            if (SmscProvider.Enable() &&
                (provider == null ||
                 SmscProvider.SuitableNumber(number)))
            {
                provider = SmscProvider;
            }

            if (provider == null)
            {
                return(false);
            }

            return(provider.SendMessage(number, message));
        }
        public GoogleOAuth2Authorization(ILogger log) : base(log)
        {
            Func <string, string> getConfigVal = value =>
                                                 (ConfigurationManager.AppSettings.Get(value) ??
                                                  WebConfigurationManager.AppSettings.Get(value) ??
                                                  KeyStorage.Get(value));

            try
            {
                ClientId     = getConfigVal("googleClientId");
                ClientSecret = getConfigVal("googleClientSecret");

                if (String.IsNullOrEmpty(ClientId))
                {
                    throw new ArgumentNullException("ClientId");
                }
                if (String.IsNullOrEmpty(ClientSecret))
                {
                    throw new ArgumentNullException("ClientSecret");
                }
            }
            catch (Exception ex)
            {
                log.Error("GoogleOAuth2Authorization() Exception:\r\n{0}\r\n", ex.ToString());
            }

            RedirectUrl = "urn:ietf:wg:oauth:2.0:oob";

            ServerDescription = new AuthorizationServerDescription
            {
                AuthorizationEndpoint = new Uri("https://accounts.google.com/o/oauth2/auth?access_type=offline"),
                TokenEndpoint         = new Uri("https://www.googleapis.com/oauth2/v3/token"),
                ProtocolVersion       = ProtocolVersion.V20,
            };

            Scope = new List <string>
            {
                "https://mail.google.com/"
            };
        }
Exemplo n.º 4
0
        private String GetFirebaseConfig()
        {
            string firebase_projectId = KeyStorage.Get("firebase_projectId");

            firebase_projectId = firebase_projectId.Trim();
            var script = new StringBuilder();

            if (firebase_projectId != String.Empty)
            {
                script.AppendLine("{apiKey: '" + KeyStorage.Get("firebase_apiKey").Trim() + "',");
                script.AppendLine(" authDomain: '" + firebase_projectId + ".firebaseapp.com',");
                script.AppendLine(" databaseURL: 'https://" + firebase_projectId + ".firebaseapp.com',");
                script.AppendLine(" projectId: '" + firebase_projectId + "',");
                script.AppendLine(" storageBucket: '" + firebase_projectId + ".appspot.com',");
                script.AppendLine(" messagingSenderId: '" + KeyStorage.Get("firebase_messagingSenderId").Trim() + "'}");

                return(script.ToString());
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                var scope = KeyStorage.Get("mail.googleScopes");
                var token = GoogleLoginProvider.Auth(HttpContext.Current, scope);

                var email = GetEmail(token.AccessToken);

                var emailInfo = new EmailAccessInfo
                {
                    Email        = email,
                    RefreshToken = token.RefreshToken
                };
                SubmitEmailInfo(emailInfo);
            }
            catch (ThreadAbortException)
            {
            }
            catch (Exception ex)
            {
                SubmitError(ex.Message);
            }
        }
Exemplo n.º 6
0
 private static void SetDefaultTokens(FacebookApiInfo apiInfo)
 {
     apiInfo.AccessToken = KeyStorage.Get(SocialMediaConstants.ConfigKeyFacebookDefaultAccessToken);
 }
Exemplo n.º 7
0
        public static void SendSMS(string number, string message)
        {
            if (string.IsNullOrEmpty(number))
            {
                throw new ArgumentNullException("number");
            }
            if (string.IsNullOrEmpty(message))
            {
                throw new ArgumentNullException("message");
            }
            if (!StudioSmsNotificationSettings.IsVisibleSettings || !StudioSmsNotificationSettings.Enable)
            {
                throw new MethodAccessException();
            }
            if (StudioSmsNotificationSettings.LeftSms <= 0)
            {
                throw new Exception(Resource.SmsNotPaidError);
            }

            var count = Convert.ToInt32(PhoneCache.Get(number) ?? 0);

            if (count >= 5)
            {
                throw new Exception(Resource.SmsTooMuchError);
            }
            PhoneCache.Insert(number, ++count, DateTime.UtcNow.Add(trustInterval));

            if ("log".Equals(ConfigurationManager.AppSettings["core.notify.postman"], StringComparison.InvariantCultureIgnoreCase))
            {
                log.InfoFormat("Tenant {0} send sms to phoneNumber: {1}", TenantProvider.CurrentTenantID, number);
                log.InfoFormat("Message: {0}", message);
                return;
            }

            var left        = StudioSmsNotificationSettings.LeftSms - 1;
            var leftMessage = string.Format(Resource.SmsAuthenticationMessageLeft, left);

            message += "\n" + leftMessage;

            number = new Regex("[^\\d+]").Replace(number, string.Empty);
            var url    = KeyStorage.Get("smsOperatorUrl_clickatel");
            var method = "POST";

            if (!string.IsNullOrEmpty(KeyStorage.Get("sms.USAregex")) && Regex.IsMatch(number, KeyStorage.Get("sms.USAregex")))
            {
                url = KeyStorage.Get("smsOperatorUrl_clickatelUSA");
            }

            if (!string.IsNullOrEmpty(KeyStorage.Get("sms.CISregex")) && Regex.IsMatch(number, KeyStorage.Get("sms.CISregex")))
            {
                url    = KeyStorage.Get("smsOperatorUrl_smsc");
                method = "GET";
            }

            try
            {
                var request = (HttpWebRequest)WebRequest.Create(url.Replace("{phone}", number).Replace("{text}", HttpUtility.UrlEncode(message)));
                request.Method      = method;
                request.ContentType = "application/x-www-form-urlencoded";
                request.Timeout     = 1000;

                using (var stream = request.GetResponse().GetResponseStream())
                    using (var reader = new StreamReader(stream))
                    {
                        var result = reader.ReadToEnd();
                        StudioSmsNotificationSettings.IncrementSentSms();
                        log.InfoFormat("SMS was sent to {0}, service returned: {1}", number, result);
                    }
            }
            catch (Exception ex)
            {
                log.Error("Failed to send sms message", ex);
                return;
            }

            if (left == 0 || left == TenantExtra.GetTenantQuota().ActiveUsers)
            {
                StudioNotifyService.Instance.SendToAdminSmsCount(left);
            }
        }
        public override void HandleMessage(XmppStream stream, Message message, XmppHandlerContext context)
        {
            if (!message.HasTo || message.To.IsServer)
            {
                context.Sender.SendTo(stream, XmppStanzaError.ToServiceUnavailable(message));
                return;
            }

            var sessions = context.SessionManager.GetBareJidSessions(message.To);

            if (0 < sessions.Count)
            {
                foreach (var s in sessions)
                {
                    try
                    {
                        context.Sender.SendTo(s, message);
                    }
                    catch
                    {
                        context.Sender.SendToAndClose(s.Stream, message);
                    }
                }
            }
            else
            {
                pushStore = new DbPushStore();
                var properties = new Dictionary <string, string>(1);
                properties.Add("connectionStringName", "default");
                pushStore.Configure(properties);

                if (message.HasTag("active"))
                {
                    var fromFullName = message.HasAttribute("username") ?
                                       message.GetAttribute("username") : message.From.ToString();

                    var tenantId        = -1;
                    var messageToDomain = message.To.ToString().Split(new char[] { '@' })[1];

                    foreach (
                        var tenant in CoreContext.TenantManager.GetTenants()
                        )
                    {
                        if (tenant.TenantDomain == messageToDomain)
                        {
                            tenantId = tenant.TenantId;
                            break;
                        }
                    }
                    var userPushList = new List <UserPushInfo>();
                    userPushList = pushStore.GetUserEndpoint(message.To.ToString().Split(new char[] { '@' })[0]);

                    var firebaseAuthorization = "";
                    try
                    {
                        CallContext.SetData(TenantManager.CURRENT_TENANT, new Tenant(tenantId, ""));
                        firebaseAuthorization = KeyStorage.Get("firebase_authorization");
                    }
                    catch (Exception exp)
                    {
                        log.DebugFormat("firebaseAuthorizationERROR: {0}", exp);
                    }
                    foreach (var user in userPushList)
                    {
                        try
                        {
                            var           from = message.From.ToString().Split(new char[] { '@' })[0];
                            List <string> userId;
                            string        photoPath = "";
                            using (var db = new DbManager("core"))
                                using (var command = db.Connection.CreateCommand())
                                {
                                    var q = new SqlQuery("core_user").Select("id").Where(Exp.Like("username", from));

                                    userId = command.ExecuteList(q, DbRegistry.GetSqlDialect(db.DatabaseId))
                                             .ConvertAll(r => Convert.ToString(r[0]))
                                             .ToList();
                                }
                            if (userId.Count != 0)
                            {
                                var guid = new Guid(userId[0]);
                                photoPath = UserPhotoManager.GetBigPhotoURL(guid);
                            }

                            var tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send");
                            tRequest.Method      = "post";
                            tRequest.ContentType = "application/json";
                            var data = new
                            {
                                to   = user.endpoint,
                                data = new
                                {
                                    msg          = message.Body,
                                    fromFullName = fromFullName,
                                    photoPath    = photoPath
                                }
                            };
                            var serializer = new JavaScriptSerializer();
                            var json       = serializer.Serialize(data);
                            var byteArray  = Encoding.UTF8.GetBytes(json);
                            tRequest.Headers.Add(string.Format("Authorization: key={0}", firebaseAuthorization));
                            tRequest.ContentLength = byteArray.Length;
                            using (var dataStream = tRequest.GetRequestStream())
                            {
                                dataStream.Write(byteArray, 0, byteArray.Length);
                                using (var tResponse = tRequest.GetResponse())
                                {
                                    using (var dataStreamResponse = tResponse.GetResponseStream())
                                    {
                                        using (var tReader = new StreamReader(dataStreamResponse))
                                        {
                                            var sResponseFromServer = tReader.ReadToEnd();
                                            var str = sResponseFromServer;
                                        }
                                    }
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            var str = ex.Message;
                            log.DebugFormat("PushRequestERROR: {0}", str);
                        }
                    }
                }
                StoreOffline(message, context.StorageManager.OfflineStorage);
            }
        }
        public override void HandleMessage(XmppStream stream, Message message, XmppHandlerContext context)
        {
            if (!message.HasTo || message.To.IsServer)
            {
                context.Sender.SendTo(stream, XmppStanzaError.ToServiceUnavailable(message));
                return;
            }

            var sessions = context.SessionManager.GetBareJidSessions(message.To);

            if (0 < sessions.Count)
            {
                foreach (var s in sessions)
                {
                    try
                    {
                        context.Sender.SendTo(s, message);
                    }
                    catch
                    {
                        context.Sender.SendToAndClose(s.Stream, message);
                    }
                }
            }
            else
            {
                pushStore = new DbPushStore();
                var properties = new Dictionary <string, string>(1);
                properties.Add("connectionStringName", "default");
                pushStore.Configure(properties);

                if (message.HasTag("active"))
                {
                    var fromFullName = message.HasAttribute("username") ?
                                       message.GetAttribute("username") : message.From.ToString();

                    var tenantId = message.HasAttribute("tenantid") ?
                                   Convert.ToInt32(message.GetAttribute("tenantid"), 16) : -1;

                    var userPushList = new List <UserPushInfo>();
                    userPushList = pushStore.GetUserEndpoint(message.To.ToString().Split(new char[] { '@' })[0]);

                    var firebaseAuthorization = "";
                    try
                    {
                        CallContext.SetData(TenantManager.CURRENT_TENANT, new Tenant(tenantId, ""));
                        firebaseAuthorization = KeyStorage.Get("firebase_authorization");
                    }
                    catch (Exception exp)
                    {
                        log.DebugFormat("firebaseAuthorizationERROR: {0}", exp);
                    }
                    foreach (var user in userPushList)
                    {
                        try{
                            var tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send");
                            tRequest.Method      = "post";
                            tRequest.ContentType = "application/json";
                            var data = new
                            {
                                to   = user.endpoint,
                                data = new
                                {
                                    msg          = message.Body,
                                    fromFullName = fromFullName
                                }
                            };
                            var serializer = new JavaScriptSerializer();
                            var json       = serializer.Serialize(data);
                            var byteArray  = Encoding.UTF8.GetBytes(json);
                            tRequest.Headers.Add(string.Format("Authorization: key={0}", firebaseAuthorization));
                            tRequest.ContentLength = byteArray.Length;
                            using (var dataStream = tRequest.GetRequestStream())
                            {
                                dataStream.Write(byteArray, 0, byteArray.Length);
                                using (var tResponse = tRequest.GetResponse())
                                {
                                    using (var dataStreamResponse = tResponse.GetResponseStream())
                                    {
                                        using (var tReader = new StreamReader(dataStreamResponse))
                                        {
                                            var sResponseFromServer = tReader.ReadToEnd();
                                            var str = sResponseFromServer;
                                        }
                                    }
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            var str = ex.Message;
                            log.DebugFormat("PushRequestERROR: {0}", str);
                        }
                    }
                }
                StoreOffline(message, context.StorageManager.OfflineStorage);
            }
        }
Exemplo n.º 10
0
 public static TwilioProvider GetVoipProvider()
 {
     return(new TwilioProvider(KeyStorage.Get("twilioAccountSid"), KeyStorage.Get("twilioAuthToken")));
 }
Exemplo n.º 11
0
 protected override void BuildRequestString(string message)
 {
     RequestedString = String.Format(KeyStorage.Get("smsOperatorMask_clickatel"), KeyStorage.Get("smsOperatorLogin_clickatel"), KeyStorage.Get("smsOperatorPass_clickatel"), KeyStorage.Get("smsOperatorApiid_clickatel"), "+" + PhoneNumber, message);
 }
Exemplo n.º 12
0
 static SmsProviderManager()
 {
     SmscProvider          = new SmscProvider();
     ClickatellProvider    = new ClickatellProvider(KeyStorage.Get("clickatellapiKey"));
     ClickatellUSAProvider = new ClickatellProvider(KeyStorage.Get("clickatellUSAapiKey"), KeyStorage.Get("clickatellUSAsender"));
     TwilioProvider        = new TwilioProvider(TwilioLoginProvider.TwilioAccountSid, TwilioLoginProvider.TwilioAuthToken, KeyStorage.Get("twiliosender"));
     TwilioSaaSProvider    = new TwilioProvider(KeyStorage.Get("twilioSaaSAccountSid"), KeyStorage.Get("twilioSaaSAuthToken"), KeyStorage.Get("twilioSaaSsender"));
 }
Exemplo n.º 13
0
        public bool SuitableNumber(string number)
        {
            var smsCis = KeyStorage.Get("smsccis");

            return(!string.IsNullOrEmpty(smsCis) && Regex.IsMatch(number, smsCis));
        }
Exemplo n.º 14
0
 static SmsProviderManager()
 {
     SmscProvider          = new SmscProvider();
     ClickatellProvider    = new ClickatellProvider(KeyStorage.Get("clickatellapiKey"));
     ClickatellUSAProvider = new ClickatellProvider(KeyStorage.Get("clickatellUSAapiKey"), KeyStorage.Get("clickatellUSAsender"));
     TwilioProvider        = new TwilioProvider();
 }
Exemplo n.º 15
0
        static ImportConfiguration()
        {
            SupportBoxNetImport = !string.IsNullOrEmpty(KeyStorage.Get("box.net"));
            SupportGoogleImport = !string.IsNullOrEmpty(KeyStorage.Get("googleConsumerKey"));
            SupportZohoImport   = !string.IsNullOrEmpty(KeyStorage.Get("zoho"));
            SupportImport       = SupportBoxNetImport || SupportGoogleImport || SupportZohoImport;

            var providers = (WebConfigurationManager.AppSettings["files.thirdparty.enable"] ?? "").Split(new char[] { '|', ',' }, StringSplitOptions.RemoveEmptyEntries);

            SupportBoxNetInclusion  = providers.Contains("boxnet");
            SupportDropboxInclusion = providers.Contains("dropbox") && !string.IsNullOrEmpty(KeyStorage.Get("dropboxappkey")) && !string.IsNullOrEmpty(KeyStorage.Get("dropboxappsecret"));
            SupportGoogleInclusion  = providers.Contains("google") && SupportGoogleImport;
            SupportInclusion        = SupportBoxNetInclusion || SupportDropboxInclusion || SupportGoogleInclusion;

            if (SupportBoxNetImport)
            {
                BoxNetApiKey        = KeyStorage.Get("box.net");
                BoxNetIFrameAddress = KeyStorage.Get("box.net.framehandler");
            }
            if (SupportGoogleImport)
            {
                GoogleTokenManager = TokenManagerHolder.Get("google", "googleConsumerKey", "googleConsumerSecret");
            }
            if (SupportZohoImport)
            {
                ZohoApiKey = KeyStorage.Get("zoho");
            }

            if (SupportDropboxInclusion)
            {
                DropboxAppKey    = KeyStorage.Get("dropboxappkey");
                DropboxAppSecret = KeyStorage.Get("dropboxappsecret");
            }
        }
Exemplo n.º 16
0
        public LoginProfile ProcessAuthoriztion(HttpContext context, IDictionary<string, string> @params)
        {
            var builder = new UriBuilder(context.Request.GetUrlRewriter()) {Query = "p=" + context.Request["p"]};
            var oauth = new FacebookOAuthClient
            {
                AppId = KeyStorage.Get("facebookAppID"),
                AppSecret = KeyStorage.Get("facebookAppSecret"),
                RedirectUri = builder.Uri
            };
            FacebookOAuthResult result;
            if (FacebookOAuthResult.TryParse(context.Request.GetUrlRewriter(), out result))
            {
                if (result.IsSuccess)
                {
                    var accessToken = (Facebook.JsonObject)oauth.ExchangeCodeForAccessToken(result.Code);
                    var request = WebRequest.Create("https://graph.facebook.com/me?access_token=" + Uri.EscapeDataString((string)accessToken["access_token"]));
                    using (var response = request.GetResponse())
                    {
                        using (var responseStream = response.GetResponseStream())
                        {
                            var graph = FacebookGraph.Deserialize(responseStream);
                            var profile = ProfileFromFacebook(graph);
                            return profile;
                        }
                    }
                }
                return LoginProfile.FromError(new Exception(result.ErrorReason));
            }
            //Maybe we didn't query
            var extendedPermissions = new[] { "email", "user_about_me" };
            var parameters = new Dictionary<string, object>
                                 {
                                     { "display", "popup" }
                                 };

            if (extendedPermissions.Length > 0)
            {
                var scope = new StringBuilder();
                scope.Append(string.Join(",", extendedPermissions));
                parameters["scope"] = scope.ToString();
            }
            var loginUrl = oauth.GetLoginUrl(parameters);
            context.Response.Redirect(loginUrl.ToString());
            return LoginProfile.FromError(new Exception("Failed to login with facebook"));




            //var client = new FacebookClient
            //                 {
            //                     ClientIdentifier = KeyStorage.Get("facebookAppID"),
            //                     ClientSecret = KeyStorage.Get("facebookAppSecret"),
            //                 };
            //try
            //{
            //    IAuthorizationState authorization = client.ProcessUserAuthorization(new HttpRequestInfo(context.Request));
            //    if (authorization == null)
            //    {
            //        // Kick off authorization request
            //        var scope = new List<string>()
            //                    {
            //                        "email,user_about_me",
            //                    };
            //        client.RequestUserAuthorization(scope, null, null);
            //    }
            //    else
            //    {
            //        var request = WebRequest.Create("https://graph.facebook.com/me?access_token=" + Uri.EscapeDataString(authorization.AccessToken));
            //        using (var response = request.GetResponse())
            //        {
            //            if (response != null)
            //                using (var responseStream = response.GetResponseStream())
            //                {
            //                    var graph = FacebookGraph.Deserialize(responseStream);
            //                    var profile = ProfileFromFacebook(graph);
            //                    return profile;
            //                }
            //        }
            //    }
            //}
            //catch (ProtocolException e)
            //{
            //    if (e.InnerException is WebException)
            //    {
            //        //Read stream
            //        var responce =
            //            new StreamReader((e.InnerException as WebException).Response.GetResponseStream()).ReadToEnd();
            //    }
            //    throw;
            //}

        }
Exemplo n.º 17
0
 private static void SetDefaultTokens(TwitterApiInfo apiInfo)
 {
     apiInfo.AccessToken       = KeyStorage.Get(SocialMediaConstants.ConfigKeyTwitterDefaultAccessToken);
     apiInfo.AccessTokenSecret = KeyStorage.Get(SocialMediaConstants.ConfigKeyTwitterDefaultAccessTokenSecret);
 }
Exemplo n.º 18
0
 public void Setup()
 {
     zoho = new Zoho(KeyStorage.Get("zoho"), "*****@*****.**", "1111");
 }
Exemplo n.º 19
0
 protected override void BuildRequestString(string message)
 {
     RequestedString = String.Format(KeyStorage.Get("smsOperatorMask_smsc"), KeyStorage.Get("smsOperatorLogin_smsc"), KeyStorage.Get("smsOperatorPass_smsc"), PhoneNumber, message);
 }
Exemplo n.º 20
0
 public void TestBadPassword()
 {
     zoho = new Zoho(KeyStorage.Get("zoho"), "*****@*****.**", "2222");
 }