Esempio n. 1
0
        private void SetTemplate()
        {
            HeaderPanel.RenderTransform    = new TranslateTransform();
            HistoryHeader.RenderTransform  = new TranslateTransform();
            HistoryGrid.RenderTransform    = new TranslateTransform();
            ScriptDesc.RenderTransform     = new TranslateTransform();
            InfoPanel.RenderTransform      = new TranslateTransform();
            StatPanel.RenderTransform      = new TranslateTransform();
            AccessControls.RenderTransform = new TranslateTransform();

            Member = X.Singleton <SHMember>(XProto.SHMember);

            if (BindItem.Encrypted)
            {
                Crypt = (CryptAES) new AESManager().GetAuthById(BindItem.Id);
            }

            AccessToken = ( string )new TokenManager().GetAuthById(BindItem.Id)?.Value;

            if (!string.IsNullOrEmpty(AccessToken) || (Member.IsLoggedIn && Member.Id == BindItem.AuthorId))
            {
                TransitionDisplay.SetState(AccessControls, TransitionState.Active);
            }

            Unloaded += ScriptDetails_Unloaded;

            UpdateTemplate(BindItem);
        }
Esempio n. 2
0
        internal HSCommentView(HubScriptItem HSI, CryptAES Crypt)
            : this()
        {
            this.Crypt = Crypt;
            BindItem   = HSI;

            SetTemplate();
        }
Esempio n. 3
0
        private IList <HSComment> CrippledComments(IList <HSComment> Comments)
        {
            foreach (HSComment HSC in Comments)
            {
                HSC.DecFailed = true;
                HSC.Title     = CryptAES.RawBytes(HSC.Title);
            }

            return(Comments);
        }
Esempio n. 4
0
        public HSRequestView(HubScriptItem HSI, CryptAES Crypt, SHTarget ReqTarget, string AccessToken)
            : this()
        {
            BindItem         = HSI;
            this.Crypt       = Crypt;
            this.ReqTarget   = ReqTarget;
            this.AccessToken = AccessToken;

            XGrant.SetParameter(BindItem.Id, CustomAnchor.TimeKey);
            ShowRequest(ReqTarget);
        }
Esempio n. 5
0
        private async void AssignKey(object sender, RoutedEventArgs e)
        {
            StringResources stx        = StringResources.Load("ContextMenu");
            AssignAuth      RequestBox = new AssignAuth(new AESManager(), stx.Text("AssignKey"));
            await Popups.ShowDialog(RequestBox);

            if (RequestBox.Canceled || RequestBox.SelectedAuth == null)
            {
                return;
            }

            Crypt = ( CryptAES )RequestBox.SelectedAuth;
        }
Esempio n. 6
0
        private IList <HSComment> DecryptComments(IList <HSComment> Comments)
        {
            foreach (HSComment HSC in Comments)
            {
                try
                {
                    HSC.Title = Crypt.Decrypt(HSC.Title);
                }
                catch (Exception)
                {
                    HSC.DecFailed = true;
                    HSC.Title     = CryptAES.RawBytes(HSC.Title);
                }
            }

            return(Comments);
        }
Esempio n. 7
0
        private async void Upload(object sender, RoutedEventArgs e)
        {
            if (MarkUpload())
            {
                return;
            }

            CryptAES Crypt = null;

            // Validate inputs
            try
            {
                Message.Text = "";
                if (SelectedBook == null)
                {
                    throw new ValidationError("VL_NoBook");
                }

                if (Encrypt.IsChecked == true)
                {
                    Crypt = Keys.SelectedItem as CryptAES;

                    if (Crypt == null)
                    {
                        throw new ValidationError("VL_NoKey");
                    }
                }

                if (string.IsNullOrEmpty(ReservedId) && AccessTokens.SelectedItem == null)
                {
                    throw new ValidationError("VL_NoToken");
                }

                if (ScopeLevel.SelectedItem == null)
                {
                    throw new ValidationError("VL_NoScope");
                }
            }
            catch (ValidationError ex)
            {
                StringResources stx = StringResources.Load("Error");

                Message.Text = stx.Str(ex.Message);
                MarkNotUpload();
                return;
            }

            // Check whether the script uuid is reserved
            NameValue <string> Token = (NameValue <string>)AccessTokens.SelectedItem;

            if (string.IsNullOrEmpty(ReservedId))
            {
                ReservedId = await ReserveId(Token.Value);
            }

            string Name = NameInput.Text.Trim();

            if (string.IsNullOrEmpty(Name))
            {
                Name = NameInput.PlaceholderText;
            }

            string Id = ReservedId;

            if (string.IsNullOrEmpty(Id))
            {
                Message.Text = "Failed to reserve id";
                return;
            }

            string Desc = DescInput.Text.Trim();
            string Zone = ZoneInput.Text;

            string[] Types = TypesInput.Text.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            string[] Tags  = TagsInput.Text.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

            SelectedBook.AssignId(Id);
            string Data = SelectedBook.PSettings.ToString();

            if (Crypt != null)
            {
                Data = Crypt.Encrypt(Data);
            }

            new RuntimeCache().POST(
                Shared.ShRequest.Server
                , Shared.ShRequest.ScriptUpload(
                    Token?.Value, Id
                    , Data, Name, Desc
                    , Zone, Types, Tags
                    , ( SpiderScope )ScopeLevel.SelectedValue
                    , Encrypt.IsChecked == true
                    , ForceCommentEnc.IsChecked == true
                    , Anon.IsChecked == true)
                , (Res, QueryId) =>
            {
                try
                {
                    JsonStatus.Parse(Res.ResponseString);
                    if (Token != null)
                    {
                        TokMgr.AssignId(Token.Name, Id);
                    }
                    if (Crypt != null)
                    {
                        AESMgr.AssignId(Crypt.Name, Id);
                    }

                    var j = Dispatcher.RunIdleAsync((x) => { OnExit(Id, Token?.Value); });
                }
                catch (Exception ex)
                {
                    ServerMessage(ex.Message);
                }

                MarkNotUpload();
            }
                , (c1, c2, ex) =>
            {
                ServerMessage(ex.Message);
                MarkNotUpload();
            }
                , false
                );
        }