Exemplo n.º 1
0
        protected void SendResetPassword(string email, string password, MembershipUser u)
        {
            Sitecore.Security.Accounts.User user = Sitecore.Security.Accounts.User.FromName(u.UserName, true);

            string name     = user.Profile.FullName;
            string username = user.LocalName;

            try
            {
                MailMessage message = new MailMessage();
                message.To.Add(email);
                message.From    = new MailAddress("*****@*****.**");
                message.Subject = "Reset Password Request for: " + username;
                message.Body    = name + ",\n\nA request to reset the password for your account has been made at PBS Pressroom.  Your new login information is as follows:\n\nUsername: "******"\nPassword: "******"\n\nYou may change your password in the same place you requested this new one.\n\nIf this request was a mistake please notify PBS Pressroom immediately by replying to this email.\n\nRegards,\nPBS Pressroom Team";
                Sitecore.MainUtil.SendMail(message);

                lblResetUserMessage.Text      = "An email will be sent to '" + email + "' with your reset password.  Please allow up to an hour for the email to arrive.";
                lblResetUserMessage.ForeColor = System.Drawing.Color.Green;

                forgotPasswordClose.Visible = true;
                checkUser.Visible           = false;
            }
            catch (Exception ex)
            {
                lblResetUserMessage.Text      = "Error: The system was unable to send you a reset password, please try agian.";
                lblResetUserMessage.ForeColor = System.Drawing.Color.Red;

                Sitecore.Diagnostics.Log.Error("Could not send auto reply email!", ex, this);
            }
        }
Exemplo n.º 2
0
        public void Process(Sitecore.Pipelines.LoggingIn.LoggingInArgs args)
        {
            Sitecore.Diagnostics.Assert.ArgumentNotNull(args, "args");

            if (args.StartUrl != "/sitecore/shell/default.aspx" ||
                !args.Success)
            {
                return;
            }

            string path = Sitecore.IO.FileUtil.MapPath(Sitecore.Configuration.Settings.WallpapersPath)
                          + "\\"
                          + Sitecore.Security.Domains.Domain.ExtractShortName(args.Username);

            if (!Directory.Exists(path))
            {
                return;
            }

            string[] files = Directory.GetFiles(path);

            if (files.Length < 1)
            {
                return;
            }

            Sitecore.Security.Accounts.User user = Sitecore.Security.Accounts.User.FromName(args.Username, true);
            int which = new Random().Next(files.Length - 1);

            user.Profile["Wallpaper"] = Sitecore.IO.FileUtil.UnmapPath(files[which]);
            user.Profile.Save();
        }
Exemplo n.º 3
0
        public static bool HasUnlockAccess(SC.Data.Items.Item item, SC.Security.Accounts.User user = null)
        {
            Assert.ArgumentNotNull(item, "item");

            if (user == null)
            {
                user = SC.Context.User;
                Assert.IsNotNull(user, "context user");
            }

            if (user.IsAdministrator)
            {
                return(true);
            }

            SC.Security.AccessControl.AccessRight checkIn = SC.Security.AccessControl.AccessRight.FromName("item:checkin");

            if (checkIn != null)
            {
                return(SC.Security.AccessControl.AuthorizationManager.IsAllowed(item, checkIn, user));
            }

            SC.Security.Accounts.Role control = SC.Security.Accounts.Role.FromName("sitecore\\Sitecore Client Maintaining");

            return(SC.Security.Accounts.Role.Exists(control.Name) && SC.Security.Accounts.RolesInRolesManager.IsUserInRole(SC.Context.User, control, true /*includeIndirectMembership*/));
        }
Exemplo n.º 4
0
        /// <summary>
        /// Gets a <see cref="User"/> by <see cref="User.UserName"/>.
        /// </summary>
        /// <param name="userName">Name of the user.</param>
        /// <returns></returns>
        /// <remarks>Adds new user if user doesn't exist</remarks>
        public virtual User GetUser(string userName)
        {
            if (string.IsNullOrWhiteSpace(userName))
            {
                throw new ArgumentException("userName cannot be null or whitespace.");
            }

            SitecoreUser sitecoreUser = GetUserInternal(userName);

            if (sitecoreUser == null)
            {
                throw new NullReferenceException(string.Format("'sitecoreUser' is null. Looked for: '{0}'", userName));
            }

            var name = sitecoreUser.LocalName;

            if (string.IsNullOrWhiteSpace(name))
            {
                throw new ArgumentException(string.Format("The 'sitecoreUser.userName' cannot be null or whitespace. LocalName: {0}, Domain: {1}, AccountType: {2}, Name: {3}", sitecoreUser.LocalName, sitecoreUser.Domain, sitecoreUser.AccountType, sitecoreUser.Name));
            }

            // Using static method on User to avoid circular
            // dependency between IRepository<T> and this service.
            // We need user info for audit in repo.
            var user = User.SingleOrDefault(x => x.ExternalId == name);

            return(MapUser(sitecoreUser));
        }
Exemplo n.º 5
0
        private List <Item> GetSitemapItems(string rootPath)
        {
            string disTpls   = SitemapManagerConfiguration.EnabledTemplates;
            string exclNames = SitemapManagerConfiguration.ExcludeItems;


            Database database = Factory.GetDatabase(SitemapManagerConfiguration.WorkingDatabase);

            Item contentRoot = database.Items[rootPath];

            Item[] descendants;
            Sitecore.Security.Accounts.User user = Sitecore.Security.Accounts.User.FromName(@"extranet\Anonymous", true);
            using (new Sitecore.Security.Accounts.UserSwitcher(user))
            {
                descendants = contentRoot.Axes.GetDescendants();
            }
            List <Item> sitemapItems = descendants.ToList();

            sitemapItems.Insert(0, contentRoot);

            List <string> enabledTemplates = this.BuildListFromString(disTpls, '|');
            List <string> excludedNames    = this.BuildListFromString(exclNames, '|');


            var selected = from itm in sitemapItems
                           where itm.Template != null && enabledTemplates.Contains(itm.Template.ID.ToString()) &&
                           !excludedNames.Contains(itm.ID.ToString())
                           select itm;

            return(selected.ToList());
        }
Exemplo n.º 6
0
        public static Guid GetUserGuid(this Sitecore.Security.Accounts.User user)
        {
            var membershipUser = System.Web.Security.Membership.GetUser(user.Name);
            var userId         = membershipUser.ProviderUserKey;

            return(new Guid(userId.ToString()));
        }
Exemplo n.º 7
0
        private List <Item> GetSitemapItems(string rootPath)
        {
            string disTpls   = SitemapManagerConfiguration.EnabledTemplates;
            string exclNames = SitemapManagerConfiguration.ExcludeItems;


            Database database = Factory.GetDatabase(SitemapManagerConfiguration.WorkingDatabase);

            Item contentRoot = database.Items[rootPath];

            if (contentRoot == null)
            {
                return(new List <Item>());
            }

            Item[] descendants;
            Sitecore.Security.Accounts.User user = Sitecore.Security.Accounts.User.FromName(@"extranet\Anonymous", true);
            using (new Sitecore.Security.Accounts.UserSwitcher(user))
            {
                descendants = contentRoot.Axes.GetDescendants();
            }
            List <Item> sitemapItems = descendants.ToList();

            sitemapItems.Insert(0, contentRoot);

            var enabledTemplates = new HashSet <string>(BuildListFromString(disTpls, '|'));
            var excludedNames    = new HashSet <string>(BuildListFromString(exclNames, '|'));

            List <Item> validItems = new List <Item>();

            foreach (var item in sitemapItems)
            {
                // ignore templates which are not enabled in sitemap
                if (item.Template != null && !enabledTemplates.Contains(item.Template.ID.ToString()))
                {
                    Log.Debug($"skipping item = {item.Paths.FullPath}, template id = {item.TemplateID}, because it is not enabled in sitemap configuration", this);
                    continue;
                }

                // ignore excluded items
                if (excludedNames.Contains(item.ID.ToString()))
                {
                    Log.Debug($"skipping item = {item.Paths.FullPath}, excluded", this);
                    continue;
                }

                // ignore descendants of excluded items
                if (item.Paths.GetPath(ItemPathType.ItemID).Split('/')
                    .Any(itemPathId => excludedNames.Contains(itemPathId)))
                {
                    Log.Debug($"skipping item = {item.Paths.FullPath}, because it is a descendant of an excluded item", this);
                    continue;
                }

                validItems.Add(item);
            }

            return(validItems);
        }
        public Boolean Add(int widgetType)
        {
            // Check if the type is correct.
            if (!WidgetsValidator.ValidateWidgetType(widgetType))
            {
                return(false);
            }

            // get sitecore context user
            Sitecore.Security.Accounts.User currentUser = Sitecore.Context.User;

            // load widgets setting from the context user
            string userWidgetsJson = currentUser.Profile.GetCustomProperty(Constants.UserCustomProperty.UserWidgets);


            List <SABB.Entities.Widgets.Widget> userWidgets;

            try
            {
                // deserilaize the JSON sting to list of Widgets entity
                userWidgets = JsonConvert.DeserializeObject <List <Widget> >(userWidgetsJson);
            }
            catch (Exception ex)
            {
                // log the exception
                Sitecore.Diagnostics.Log.Error("Error in user adding widgets, The object is:" + userWidgetsJson, ex, this);
                return(false);
            }

            // validate if the widget already added, if not then add it
            if (!userWidgets.Any(w => w.WidgetType == (WidgetType)widgetType))
            {
                userWidgets.Add(new Widget {
                    WidgetType = (WidgetType)widgetType, PlaceholderOrder = 1, Order = 1
                });

                // convert to JSON string
                string widgetJson = JsonConvert.SerializeObject(userWidgets);

                // save the value in the user profile
                using (new Sitecore.SecurityModel.SecurityDisabler())
                {
                    Sitecore.Security.Accounts.User user = Sitecore.Security.Accounts.User.FromName(Sitecore.Context.User.Name, true);

                    user.Profile.SetCustomProperty(Constants.UserCustomProperty.UserWidgets, widgetJson);

                    user.Profile.Save();
                }


                return(true);
            }
            else
            {
                return(false);
            }
        }
 protected virtual Member ToMember(MembershipUser membershipUser, User member)
 {
     return(new Member()
     {
         MemberId = membershipUser.ProviderUserKey != null?membershipUser.ProviderUserKey.ToString() : "",
                        LoginName = member.DisplayName,
                        Email = member.Profile.Email,
                        Password = member.Profile.LegacyPassword
     });
 }
Exemplo n.º 10
0
        public override void Display(DisplayElement dElement)
        {
            Sitecore.Security.Accounts.User user = dElement.Element as Sitecore.Security.Accounts.User;

            if (user == null)
            {
                return;
            }

            dElement.AddColumn("Name", user.Name);
            dElement.AddColumn("Display Name", user.DisplayName);
            dElement.AddColumn("Domain", user.Domain.Name);
            dElement.AddColumn("Is Admin", user.IsAdministrator ? "yes" : "no");
        }
Exemplo n.º 11
0
        private void SetButtonText(LinkButton button)
        {
            Sitecore.Security.Accounts.User user    = Sitecore.Context.User;
            Sitecore.Security.UserProfile   profile = user.Profile;
            string favorites = profile.GetCustomProperty("Favorites");

            if (favorites.Contains(Sitecore.Context.Item.ID.ToString()))
            {
                button.Text = GetDictionaryText("Remove from Favorites");
            }
            else
            {
                button.Text = GetDictionaryText("Add to Favorites");
            }
        }
        public Boolean Remove(int widgetType)
        {
            // Check if the type is correct.
            if (!WidgetsValidator.ValidateWidgetType(widgetType))
            {
                return(false);
            }

            // get sitecore context user
            Sitecore.Security.Accounts.User currentUser = Sitecore.Context.User;

            // load widgets setting from the context user
            string userWidgetsJson = currentUser.Profile.GetCustomProperty(Constants.UserCustomProperty.UserWidgets);


            List <SABB.Entities.Widgets.Widget> userWidgets;

            try
            {
                // deserilaize the JSON sting to list of Widgets entity
                userWidgets = JsonConvert.DeserializeObject <List <Widget> >(userWidgetsJson);
            }
            catch (Exception ex)
            {
                // log the exception
                Sitecore.Diagnostics.Log.Error("Error in user delete widgets, The object is:" + userWidgetsJson, ex, this);
                return(false);
            }


            userWidgets.Remove(userWidgets.SingleOrDefault(w => w.WidgetType == (WidgetType)widgetType));

            // serilize back to JSON string
            string widgetJson = JsonConvert.SerializeObject(userWidgets);

            // save the value in the user profile
            using (new Sitecore.SecurityModel.SecurityDisabler())
            {
                Sitecore.Security.Accounts.User user = Sitecore.Security.Accounts.User.FromName(Sitecore.Context.User.Name, true);

                user.Profile.SetCustomProperty(Constants.UserCustomProperty.UserWidgets, widgetJson);

                user.Profile.Save();
            }

            return(true);
        }
        private Sitecore.Security.Accounts.User GetUser()
        {
            if (Sitecore.Context.Items["profile_user"] == null)
            {
                Sitecore.Diagnostics.Assert.IsNotNull(Sitecore.Context.RawUrl, "RawUrl");
                string user = Sitecore.Context.RawUrl;
                int    pos  = user.IndexOf("?");

                if (pos > 0)
                {
                    user = user.Substring(0, pos);
                }

                pos = user.LastIndexOf("/");

                if (pos > 0)
                {
                    user = user.Substring(pos + 1);
                }

                pos = user.IndexOf(".aspx");

                if (pos > -1)
                {
                    user = user.Substring(0, pos);
                }

                user = Sitecore.Context.Domain + "\\" + user;

                if (!Sitecore.Security.Accounts.User.Exists(user))
                {
                    return(null);
                }

                Sitecore.Security.Accounts.User obj = Sitecore.Security.Accounts.Account.FromName(
                    user, Sitecore.Security.Accounts.AccountType.User)
                                                      as Sitecore.Security.Accounts.User;
                Sitecore.Context.Items["profile_user"] = obj;
            }

            if (Sitecore.Context.Items["profile_user"] == null)
            {
                return(null);
            }

            return(Sitecore.Context.Items["profile_user"] as Sitecore.Security.Accounts.User);
        }
Exemplo n.º 14
0
 protected virtual User GetOrCreateUser(SitecoreUser sitecoreUser)
 {
     lock (_lock)
     {
         var user = User.SingleOrDefault(u => u.ExternalId.ToUpper() == sitecoreUser.LocalName.ToUpper());
         if (user == null)
         {
             user            = new User(sitecoreUser.LocalName);
             user.ExternalId = sitecoreUser.LocalName;
             user.UserGroups = _userGroupService.GetAllUserGroups().Where(x => x.ExternalId.ToUpper() == sitecoreUser.LocalName.ToUpper()).ToList();
             if (user.ExternalId != null)
             {
                 user.Save();
             }
         }
         return(user);
     }
 }
Exemplo n.º 15
0
        /// <summary>
        /// Creates an item in the media library from a file. Saves it to the specified path in the media library
        /// </summary>
        /// <param name="filePath"></param>
        /// <param name="itemName"></param>
        /// <param name="fileExtension"></param>
        /// <param name="mediaLibraryPath">Path in sitecore to save the file</param>
        /// <returns></returns>
        public MediaItem CreateMediaLibraryItemFromFile(string filePath, string itemName, string fileExtension, string mediaLibraryPath)
        {
            Sitecore.Security.Accounts.User user = Sitecore.Security.Accounts.User.Current;
            MediaCreatorOptions             mediaCreatorOptions = GetDefaultMediaCreatorOptions(Constants.MediaLibraryRoot + mediaLibraryPath, itemName.Replace("-", ""));

            //using (new Sitecore.Security.Accounts.UserSwitcher(user))
            using (new Sitecore.SecurityModel.SecurityDisabler())
            {
                try
                {
                    //first, find the item, if it exists already
                    string itempath  = mediaCreatorOptions.Destination;
                    Item   mediaItem = _sitecoreMasterService.GetItem <Item>(itempath);
                    if (mediaItem == null)
                    {
                        //new media item
                        MediaItem media = MediaManager.Creator.CreateFromFile(filePath, mediaCreatorOptions);
                        return(media);
                    }
                    else
                    {
                        //existing media item, update and increment version.
                        MediaItem media = mediaItem;
                        MediaItem newMedia;

                        Stream stream = new FileStream(filePath, FileMode.Open);
                        using (new EditContext(media))
                        {
                            newMedia = media.InnerItem.Versions.AddVersion();

                            Media data        = MediaManager.GetMedia(newMedia);
                            var   mediaStream = new MediaStream(stream, fileExtension, mediaItem);
                            data.SetStream(mediaStream);
                        }

                        return(newMedia);
                    }
                }
                catch (Exception e)
                {
                    throw new Exception("CreateMediaLibraryItemFromFile: Cannot create Media Option from file = " + filePath, e);
                }
            }
        }
Exemplo n.º 16
0
 protected virtual void AddDecorations(BooleanQuery result)
 {
     Assert.ArgumentNotNull(result, "result");
     Sitecore.Security.Accounts.User user = this.User;
     if (user != null)
     {
         result.Add(new TermQuery(new Term(BuiltinFields.Creator, user.Name)), Occur.SHOULD);
         result.Add(new TermQuery(new Term(BuiltinFields.Editor, user.Name)), Occur.SHOULD);
     }
     Sitecore.Data.Items.Item item = this.Item;
     if (item != null)
     {
         result.Add(new TermQuery(new Term(BuiltinFields.Path, ShortID.Encode(item.ID).ToLowerInvariant())), Occur.MUST);
         result.Add(new TermQuery(new Term(BuiltinFields.Database, item.Database.Name.ToLowerInvariant())), Occur.MUST);
         if (this.ContentLanguage == null)
         {
             result.Add(new TermQuery(new Term(BuiltinFields.Language, item.Language.ToString().ToLowerInvariant())), Occur.MUST);
         }
     }
     if (this.ContentLanguage != null)
     {
         TermQuery query = new TermQuery(new Term(BuiltinFields.Language, this.ContentLanguage.ToString().ToLowerInvariant()));
         result.Add(query, Occur.MUST);
     }
     if (!this.IgnoreContentEditorOptions)
     {
         if (!UserOptions.View.ShowHiddenItems)
         {
             result.Add(new TermQuery(new Term(BuiltinFields.Hidden, "1")), Occur.MUST_NOT);
         }
         if (!UserOptions.View.ShowEntireTree && (item != null))
         {
             Sitecore.Data.Items.Item item2 = item.Database.GetItem(RootSections.GetSection(item));
             if (item2 != null)
             {
                 result.Add(new TermQuery(new Term(BuiltinFields.Path, ShortID.Encode(item2.ID).ToLowerInvariant())), Occur.MUST);
             }
         }
     }
     if (TemplateID != default(Guid))
     {
         result.Add(new TermQuery(new Term(BuiltinFields.Template, new ShortID(TemplateID).ToString().ToLowerInvariant())), Occur.MUST);
     }
 }
Exemplo n.º 17
0
        public static bool CanCheckIn(SC.Data.Items.Item item, SC.Security.Accounts.User user = null)
        {
            Assert.ArgumentNotNull(item, "item");

            if (user == null)
            {
                user = SC.Context.User;
                Assert.IsNotNull(user, "context user");
            }

            if (item.Appearance.ReadOnly || !item.Locking.IsLocked() || !item.Access.CanWrite() || !item.Access.CanWriteLanguage())
            {
                return(false);
            }

            return(user.IsAdministrator ||
                   string.Compare(item.Locking.GetOwner(), user.Name, System.StringComparison.OrdinalIgnoreCase) == 0 ||
                   CheckIn.HasUnlockAccess(item));
        }
        public ActionResult FavoritesNavigation()
        {
            List <GenericLink> favs = new List <GenericLink>();

            Sitecore.Security.Accounts.User user    = Sitecore.Context.User;
            Sitecore.Security.UserProfile   profile = user.Profile;
            string ItemIds = profile.GetCustomProperty("Favorites");

            foreach (string itemId in ItemIds.Split('|'))
            {
                Item item = Sitecore.Context.Database.GetItem(itemId);
                if (item != null)
                {
                    favs.Add(new GenericLink(item["Menu Title"], LinkManager.GetItemUrl(item), false));
                }
            }

            return((favs.Count > 0) ? View("TertiaryNavigationPartialFavorites", favs as IEnumerable <GenericLink>) : null);
        }
Exemplo n.º 19
0
        public static List <object[]> GetUserPropertiesFull(Sitecore.Security.Accounts.User u)
        {
            var results = new List <object[]>()
            {
                new object[] { "User Property", "Value" },
                new object[] { "Name", u.Name },
                new object[] { "DisplayName", u.DisplayName },
                new object[] { "Roles", u.Roles.Select(r => r.Name) },
                // new object[] { "AccountType", u.AccountType},
                new object[] { "Description", u.Description },
                new object[] { "Domain Name", u.GetDomainName() },
                new object[] { "IsAdministrator", u.IsAdministrator },
                new object[] { "IsAuthenticated", u.IsAuthenticated },
                new object[] { "LocalName", u.LocalName },
                // new object[] { "Profile", u.Profile},
            };

            return(results);
        }
Exemplo n.º 20
0
        // GET api/<controller>
        public JsonResult <List <string> > Get(string username)
        {
            List <string> lockUserInformation = new List <string>();

            try
            {
                Sitecore.Security.Accounts.User editor = Sitecore.Security.Accounts.User.FromName(username, false);
                if (editor != null && !string.IsNullOrEmpty(editor.Profile.FullName))
                {
                    lockUserInformation.Add(editor.Profile.FullName);
                    lockUserInformation.Add(editor.Profile.Email);
                }
            }
            catch (Exception ex)
            {
                // ignored
            }
            return(Json(lockUserInformation));
        }
Exemplo n.º 21
0
        /// <summary>
        /// Converts a SiteCore user to a <see cref="User"/>.
        /// </summary>
        /// <param name="sitecoreUser">The Sitecore user.</param>
        /// <returns>UCommerce User representing the Sitecore user.</returns>
        protected virtual User MapUser(SitecoreUser sitecoreUser)
        {
            var user = GetOrCreateUser(sitecoreUser);

            user.UserName   = sitecoreUser.LocalName;
            user.FirstName  = sitecoreUser.LocalName;
            user.ExternalId = sitecoreUser.LocalName;
            user.IsAdmin    = sitecoreUser.IsAdministrator;

            foreach (var userGroup in _userGroupService.GetAllUserGroups())
            {
                if (sitecoreUser.Roles.Any(x => x.LocalName == userGroup.ExternalId))
                {
                    user.UserGroups.Add(userGroup);
                }
            }

            return(user);
        }
        public Boolean Sort(string widgets)
        {
            // validate the JSON:
            // 1- check if the type is correct.
            // 2- check if the user send the correct placeholder ids
            if (!WidgetsValidator.Validate(widgets))
            {
                return(false);
            }

            List <SABB.Entities.Widgets.Widget> userWidgets;

            try
            {
                // deserilaize the JSON sting to list of Widgets entity
                userWidgets = JsonConvert.DeserializeObject <List <Widget> >(widgets);
            }
            catch (Exception ex)
            {
                // log the exception
                Sitecore.Diagnostics.Log.Error("Error in user widget sorting, The object is:" + widgets, ex, this);
                return(false);
            }



            // serilize back to JSON string
            string widgetJson = JsonConvert.SerializeObject(userWidgets);

            // save the value in the user profile
            using (new Sitecore.SecurityModel.SecurityDisabler())
            {
                Sitecore.Security.Accounts.User user = Sitecore.Security.Accounts.User.FromName(Sitecore.Context.User.Name, true);

                user.Profile.SetCustomProperty(Constants.UserCustomProperty.UserWidgets, widgetJson);

                user.Profile.Save();
            }


            return(true);
        }
        protected override void DoRender(HtmlTextWriter output)
        {
            Sitecore.Security.Accounts.User user = this.GetUser();

            if (user == null)
            {
                output.WriteLine("No such user.<br /><br />");
            }
            else
            {
                output.WriteLine("Username: "******"<br />");
                output.WriteLine("Email: " + user.Profile.Email + "<br /><br />" + Sitecore.Context.Domain.Name + "<br />");
            }

            foreach (Sitecore.Security.Accounts.User member in Sitecore.Context.Domain.GetUsers())
            {
                output.WriteLine(@"<a href=""/users/" + member.LocalName + @".aspx"">" + member.LocalName + "</a><br />");
            }

            output.WriteLine("<br />");
        }
        public ActionResult AddToFavorites(string itemId)
        {
            try
            {
                Sitecore.Security.Accounts.User user    = Sitecore.Context.User;
                Sitecore.Security.UserProfile   profile = user.Profile;
                string favorites = profile.GetCustomProperty("Favorites");

                // determine if we are adding or removing.
                // We don't know the text of the button because it is managed in the CMS, so we will see it is already a favorite.
                if (favorites.Contains(Sitecore.Context.Item.ID.ToString()))
                {
                    favorites = favorites.Replace(Sitecore.Context.Item.ID.ToString(), String.Empty);
                    favorites = favorites.Replace("||", "|"); // when removing we may leave a double pipe
                    if (favorites == "|")
                    {
                        favorites = String.Empty;
                    }
                }
                else // it must be an add
                {
                    if (favorites == String.Empty)
                    {
                        favorites = Sitecore.Context.Item.ID.ToString();
                    }
                    else
                    {
                        favorites = favorites + "|" + Sitecore.Context.Item.ID.ToString();
                    }

                    // Capture the goal
                    AnalyticsHelper.RegisterGoalOnCurrentPage("Add a Favorite", "[Add a Favorite] : \"" + Sitecore.Context.Item.Name + "\"");
                }

                profile.SetCustomProperty("Favorites", favorites);
                profile.Save();
            }
            catch { }
            return(View("AddToFavorites", IsAddToFavorites));
        }
        protected void btnAddtoFavs_Click(object sender, EventArgs e)
        {
            Sitecore.Security.Accounts.User user    = Sitecore.Context.User;
            Sitecore.Security.UserProfile   profile = user.Profile;
            string favorites = profile.GetCustomProperty("Favorites");

            // determine if we are adding or removing.
            // We don't know the text of the button because it is managed in the CMS, so we will see it is already a favorite.
            if (favorites.Contains(Sitecore.Context.Item.ID.ToString()))
            {
                favorites = favorites.Replace(Sitecore.Context.Item.ID.ToString(), String.Empty);
                favorites = favorites.Replace("||", "|"); // when removeing we may leave a double pipe
                if (favorites == "|")
                {
                    favorites = String.Empty;
                }
            }
            else // it must be an add
            {
                if (favorites == String.Empty)
                {
                    favorites = Sitecore.Context.Item.ID.ToString();
                }
                else
                {
                    favorites = favorites + "|" + Sitecore.Context.Item.ID.ToString();
                }

                // Capture the goal using our helper method
                AnalyticsHelper.RegisterGoalOnCurrentPage("Add a Favorite", "[Add a Favorite] : \"" + Sitecore.Context.Item.Name + "\"");
                //Tracker.CurrentVisit.CurrentPage.Register("Add a Favorite", "[Add a Favorite] : \"" + Sitecore.Context.Item.Name + "\"");
            }

            profile.SetCustomProperty("Favorites", favorites);
            profile.Save();

            SetButtonText(sender as LinkButton);
        }
Exemplo n.º 26
0
        private List <Item> GetSitemapItems(string rootPath)
        {
            string disTpls   = SitemapManagerConfiguration.EnabledTemplates;
            string exclNames = SitemapManagerConfiguration.ExcludeItems;


            Item contentRoot = Db.Items[rootPath];

            if (contentRoot == null)
            {
                return(new List <Item>());
            }

            Item[] descendants;
            Sitecore.Security.Accounts.User user = Sitecore.Security.Accounts.User.FromName(@"extranet\Anonymous", true);
            using (new Sitecore.Security.Accounts.UserSwitcher(user))
            {
                descendants = contentRoot.Axes.GetDescendants();
            }
            List <Item> sitemapItems = descendants.ToList();

            sitemapItems.Insert(0, contentRoot);

            List <string> enabledTemplates = this.BuildListFromString(disTpls, '|');
            List <string> excludedNames    = this.BuildListFromString(exclNames, '|');
            List <Item>   selected;

            if (enabledTemplates.Any())
            {
                selected = sitemapItems.Where(itm => itm.Template != null && enabledTemplates.Contains(itm.Template.ID.ToString()) && !excludedNames.Contains(itm.ID.ToString())).ToList();
            }
            else
            {
                selected = sitemapItems.Where(itm => HasLayout(itm, DefaultDevice) && !excludedNames.Contains(itm.ID.ToString())).ToList();
            }

            return(selected);
        }
        protected void btnPrint_Click(object sender, EventArgs e)
        {
            Item projectItem = Sitecore.Context.Database.GetItem(this.projectPath);

            Sitecore.Security.Accounts.User user    = Sitecore.Context.User;
            Sitecore.Security.UserProfile   profile = user.Profile;

            if (projectItem != null)
            {
                string fileName = string.Format("{0}_{1}", projectItem.Name, DateTime.Now.Ticks.ToString());

                PrintOptions printOptions = new PrintOptions
                {
                    PrintExportType = PrintExportType.Pdf,
                    ResultFileName  = fileName,
                    UseHighRes      = false
                };

                Database masterBase = Factory.GetDatabase("master");

                printOptions.Parameters.Add("articles", profile.GetCustomProperty("Favorites"));

                PrintManager printManager = new PrintManager(masterBase, Sitecore.Context.Language);
                string       result       = printManager.Print(projectItem.ID.ToString(), printOptions);

                if (!string.IsNullOrEmpty(result) && File.Exists(result))
                {
                    var file = new FileInfo(result);
                    Response.ContentType = "application/pdf";
                    Response.AppendHeader("content-disposition", string.Format("attachment; filename={0}", file.Name));
                    Response.AppendHeader("Content-Length", file.Length.ToString());
                    Response.TransmitFile(file.FullName);
                    Response.Flush();
                    Response.End();
                }
            }
        }
        private void LoadFavorites()
        {
            List <Item> items = new List <Item>();

            Sitecore.Security.Accounts.User user    = Sitecore.Context.User;
            Sitecore.Security.UserProfile   profile = user.Profile;
            string ItemIds = profile.GetCustomProperty("Favorites");

            foreach (string itemId in ItemIds.Split('|'))
            {
                Item item = Sitecore.Context.Database.GetItem(itemId);
                if (item != null)
                {
                    items.Add(item);
                }
            }

            if (items.Count > 0)
            {
                favoritesli.Visible     = true;
                rptFavorites.DataSource = items;
                rptFavorites.DataBind();
            }
        }
        /// <summary>
        /// Creates package
        /// </summary>
        /// <param name="contextItem">Item on wich we create package</param>
        /// <param name="fileName">File name of generating package</param>
        /// <param name="includeDescendants">If including descendant items</param>
        /// <returns>Generated package path</returns>
        protected String CreatePackage(Item contextItem, String fileName, bool includeDescendants)
        {
            String filePath = String.Empty;

            string currentUserName = Sitecore.Context.User.Profile.FullName;

            Sitecore.Security.Accounts.User scUser = Sitecore.Security.Accounts.User.FromName("sitecore\\admin", false);

            using (new Sitecore.Security.Accounts.UserSwitcher(scUser))
            {
                Sitecore.Data.Database          db             = Context.ContentDatabase;
                Sitecore.Install.PackageProject packageProject = new Sitecore.Install.PackageProject();

                packageProject.Metadata.PackageName = PackageName.Value;
                packageProject.Metadata.Author      = currentUserName;

                Sitecore.Install.Items.ExplicitItemSource source = new Sitecore.Install.Items.ExplicitItemSource();
                source.Name = contextItem.Name;

                List <Item> items = new List <Item>();

                items.Add(db.Items.Database.GetItem(contextItem.Paths.Path));

                if (includeDescendants)
                {
                    var paths = Sitecore.StringUtil.Split(contextItem.Paths.Path, '/', true)
                                .Where(p => p != null & p != string.Empty)
                                .Select(p => "#" + p + "#")
                                .ToList();

                    String allChildQuery = string.Format("/{0}//*", Sitecore.StringUtil.Join(paths, "/"));

                    var children = db.Items.Database.SelectItems(allChildQuery);
                    if (children != null && children.Length > 0)
                    {
                        items.AddRange(children);
                    }
                }

                foreach (Item item in items)
                {
                    source.Entries.Add(new Sitecore.Install.Items.ItemReference(item.Uri, false).ToString());
                }

                packageProject.Sources.Add(source);
                packageProject.SaveProject = true;

                // - Path where the zip file package will be saved -
                filePath = Sitecore.Configuration.Settings.DataFolder + "/packages/" + fileName;

                using (Sitecore.Install.Zip.PackageWriter writer = new Sitecore.Install.Zip.PackageWriter(filePath))
                {
                    Sitecore.Context.SetActiveSite("shell");

                    writer.Initialize(Sitecore.Install.Installer.CreateInstallationContext());

                    Sitecore.Install.PackageGenerator.GeneratePackage(packageProject, writer);

                    Sitecore.Context.SetActiveSite("website");
                }
            }

            return(filePath);
        }
Exemplo n.º 30
0
 public static bool IsAuthenticatedOnDomain(this Sitecore.Security.Accounts.User user) => user.IsAuthenticated && user.Domain.Name == Sitecore.Context.Site.Domain.Name;
Exemplo n.º 31
0
 public FixedSearchContext(Sitecore.Security.Accounts.User user, Sitecore.Data.Items.Item item)
 {
     this._user = user;
     this._item = item;
 }
Exemplo n.º 32
0
 public FixedSearchContext(Sitecore.Security.Accounts.User user)
 {
     this._user = user;
 }