Esempio n. 1
0
        public async Task <IActionResult> OrgUserEdit(int?edit_oRG_USER_IDX, string uidx, string org_id, string AccessLevel, string StatusInd)
        {
            if (ModelState.IsValid)
            {
                int newID = _DbPortal.InsertUpdateT_PRT_ORG_USERS(edit_oRG_USER_IDX, org_id, uidx, AccessLevel, StatusInd, User.Identity.Name);

                if (newID == 0)
                {
                    TempData["Error"] = "Unable to add user to organization.";
                }
                else
                {
                    WordPressHelper wordPressHelper = new WordPressHelper(_userManager, _DbPortal, _log, _emailSender);
                    int             isWPUserAdded   = await wordPressHelper.SetupWordPressAccess(uidx, org_id, AccessLevel, StatusInd);

                    TempData["Success"] = "Record successfully added.";
                }
            }
            else
            {
                TempData["Error"] = "Unable to add user to organization.";
            }

            return(RedirectToAction("UserEdit", "Admin", new { id = uidx }));
        }
Esempio n. 2
0
        public void GetAuthorIdTest()
        {
            var helper     = new WordPressHelper(_baseUrl, _userName, _password);
            var expectedId = "15648409";
            var actualId   = helper.GetAuthorId("*****@*****.**");

            Assert.AreEqual(expectedId, actualId);
        }
Esempio n. 3
0
        public void GetCategoryDoesNotExistsTest()
        {
            var helper           = new WordPressHelper(_baseUrl, _userName, _password);
            var expectedTermName = Guid.NewGuid().ToString();
            var taxonomy         = "category";
            var actualTerm       = helper.GetTerm(expectedTermName, taxonomy, false);

            Assert.IsNull(actualTerm);
        }
Esempio n. 4
0
        public void GetCategoryExistsTest()
        {
            var helper           = new WordPressHelper(_baseUrl, _userName, _password);
            var expectedTermName = "TestCategory";
            var taxonomy         = "category";
            var actualTerm       = helper.GetTerm(expectedTermName, taxonomy, false);

            Assert.AreEqual(expectedTermName, actualTerm.Name);
        }
Esempio n. 5
0
        public Md2WpClient(string baseUrl, string userName, string password, string accountUrl,
                           string project, string repoName, string branch, string accessToken, string metadataFilename,
                           bool embedExternalImages, bool publishAsCommitter, bool processSubfolders, bool useFolderNameAsCategory,
                           bool useFolderNameAsTag, bool publishNewPostsAsDraft, bool trackPostIdInFilename,
                           bool addEditLink, string editLinkText, string editLinkStyle)
        {
            Logger.LogMessage("MDWWPClient::ctor");
            Logger.LogMessage($"  BaseUrl = {baseUrl}");
            Logger.LogMessage($"  UserName = {userName}");
            Logger.LogMessage("  Password = ********");
            Logger.LogMessage($"  Account URL = {accountUrl}");
            Logger.LogMessage($"  Project = {project}");
            Logger.LogMessage($"  RepoName = {repoName}");
            Logger.LogMessage($"  Branch = {branch}");
            Logger.LogMessage("  AccessToken = ********");
            Logger.LogMessage($"  MetadataFilename = {metadataFilename}");
            Logger.LogMessage($"  EmbedExternalImages = {embedExternalImages}");
            Logger.LogMessage($"  PublishAsCommitter = {publishAsCommitter}");
            Logger.LogMessage($"  ProcessSubfolders = {processSubfolders}");
            Logger.LogMessage($"  UseFolderNameAsCategory = {useFolderNameAsCategory}");
            Logger.LogMessage($"  UseFolderNameAsTag = {useFolderNameAsTag}");
            Logger.LogMessage($"  PublishNewPostsAsDraft = {publishNewPostsAsDraft}");
            Logger.LogMessage($"  TrackPostIdInFilename = {trackPostIdInFilename}");
            Logger.LogMessage($"  AddEditLink = {addEditLink}");
            Logger.LogMessage($"  EditLinkText = {editLinkText}");
            Logger.LogMessage($"  editLinkStyle = {editLinkStyle}");

            vstsAuthentication = new BasicAuthentication(accountUrl, string.Empty, accessToken);
            vstsHelper         = new VstsHelper();
            wpHelper           = new WordPressHelper(baseUrl, userName, password);

            //siteConfig = new WordPressSiteConfig()
            //{
            //    BaseUrl = baseUrl,
            //    Username = userName,
            //    Password = password
            //};

            //this.accountUrl = accountUrl;
            this.project  = project;
            this.repoName = repoName;
            this.branch   = branch;
            //this.accessToken = accessToken;
            this.metadataFilename        = metadataFilename.TrimStart('\\');
            this.embedExternalImages     = embedExternalImages;
            this.publishAsCommitter      = publishAsCommitter;
            this.processSubfolders       = processSubfolders;
            this.useFolderNameAsCategory = useFolderNameAsCategory;
            this.useFolderNameAsTag      = useFolderNameAsTag;
            this.publishNewPostsAsDraft  = publishNewPostsAsDraft;
            this.trackPostIdInFilename   = trackPostIdInFilename;
            this.addEditLink             = addEditLink;
            this.editLinkText            = editLinkText;
            this.editLinkStyle           = editLinkStyle;
        }
Esempio n. 6
0
        public void CreateCategoryTest()
        {
            var helper           = new WordPressHelper(_baseUrl, _userName, _password);
            var expectedTermName = Guid.NewGuid().ToString();
            var taxonomy         = "category";
            var actualId         = helper.CreateTerm(expectedTermName, taxonomy);

            Assert.IsNotNull(actualId);
            Assert.IsTrue(int.Parse(actualId) > 0);

            helper.DeleteTerm(int.Parse(actualId), taxonomy);
        }
Esempio n. 7
0
        public void DeleteTagTest()
        {
            var helper           = new WordPressHelper(_baseUrl, _userName, _password);
            var expectedTermName = Guid.NewGuid().ToString();
            var taxonomy         = "post_tag";
            var actualId         = helper.CreateTerm(expectedTermName, taxonomy);

            Assert.IsNotNull(actualId);
            Assert.IsTrue(int.Parse(actualId) > 0);

            helper.DeleteTerm(int.Parse(actualId), taxonomy);

            var term = helper.GetTerm(expectedTermName, taxonomy, false);

            Assert.IsNull(term);
        }
        public async void UpdateData()
        {
            ProgressHelper.EnableRing = true;

            Options = await WordPressHelper.GetOptions();

            Posts = await WordPressHelper.Client.GetPostsAsync(new WordPressPostFilter()
            {
                Size = 10, Order = WordPressOrder.desc, OrderBy = WordPressPostOrderBy.modified
            });

            Categories = await WordPressHelper.Client.GetTermsAsync("category", new WordPressTermFilter()
            {
                Order = WordPressOrder.desc, OrderBy = WordPressTermOrderBy.count
            });

            ProgressHelper.EnableRing = false;
        }
Esempio n. 9
0
        public void DeletePostTest()
        {
            var helper     = new WordPressHelper(_baseUrl, _userName, _password);
            var postTitle  = "Integration Test Post";
            var postStatus = helper.CreatePost(postTitle, "This is an integration test...",
                                               0, "post",
                                               null, null, true, true,
                                               "Jeff Bramwell", "*****@*****.**", true);

            Assert.IsNotNull(postStatus);

            if (postStatus != null)
            {
                helper.DeletePost(postStatus.Id);

                var post = helper.GetPost(postStatus.Id);

                Assert.AreEqual("trash", post.Status);
            }
        }
        private async void GenerateHtmlContent()
        {
            var ret = "";

            if (_post != null && _post.Content != null)
            {
                var options = await WordPressHelper.GetOptions();

                var cssUrl = String.Format("{0}/wp-content/themes/{1}/style.css", options.BlogUrl.Value, options.Stylesheet.Value);
                //   options.BlogUrl.Value + "/wp-content/themes/" + options.Stylesheet.Value + "/style.css";
                ret = $@"<html>
                              <body>
                                <link rel='stylesheet' type='text/css' href='{cssUrl}'/>
                                {_post.Content}
                              </body>
                            </html>";
            }

            HtmlContent = ret;
        }
Esempio n. 11
0
        public async Task <JsonResult> OrgUserDelete(int id, string id2)
        {
            T_PRT_ORG_USERS orgUser = _DbPortal.GetT_PRT_ORG_USERS_ByOrgUserID(id);
            int             succId  = _DbPortal.DeleteT_PRT_ORG_USERS(orgUser);

            if (succId > 0)
            {
                WordPressHelper.SetUserManager(_userManager);
                ApplicationUser appUser = await WordPressHelper.GetApplicationUser(orgUser.Id);

                WordPressHelper wordPressHelper = new WordPressHelper(_userManager, _DbPortal, _log, _emailSender);
                int             orgUserCount    = _DbPortal.GetOrgUsersCount(orgUser.Id);
                if (orgUserCount == 0)
                {
                    //if we have user in wordpress, make it inactive
                    if (appUser.WordPressUserId > 0)
                    {
                        //string wordPressUri = wordPressHelper.SetWordPressUri(orgUser.ORG_ID);
                        // string userName = wordPressHelper.GetUserName();
                        // string password = wordPressHelper.GetPassword();
                        int.TryParse(appUser.WordPressUserId.ToString(), out var wpuid);
                        //WordPressClient wordPressClient = await wordPressHelper.GetAuthenticatedWordPressClient(wordPressUri, userName, password);
                        WordPressClient wordPressClient = await wordPressHelper.GetAuthenticatedWordPressClient(orgUser.ORG_ID);

                        bool isUserUpdated = await wordPressHelper.UpdateWordPressUser(appUser, wordPressClient, wpuid, "inactive");
                    }
                }
                else
                {
                    //revoke access from the site/organization from wordpress
                    int.TryParse(appUser.WordPressUserId.ToString(), out var wpuid);
                    wordPressHelper.AddRemoveUserSite(wpuid, orgUser.ORG_ID, 0);
                }
                return(Json("Success"));
            }
            else
            {
                return(Json("Unable to delete user from organization."));
            }
        }
Esempio n. 12
0
        public void CreateNewPublicAsDraftPostTest()
        {
            var helper = new WordPressHelper(_baseUrl, _userName, _password);

            // Arrange
            var postTitle             = "Integration Test Post";
            var publishNewPostAsDraft = true;
            var isDraft            = false;
            var publishAsCommitter = true;

            // Act
            var postStatus = helper.CreatePost(postTitle,
                                               "This is an integration test...",
                                               0,
                                               "post",
                                               null,
                                               null,
                                               isDraft,
                                               publishNewPostAsDraft,
                                               "Jeff Bramwell",
                                               "*****@*****.**",
                                               publishAsCommitter);

            // Assert
            Assert.IsNotNull(postStatus);
            Assert.IsTrue(postStatus.IsDraft);

            if (postStatus != null)
            {
                var post = helper.GetPost(postStatus.Id);

                // Delete the post before doing assertions
                helper.DeletePost(postStatus.Id);

                Assert.AreEqual(postTitle, post.Title);
                Assert.AreEqual("draft", post.Status);
            }
        }
Esempio n. 13
0
 public async void UpdateData()
 {
     Options = await WordPressHelper.GetOptions();
 }
Esempio n. 14
0
        public async Task <IActionResult> ChangePassword(ChangePasswordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
            }

            var changePasswordResult = await _userManager.ChangePasswordAsync(user, model.OldPassword, model.NewPassword);

            if (!changePasswordResult.Succeeded)
            {
                AddErrors(changePasswordResult);
                return(View(model));
            }
            _log.InsertT_PRT_SYS_LOG("Info", "Password changed successfully, begin wordpress activities.");
            string          wpMessage       = "";
            WordPressHelper wordPressHelper = new WordPressHelper(_userManager, _DbPortal, _log, _emailSender);

            //We need this password to setup in WordPress
            _DbPortal.UpdateT_PRT_USERS_PasswordEncrypt(user, model.NewPassword);
            if (user.WordPressUserId == null || user.WordPressUserId <= 0)
            {
                _log.InsertT_PRT_SYS_LOG("Info", "WordPressUserId not set, hence create new user.");
                List <UserOrgDisplayType> userOrgDisplayTypes = _DbPortal.GetT_PRT_ORG_USERS_ByUserID(user.Id);
                if (userOrgDisplayTypes != null && userOrgDisplayTypes.Count > 0)
                {
                    _log.InsertT_PRT_SYS_LOG("Info", "User-Org relation found.");
                    int isWordPressUserCreated = 0;
                    foreach (UserOrgDisplayType uodt in userOrgDisplayTypes)
                    {
                        IList <string> sites = "ABSHAWNEE,KICKAPOO,MCNCREEK,SFNOES".Split(",");
                        if (sites.Contains(uodt.ORG_ID.Trim().ToUpper()))
                        {
                            if (uodt.ACCESS_LEVEL == "A" && uodt.STATUS_IND == "A")
                            {
                                //_log.InsertT_PRT_SYS_LOG("Info", "Create user for org:" + uodt.ORG_NAME);
                                if (isWordPressUserCreated == 0)
                                {
                                    isWordPressUserCreated = await wordPressHelper.SetupWordPressAccess(user.Id, uodt.ORG_ID, uodt.ACCESS_LEVEL, uodt.STATUS_IND);

                                    if (isWordPressUserCreated == 0)
                                    {
                                        //_log.InsertT_PRT_SYS_LOG("Info", "User could not be created for org:" + uodt.ORG_NAME);
                                        wpMessage = "(Something went wrong with WordPress related activity!)";
                                    }
                                    //_log.InsertT_PRT_SYS_LOG("Info", "User created for org:" + uodt.ORG_NAME);
                                }
                                else
                                {
                                    //_log.InsertT_PRT_SYS_LOG("Info", "Assign user to remaining sites/organizations: " + uodt.ORG_NAME);
                                    //Assign user to remaining sites
                                    int wpuid = 0;
                                    Int32.TryParse(user.WordPressUserId.ToString(), out wpuid);
                                    var isUserUpdated = wordPressHelper.AddRemoveUserSite(wpuid, uodt.ORG_ID, 1);
                                    if (isUserUpdated == false)
                                    {
                                        //_log.InsertT_PRT_SYS_LOG("Info", "User could not be assigned to remaining sites/organizations for: " + uodt.ORG_NAME);
                                        wpMessage = "(Something went wrong with WordPress related activity!)";
                                    }
                                    //_log.InsertT_PRT_SYS_LOG("Info", "User assigned to remaining sites/organizations for: " + uodt.ORG_NAME);
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                _log.InsertT_PRT_SYS_LOG("Info", "WordPressUserId is set hence we update password for all the sites/organizations.");
                List <UserOrgDisplayType> userOrgDisplayTypes = _DbPortal.GetT_PRT_ORG_USERS_ByUserID(user.Id);
                Boolean isPasswordUpdated = false;
                foreach (UserOrgDisplayType uodt in userOrgDisplayTypes)
                {
                    IList <string> sites = "ABSHAWNEE,KICKAPOO,MCNCREEK,SFNOES".Split(",");

                    if (sites.Contains(uodt.ORG_ID.Trim().ToUpper()))
                    {
                        if (uodt.ACCESS_LEVEL == "A" && uodt.STATUS_IND == "A")
                        {
                            int wpuid = 0;
                            Int32.TryParse(user.WordPressUserId.ToString(), out wpuid);
                            WordPressClient wordPressClient = await wordPressHelper.GetAuthenticatedWordPressClient(uodt.ORG_ID);

                            string role = "administrator";
                            if (uodt.ACCESS_LEVEL != "A" || uodt.STATUS_IND != "A")
                            {
                                role = "inactive";
                            }
                            isPasswordUpdated = await wordPressHelper.UpdateWordPressUser(user, wordPressClient, wpuid, role);

                            if (isPasswordUpdated == false)
                            {
                                _log.InsertT_PRT_SYS_LOG("Info", "Password could not be updated for org: " + uodt.ORG_NAME);
                                wpMessage = "(Something went wrong with WordPress related activity!)";
                            }
                            _log.InsertT_PRT_SYS_LOG("Info", "Password updated for org: " + uodt.ORG_NAME);
                        }
                    }
                }
            }
            await _signInManager.SignInAsync(user, isPersistent : false);

            _logger.LogInformation("User changed their password successfully.");
            StatusMessage = "Your password has been changed. " + wpMessage;

            return(RedirectToAction(nameof(ChangePassword)));
        }