Example #1
0
        public void CreateUserItem(IUser p_User,
                                   IItem p_ParentItem,
                                   ITemplateItem p_Template,
                                   IDatabase p_Database)
        {
            IItem item = p_Database.GetItem(Path + "/" + Domain + "/" + p_User.Name) ?? p_ParentItem.AddItem(p_User.Name, p_Template);

            RunEditFieldPipeline(item, p_User);
        }
Example #2
0
        private IItem GetItem(IDatabase p_Database,
                              string p_Path)
        {
            // TODO : Coder ça moins croche
            string[]      path           = p_Path.Split('/');
            string        p_CurrentPath  = path[0];
            IItem         parentItem     = p_Database.GetItem(p_CurrentPath);
            ITemplateItem folderTemplate = p_Database.GetTemplate(UserSynchronizerConstants.FOLDER_TEMPLATE_ID);

            for (int i = 1; i < path.Count(); i++)
            {
                p_CurrentPath = p_CurrentPath + '/' + path[i];
                IItem currentItem = p_Database.GetItem(p_CurrentPath);
                if (currentItem == null)
                {
                    currentItem = parentItem.AddItem(path[i], folderTemplate);
                }
                parentItem = currentItem;
            }

            return(p_Database.GetItem(p_Path));
        }
        public static bool IsAncestorOrSelf(this ITemplateItem template, ID templateId)
        {
            if (template.ID == templateId)
            {
                return(true);
            }

            if ((template.BaseTemplates == null) || (!template.BaseTemplates.Any()))
            {
                return(false);
            }

            foreach (var baseTemplate in template.BaseTemplates)
            {
                if (baseTemplate.IsAncestorOrSelf(templateId))
                {
                    return(true);
                }
            }

            return(false);
        }
Example #4
0
        public void Synchronize()
        {
            IDomain domain = Factory.GetDomain(Domain);

            IEnumerable <IUser> users = domain.GetUsers();

            if (users.Any())
            {
                using (new Sitecore.SecurityModel.SecurityDisabler())
                {
                    IDatabase     database   = Factory.GetDatabase(Database);
                    IItem         parentItem = GetItem(database, Path + "/" + Domain);
                    ITemplateItem template   = database.GetTemplate(TemplateId);

                    foreach (IUser user in users)
                    {
                        CreateUserItem(user,
                                       parentItem,
                                       template,
                                       database);
                    }
                }
            }
        }
Example #5
0
 public IItem AddItem(string p_ItemName,
                      ITemplateItem p_Template)
 {
     return(new SitecoreItem(Item.Add(p_ItemName, p_Template.TemplateItem)));
 }
Example #6
0
 public static IntrinsicFunctions.Ref Ref(this ITemplateItem item)
 {
     return(new IntrinsicFunctions.Ref(item.LogicalId));
 }