Пример #1
0
 public void AddTemplate(String name, List <String> contentModules, List <dtoChannelConfigurator> items)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout(RootObject.Add(View.CurrentType, View.PreloadOwnership, View.PreloadFromIdCommunity, View.PreloadFromModuleCode, View.PreloadFromModulePermissions));
     }
     else
     {
         dtoBaseTemplateOwner owner = View.Ownership;
         if (!contentModules.Any() && (String.IsNullOrEmpty(owner.ModuleCode) || (View.CurrentType == TemplateType.Module)))
         {
             contentModules.Add(owner.ModuleCode);
         }
         TemplateDefinition template = Service.AddTemplate(name, View.CurrentType, owner, contentModules, items);
         if (template == null)
         {
             View.DisplayTemplateAddError();
         }
         else if (View.PreloadCurrentSessionId == Guid.Empty)
         {
             View.GoToUrl(RootObject.EditByStep(View.CurrentType, View.Ownership, WizardTemplateStep.Settings, View.PreloadFromIdCommunity, View.PreloadFromModuleCode, View.PreloadFromModulePermissions, View.GetEncodedBackUrl(), template.Id, template.Versions[0].Id, false, true));
         }
         else
         {
             View.GoToUrl(RootObject.EditByStep(View.CurrentType, View.Ownership, WizardTemplateStep.Settings, View.PreloadFromIdCommunity, View.PreloadFromModuleCode, View.PreloadFromModulePermissions, "", template.Id, template.Versions[0].Id, false, true));
         }
     }
 }
Пример #2
0
        public static string EditByStep(System.Guid sessionId, TemplateType type, dtoBaseTemplateOwner ownerInfo, WizardTemplateStep step, Int32 idContainerCommunity, String moduleCode, long idPermissions, String backUrl, long idTemplate = 0, long idVersion = 0, Boolean preview = false, Boolean added = false, Boolean backToContainerModule = false)
        {
            string baseQuery = ((idTemplate > 0) ? "idTemplate=" + idTemplate.ToString() : "") + ((idVersion > 0) ? "&idVersion=" + idVersion.ToString() : "") + ((added) ? "&add=true" : "") + ((preview) ? "&preview=true" : "");

            if (!string.IsNullOrEmpty(baseQuery))
            {
                baseQuery += "&";
            }

            baseQuery += BaseQueryString(type, ownerInfo) + BaseContainerString(idContainerCommunity, moduleCode, idPermissions);
            switch (step)
            {
            case WizardTemplateStep.Settings:
                return(modulehome + "EditSettings.aspx?" + baseQuery + (backToContainerModule ? "&toCnt=true" : "") + (String.IsNullOrEmpty(backUrl) ? "" : "&backUrl=" + backUrl) + ((sessionId == System.Guid.Empty) ? "" : "&sId=" + sessionId.ToString()));

            case WizardTemplateStep.Translations:
                return(modulehome + "EditTemplate.aspx?" + baseQuery + (backToContainerModule ? "&toCnt=true" : "") + (String.IsNullOrEmpty(backUrl) ? "" : "&backUrl=" + backUrl) + ((sessionId == System.Guid.Empty) ? "" : "&sId=" + sessionId.ToString()));

            case WizardTemplateStep.Permission:
                return(modulehome + "EditPermission.aspx?" + baseQuery + (backToContainerModule ? "&toCnt=true" : "") + (String.IsNullOrEmpty(backUrl) ? "" : "&backUrl=" + backUrl) + ((sessionId == System.Guid.Empty) ? "" : "&sId=" + sessionId.ToString()));

            default:
                return("");
            }
        }
Пример #3
0
        public static String List(Int32 idContainerCommunity, TemplateType type, dtoBaseTemplateOwner ownerInfo, Boolean setFromCookies = false, String moduleCode = "", long idPermissions = 0, long idTemplate = 0, long idVersion = 0)
        {
            Boolean fromContainer = ((!String.IsNullOrEmpty(moduleCode) || idPermissions > 0) && idContainerCommunity > 0);
            String  url           = modulehome + "List.aspx?" + BaseQueryString((fromContainer) ? TemplateType.Module : type, (fromContainer) ? null: ownerInfo) + BaseContainerString(idContainerCommunity, moduleCode, idPermissions, setFromCookies);

            url += (idTemplate > 0) ? "&idTemplate=" + idTemplate.ToString():"";
            url += (idVersion > 0) ? "#ver_" + idVersion.ToString() : (idTemplate > 0) ? "#tmp_" + idTemplate.ToString() : "";
            return(url);
        }
        private ModuleGenericTemplateMessages GetPermissions(String moduleCode, long permissions, Int32 idCommunity, TemplateType type)
        {
            ModuleGenericTemplateMessages permission = null;
            Int32 idUser = UserContext.CurrentUserID;

            switch (type)
            {
            case TemplateType.Module:
                if (moduleCode == ModuleTemplateMessages.UniqueCode)
                {
                    permission = new ModuleGenericTemplateMessages(Service.GetPermission(idCommunity, OwnerType.Module));
                }
                else
                {
                    Int32 idModule = CurrentManager.GetModuleID(moduleCode);
                    dtoBaseTemplateOwner ownerInfo = View.PreloadOwnership;
                    ModuleObject         obj       = (ownerInfo.Type == OwnerType.Object) ? ModuleObject.CreateLongObject(ownerInfo.IdObject, ownerInfo.IdObjectType, ownerInfo.IdObjectCommunity, CurrentManager.GetModuleCode(ownerInfo.IdObjectModule), ownerInfo.IdObjectModule) : null;
                    if (obj != null && obj.ServiceID == 0 && !String.IsNullOrEmpty(obj.ServiceCode))
                    {
                        obj.ServiceID = CurrentManager.GetModuleID(obj.ServiceCode);
                    }
                    else if (obj != null && obj.ServiceID > 0 && String.IsNullOrEmpty(obj.ServiceCode))
                    {
                        obj.ServiceCode = CurrentManager.GetModuleCode(obj.ServiceID);
                    }
                    if (permissions > 0)
                    {
                        permission = View.GetModulePermissions(moduleCode, idModule, CurrentManager.GetModulePermission(UserContext.CurrentUserID, idCommunity, idModule), idCommunity, UserContext.UserTypeID, obj);
                    }
                    else
                    {
                        permission = View.GetModulePermissions(moduleCode, idModule, GetModulePermission(idCommunity, idModule), idCommunity, UserContext.UserTypeID, obj);
                    }
                }
                break;

            case TemplateType.User:
                Person  p         = GetCurrentUser(ref idUser);
                Boolean allowView = (p != null && p.TypeID != (Int32)UserTypeStandard.Guest && p.TypeID != (Int32)UserTypeStandard.PublicUser);

                permission                   = new ModuleGenericTemplateMessages("personal");
                permission.Add               = allowView;
                permission.Administration    = allowView;
                permission.Clone             = allowView;
                permission.DeleteMyTemplates = allowView;
                permission.Edit              = allowView;
                permission.List              = allowView;
                break;
            }
            if (permission == null)
            {
                permission = new ModuleGenericTemplateMessages(moduleCode);
            }
            return(permission);
        }
Пример #5
0
        private static String BaseQueryString(TemplateType type, dtoBaseTemplateOwner template)
        {
            String query = "type=" + type.ToString();

            if (template != null)
            {
                query += "&ownType=" + template.Type.ToString();
                query += ((template.IdPerson > 0) ? "&idPerson=" + template.IdPerson.ToString() : "");
                query += ((template.IdCommunity > 0) ? "&idCommunity=" + template.IdCommunity.ToString() : "");
                query += ((template.IdModule > 0) ? "&idModule=" + template.IdModule.ToString() : "");
                query += ((!String.IsNullOrEmpty(template.ModuleCode)) ? "&moduleCode=" + template.ModuleCode : "");
                query += ((template.ModulePermission > 0) ? "&idModuleP=" + template.ModulePermission.ToString() : "");
                query += ((template.IdObject > 0) ? "&idObj=" + template.IdObject.ToString() : "");
                query += ((template.IdObjectType > 0) ? "&idObjType=" + template.IdObjectType.ToString() : "");
                query += ((template.IdObjectModule > 0) ? "&idObjModule=" + template.IdObjectModule.ToString() : "");
                query += ((template.IdObjectCommunity > 0) ? "&idObjCommunity=" + template.IdObjectCommunity.ToString() : "");
            }
            return(query);
        }
Пример #6
0
 public static string EditByStep(TemplateType type, dtoBaseTemplateOwner ownerInfo, WizardTemplateStep step, Int32 idContainerCommunity, String moduleCode, long idPermissions, String backUrl, long idTemplate = 0, long idVersion = 0, Boolean preview = false, Boolean added = false, Boolean backToContainerModule = false)
 {
     return(EditByStep(Guid.Empty, type, ownerInfo, step, idContainerCommunity, moduleCode, idPermissions, backUrl, idTemplate, idVersion, preview, added));
 }
Пример #7
0
 public static string Add(System.Guid sessionId, TemplateType type, dtoBaseTemplateOwner ownerInfo, Int32 idContainerCommunity, String moduleCode = "", long idPermissions = 0)
 {
     return(modulehome + "Add.aspx?" + BaseQueryString(type, ownerInfo) + BaseContainerString(idContainerCommunity, moduleCode, idPermissions) + ((sessionId == System.Guid.Empty) ? "" : "&sId=" + sessionId.ToString()));
 }
Пример #8
0
 public static string Add(TemplateType type, dtoBaseTemplateOwner ownerInfo, Int32 idContainerCommunity, String moduleCode = "", long idPermissions = 0)
 {
     return(Add(Guid.Empty, type, ownerInfo, idContainerCommunity, moduleCode, idPermissions));
 }
Пример #9
0
        private void InitializeList(dtoModuleContext context, Int32 idCommunity, TemplateType type, long permissions)
        {
            dtoBaseTemplateOwner ownerInfo = null;
            Boolean allowAdd       = false;
            String  addUrl         = "";
            String  addPersonalUrl = "";
            String  addObjectUrl   = "";

            View.IsInitializedList = true;
            if (context == null)
            {
                context = GetModuleContext(View.CurrentModuleCode, permissions, View.CurrentIdCommunity, type);
            }

            #region "Permissions"
            allowAdd = context.Permissions.Administration || context.Permissions.Add;
            System.Guid sessionId = View.CurrentSessionId;
            switch (type)
            {
            case TemplateType.System:
                if (allowAdd)
                {
                    ownerInfo = new dtoBaseTemplateOwner()
                    {
                        IdCommunity = idCommunity, IsPortal = (idCommunity == 0), Type = OwnerType.Module, ModuleCode = context.ModuleCode, IdModule = context.IdModule, ModulePermission = context.ModulePermissions
                    };
                    addUrl = RootObject.Add(sessionId, TemplateType.System, ownerInfo, idCommunity, context.ModuleCode, context.ModulePermissions);
                }
                break;

            case TemplateType.Module:
                allowAdd = context.Permissions.Administration || context.Permissions.Add;

                // DA RIVEDERE
                if (allowAdd)
                {
                    ownerInfo = new dtoBaseTemplateOwner()
                    {
                        IdCommunity = idCommunity, IsPortal = (idCommunity == 0), Type = OwnerType.Module, ModuleCode = context.ModuleCode, IdModule = context.IdModule, ModulePermission = context.ModulePermissions
                    };
                    addUrl = RootObject.Add(sessionId, TemplateType.Module, ownerInfo, idCommunity, context.ModuleCode, context.ModulePermissions);

                    ModuleObject obj = View.CurrentModuleObject;
                    if (obj != null)
                    {
                        ownerInfo = new dtoBaseTemplateOwner()
                        {
                            IdCommunity = idCommunity, IsPortal = (idCommunity == 0), Type = OwnerType.Object, IdObject = obj.ObjectLongID, IdObjectType = obj.ObjectTypeID, IdObjectCommunity = obj.CommunityID, IdObjectModule = obj.ServiceID, ModuleCode = context.ModuleCode, IdModule = context.IdModule, ModulePermission = context.ModulePermissions
                        };
                        addObjectUrl = RootObject.Add(sessionId, TemplateType.Module, ownerInfo, idCommunity, context.ModuleCode, context.ModulePermissions);
                    }
                }
                dtoBaseTemplateOwner personalOwnerInfo = new dtoBaseTemplateOwner()
                {
                    IdCommunity = idCommunity, IsPortal = (idCommunity == 0), Type = OwnerType.Person, IdPerson = UserContext.CurrentUserID, ModuleCode = View.PreloadModuleCode, IdModule = (String.IsNullOrEmpty(View.PreloadModuleCode) ? 0 : CurrentManager.GetModuleID(View.PreloadModuleCode))
                };
                addPersonalUrl = RootObject.Add(sessionId, TemplateType.User, personalOwnerInfo, idCommunity, context.ModuleCode, context.ModulePermissions);
                break;

            case TemplateType.User:
                if (allowAdd)
                {
                    ownerInfo = new dtoBaseTemplateOwner()
                    {
                        IdCommunity = 0, IsPortal = true, Type = OwnerType.Person, IdPerson = UserContext.CurrentUserID, ModuleCode = View.PreloadModuleCode, IdModule = (String.IsNullOrEmpty(View.PreloadModuleCode) ? 0 : CurrentManager.GetModuleID(View.PreloadModuleCode))
                    };
                    addPersonalUrl = RootObject.Add(sessionId, TemplateType.User, ownerInfo, 0, context.ModuleCode, context.ModulePermissions);
                }
                break;
            }
            #endregion
            #region "Filters"
            dtoBaseFilters filters = (View.PreloadFromCookies) ? View.GetFromCookies() : null;
            if (filters == null)
            {
                filters               = new dtoBaseFilters();
                filters.Ascending     = true;
                filters.SearchForName = "";
                filters.Status        = TemplateStatus.Active;
                filters.TemplateType  = type;
                //filters.LoaderType = context.LoaderType;
                switch (type)
                {
                case TemplateType.Module:
                    filters.ModuleCode = View.PreloadModuleCode;
                    break;
                }
                filters.Ascending          = true;
                filters.OrderBy            = TemplateOrder.ByName;
                filters.TranslationsStatus = View.GetTranslationsStatus();
                filters.TranslationsType   = View.GetTranslationsTypes();
                filters.TemplateDisplay    = TemplateDisplay.OnlyVisible;
                View.SaveToCookies(filters);
            }
            #endregion
            View.InitializeList(context, filters, GetAvailableTypes(type), GetAvailableDisplay(type), allowAdd, addUrl, addPersonalUrl, addObjectUrl);
        }
        public void InitView()
        {
            long                 idTemplate  = View.PreloadIdTemplate;
            long                 idVersion   = View.PreloadIdVersion;
            TemplateType         t           = View.PreloadTemplateType;
            dtoBaseTemplateOwner ownerInfo   = View.PreloadOwnership;
            Int32                idCommunity = ownerInfo.IdCommunity;

            if (idCommunity == -1)
            {
                idCommunity = UserContext.CurrentCommunityID;
            }
            if (ownerInfo.IdModule == 0 && !String.IsNullOrEmpty(ownerInfo.ModuleCode))
            {
                ownerInfo.IdModule = CurrentManager.GetModuleID(ownerInfo.ModuleCode);
            }
            View.Ownership           = ownerInfo;
            View.IdTemplateCommunity = idCommunity;

            if (UserContext.isAnonymous)
            {
                Logout(t, idTemplate, idVersion);
            }
            else
            {
                Boolean allowSave = false;
                TemplateDefinitionVersion version = Service.GetVersion(idVersion);
                List <lm.Comol.Core.Wizard.NavigableWizardItem <dtoTemplateStep> > steps = Service.GetAvailableSteps(idVersion, WizardTemplateStep.Translations, ownerInfo.Type);;
                if (version == null || (version.Deleted != BaseStatusDeleted.None && !View.PreloadPreview) || (version.Template == null))
                {
                    View.DisplayUnknownTemplate();
                    steps.ForEach(s => s.Status = Wizard.WizardItemStatus.disabled);
                    View.SendUserAction(idCommunity, Service.ServiceModuleID(), ModuleTemplateMessages.ActionType.UnknownTemplateVersion);
                }
                else
                {
                    dtoTemplatePermission permission = null;
                    Boolean isPreview = View.PreloadPreview;
                    Boolean allowSee  = false;
                    View.IdTemplate = version.Template.Id;
                    View.IdVersion  = version.Id;
                    t = version.Template.Type;
                    switch (ownerInfo.Type)
                    {
                    case OwnerType.None:
                        View.UnableToReadUrlSettings();
                        View.SendUserAction(idCommunity, Service.ServiceModuleID(), ModuleTemplateMessages.ActionType.MalformedUrl);
                        break;

                    case OwnerType.Object:
                    //allowSave = View.HasPermissionForObject(ModuleObject.CreateLongObject(ownerInfo.IdObject, ownerInfo.IdObjectType, ownerInfo.IdObjectCommunity, CurrentManager.GetModuleCode(ownerInfo.IdObjectModule)));
                    //break;
                    case OwnerType.Module:
                        View.IdTemplateModule = ownerInfo.IdModule;
                        if (ownerInfo.IdModule == Service.ServiceModuleID())
                        {
                            permission = Service.GetItemPermission(idVersion);
                        }
                        else
                        {
                            permission = Service.GetManagementTemplatePermission(version, GetPermissions(ownerInfo.ModuleCode, ownerInfo.ModulePermission, ownerInfo.IdCommunity, t));
                        }
                        allowSave = permission.AllowEdit;
                        allowSee  = permission.AllowUse;
                        break;

                    default:
                        permission = Service.GetItemPermission(idVersion);
                        allowSave  = permission.AllowEdit;
                        allowSee   = permission.AllowUse;
                        break;
                    }
                    allowSave = allowSave && (version.Status == TemplateStatus.Draft) && !isPreview;
                    //allowActivate = allowDraft && (version.DefaultTranslation.IsValid() || (version!=null && version.Translations.Where(tn => tn.Deleted == BaseStatusDeleted.None && tn.IsValid).Any()));

                    Boolean isAdministrative = Service.IsAdministrativeUser(UserContext.CurrentUserID);
                    View.InputReadOnly = isPreview || (!allowSave && allowSee);
                    View.AllowSave     = allowSave;
                    if (allowSave || allowSee)
                    {
                        LoadDefaultTranslation(version);
                        View.SendUserAction(idCommunity, Service.ServiceModuleID(), ModuleTemplateMessages.ActionType.StartEditingSettings);
                    }
                    else
                    {
                        View.DisplayNoPermission(idCommunity, Service.ServiceModuleID());
                        View.SendUserAction(idCommunity, Service.ServiceModuleID(), ModuleTemplateMessages.ActionType.TryToEditingSettings);
                    }
                }
                View.CurrentType = t;

                View.LoadWizardSteps(idCommunity, steps);
                if (String.IsNullOrEmpty(View.PreloadBackUrl))
                {
                    View.SetBackUrl(RootObject.List(View.PreloadFromIdCommunity, t, ownerInfo, true, View.PreloadFromModuleCode, View.PreloadFromModulePermissions, idTemplate, idVersion));
                }
                else
                {
                    View.SetBackUrl(View.PreloadBackUrl);
                }
            }
        }
Пример #11
0
        public Boolean SaveAsTemplate(OwnerType t, String prefixName, List <dtoTemplateTranslation> translations, List <String> contentModules, lm.Comol.Core.MailCommons.Domain.Messages.MessageSettings settings, lm.Comol.Core.DomainModel.ModuleObject obj = null)
        {
            Boolean saved = false;

            if (UserContext.isAnonymous)
            {
                View.CurrentMode = Domain.EditMessageMode.None;
            }
            else
            {
                TemplateType         type      = TemplateType.None;
                dtoBaseTemplateOwner ownership = new dtoBaseTemplateOwner()
                {
                    IdPerson = UserContext.CurrentUserID, ModuleCode = View.ModuleCode
                };
                switch (t)
                {
                case OwnerType.Object:
                    ownership.Type              = OwnerType.Object;
                    ownership.IdObject          = obj.ObjectLongID;
                    ownership.IdObjectCommunity = obj.CommunityID;
                    ownership.IdObjectModule    = obj.ServiceID;
                    ownership.IdObjectType      = obj.ObjectTypeID;
                    ownership.IsPortal          = false;
                    break;

                case OwnerType.Person:
                    ownership.IsPortal = true;
                    ownership.Type     = OwnerType.Person;
                    break;

                case OwnerType.Module:
                    ownership.IsPortal    = false;
                    ownership.IdCommunity = View.ContainerIdCommunity;
                    ownership.IdModule    = CurrentManager.GetModuleID(View.ModuleCode);
                    ownership.ModuleCode  = View.ModuleCode;
                    ownership.Type        = OwnerType.Module;
                    break;

                default:
                    ownership = null;
                    break;
                }
                if (ownership != null)
                {
                    TemplateDefinition template = Service.AddTemplate(prefixName, type, ownership, contentModules, translations, settings);
                    if (template == null)
                    {
                        View.DisplayTemplateUnSaved(t);
                    }
                    else
                    {
                        View.DisplayTemplateSaved(t);
                    }
                }
                else
                {
                    View.DisplayTemplateUnSaved(t);
                }
            }
            return(saved);
        }
Пример #12
0
        public void InitView()
        {
            TemplateType         t         = View.PreloadTemplateType;
            dtoBaseTemplateOwner ownerInfo = View.PreloadOwnership;
            Int32 idCommunity = ownerInfo.IdCommunity;

            if (idCommunity == -1)
            {
                idCommunity = UserContext.CurrentCommunityID;
                //if (t== TemplateType.System)
                ownerInfo.IdCommunity = idCommunity;
            }
            if (ownerInfo.IdModule == 0 && !String.IsNullOrEmpty(ownerInfo.ModuleCode))
            {
                ownerInfo.IdModule = CurrentManager.GetModuleID(ownerInfo.ModuleCode);
            }
            View.Ownership           = ownerInfo;
            View.IdTemplateCommunity = idCommunity;
            View.CurrentType         = t;
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout(RootObject.Add(t, View.PreloadOwnership, View.PreloadFromIdCommunity, View.PreloadFromModuleCode, View.PreloadFromModulePermissions));
            }
            else
            {
                Boolean allowAdd = false;
                switch (ownerInfo.Type)
                {
                case OwnerType.None:
                    View.UnableToReadUrlSettings();
                    View.SendUserAction(idCommunity, Service.ServiceModuleID(), ModuleTemplateMessages.ActionType.MalformedUrl);
                    break;

                //case OwnerType.Object:
                //    allowAdd = View.HasPermissionForObject(ModuleObject.CreateLongObject(ownerInfo.IdObject, ownerInfo.IdObjectType, ownerInfo.IdObjectCommunity,CurrentManager.GetModuleCode(ownerInfo.IdObjectModule)));
                //    break;
                default:
                    if (t == TemplateType.Module)
                    {
                        ModuleGenericTemplateMessages p = GetPermissions(View.PreloadFromModuleCode, View.PreloadFromModulePermissions, View.PreloadFromIdCommunity, t);
                        allowAdd = p.Administration || p.Add;
                    }
                    else
                    {
                        allowAdd = Service.AllowAdd(ownerInfo);
                    }
                    break;
                }
                List <lm.Comol.Core.Wizard.NavigableWizardItem <dtoTemplateStep> > steps = Service.GetAvailableSteps(0, WizardTemplateStep.Settings, ownerInfo.Type);
                View.AllowAdd = allowAdd;
                if (allowAdd)
                {
                    Boolean isAdministrative = Service.IsAdministrativeUser(UserContext.CurrentUserID);
                    View.AllowSenderEdit    = isAdministrative && t == TemplateType.System;
                    View.AllowSubjectEdit   = isAdministrative;
                    View.AllowSignatureEdit = isAdministrative;
                    List <NotificationChannel> channels = Service.GetAvailableChannels(t, 0);
                    if (t == TemplateType.Module || ownerInfo.IdModule > 0)
                    {
                        View.IdTemplateModule = ownerInfo.IdModule;
                        View.DisplayInput(CurrentManager.GetLanguage(UserContext.Language.Id), Service.GetTemplateNumber(ownerInfo), channels);
                        if (channels.Any() && channels.Count == 1 && channels.Contains(NotificationChannel.Mail))
                        {
                            AddNotificationSetting(NotificationChannel.Mail, new List <dtoChannelConfigurator>());
                        }
                    }
                    else
                    {
                        View.DisplayInput(CurrentManager.GetLanguage(UserContext.Language.Id), Service.GetTemplateNumber(ownerInfo), View.GetAvailableModules(), channels);
                        if (t == TemplateType.User && channels.Contains(NotificationChannel.Mail))
                        {
                            AddNotificationSetting(NotificationChannel.Mail, new List <dtoChannelConfigurator>());
                        }
                    }
                    View.SendUserAction(idCommunity, Service.ServiceModuleID(), ModuleTemplateMessages.ActionType.StartAddNewTemplate);
                }
                else
                {
                    steps                       = steps.Where(s => s.Id.Type == WizardTemplateStep.Settings).ToList();
                    steps[0].Status             = Wizard.WizardItemStatus.disabled;
                    steps[0].DisplayOrderDetail = Wizard.DisplayOrderEnum.first | Wizard.DisplayOrderEnum.last;
                    View.DisplayAddUnavailable();
                    View.SendUserAction(idCommunity, Service.ServiceModuleID(), ModuleTemplateMessages.ActionType.TryToAddNewTemplate);
                }
                View.LoadWizardSteps(idCommunity, steps);
                if (String.IsNullOrEmpty(View.PreloadBackUrl))
                {
                    View.SetBackUrl(RootObject.List(View.PreloadFromIdCommunity, t, ownerInfo, true, View.PreloadFromModuleCode, View.PreloadFromModulePermissions));
                }
                else
                {
                    View.SetBackUrl(View.PreloadBackUrl);
                }
            }
        }
Пример #13
0
        public void InitView()
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout(RootObject.List(View.PreloadIdCommunity, View.PreloadTemplateType, View.PreloadOwnership, View.PreloadFromCookies, View.PreloadModuleCode, View.PreloadModulePermissions, View.PreloadModulePermissions));
            }
            else
            {
                Int32 idCommunity = View.PreloadIdCommunity;
                if (idCommunity < 0)
                {
                    idCommunity = UserContext.CurrentCommunityID;
                }
                View.IdManagerCommunity = idCommunity;
                TemplateType type = View.PreloadTemplateType;
                if (type == TemplateType.None)
                {
                    type = TemplateType.User;
                }
                dtoBaseFilters filters = (View.PreloadFromCookies) ? View.GetFromCookies() : null;
                if (filters == null)
                {
                    filters               = new dtoBaseFilters();
                    filters.Ascending     = true;
                    filters.SearchForName = "";
                    filters.Status        = TemplateStatus.Active;
                    filters.TemplateType  = type;
                    //filters.SetLoadingType(type);
                    switch (type)
                    {
                    case TemplateType.Module:
                        filters.ModuleCode = View.PreloadModuleCode;
                        break;
                    }
                    filters.Ascending          = true;
                    filters.OrderBy            = TemplateOrder.ByName;
                    filters.TranslationsStatus = View.GetTranslationsStatus();
                    filters.TranslationsType   = View.GetTranslationsTypes();
                    filters.TemplateDisplay    = TemplateDisplay.OnlyVisible;
                    View.SaveToCookies(filters);
                }
                Int32   idUser    = UserContext.CurrentUserID;
                Boolean allowView = false;
                Boolean allowAdd  = false;
                String  addUrl    = "";

                dtoModuleContext context = new dtoModuleContext();
                context.ModuleCode        = View.PreloadModuleCode;
                context.ModulePermissions = View.PreloadModulePermissions;
                context.IdCommunity       = idCommunity;

                dtoBaseTemplateOwner   ownerInfo = null;
                ModuleTemplateMessages module    = null;

                switch (type)
                {
                case TemplateType.System:
                    module    = ModuleTemplateMessages.CreatePortalmodule(UserContext.UserTypeID, OwnerType.System);
                    allowView = module.Administration || module.List;
                    allowAdd  = module.Administration || module.Add;
                    if (allowAdd)
                    {
                        ownerInfo = new dtoBaseTemplateOwner()
                        {
                            IdCommunity = 0, IsPortal = true, Type = OwnerType.System, ModuleCode = View.PreloadModuleCode, IdModule = (String.IsNullOrEmpty(View.PreloadModuleCode) ? 0 : CurrentManager.GetModuleID(View.PreloadModuleCode))
                        };
                        addUrl = RootObject.Add(TemplateType.System, ownerInfo, idCommunity, View.PreloadModuleCode, View.PreloadModulePermissions);
                    }
                    context.LoaderType  = TemplateLoaderType.System;
                    context.IdModule    = Service.ServiceModuleID();
                    context.Permissions = new ModuleGenericTemplateMessages(module);
                    break;

                case TemplateType.Module:
                    if (context.ModuleCode == ModuleTemplateMessages.UniqueCode)
                    {
                        context.IdModule          = Service.ServiceModuleID();
                        module                    = Service.GetPermission(idCommunity, OwnerType.Module);
                        context.ModulePermissions = module.GetPermissions();
                        allowView                 = module.Administration || module.List;
                        allowAdd                  = module.Administration || module.Add;
                        if (allowAdd)
                        {
                            ownerInfo = new dtoBaseTemplateOwner()
                            {
                                IdCommunity = idCommunity, IsPortal = (idCommunity == 0), Type = OwnerType.Module, ModuleCode = context.ModuleCode, IdModule = context.IdModule, ModulePermission = context.ModulePermissions
                            };
                            addUrl = RootObject.Add(TemplateType.Module, ownerInfo, idCommunity, context.ModuleCode, context.ModulePermissions);
                        }

                        context.Permissions = new ModuleGenericTemplateMessages(module);
                        context.LoaderType  = TemplateLoaderType.Module;
                    }
                    else if (View.PreloadModulePermissions > 0)
                    {
                        context.IdModule = CurrentManager.GetModuleID(context.ModuleCode);
                        long dbPermissions = CurrentManager.GetModulePermission(UserContext.CurrentUserID, idCommunity, context.IdModule);

                        context.Permissions = View.GetModulePermissions(context.ModuleCode, context.IdModule, dbPermissions, idCommunity, UserContext.UserTypeID);

                        if (lm.Comol.Core.DomainModel.PermissionHelper.CheckPermissionSoft(dbPermissions, context.ModulePermissions))
                        {
                            allowView = true;
                            allowAdd  = true;
                            if (allowAdd)
                            {
                                ownerInfo = new dtoBaseTemplateOwner()
                                {
                                    IdCommunity = idCommunity, IsPortal = (idCommunity == 0), Type = OwnerType.Module, ModuleCode = context.ModuleCode, IdModule = context.IdModule, ModulePermission = context.ModulePermissions
                                };
                                addUrl = RootObject.Add(TemplateType.Module, ownerInfo, idCommunity, context.ModuleCode, context.ModulePermissions);
                            }
                        }
                        context.LoaderType = TemplateLoaderType.OtherModule;
                    }
                    else
                    {
                        context.IdModule    = CurrentManager.GetModuleID(context.ModuleCode);
                        context.Permissions = View.GetModulePermissions(context.ModuleCode, context.IdModule, GetModulePermission(idCommunity, context.IdModule), idCommunity, UserContext.UserTypeID);
                        context.LoaderType  = TemplateLoaderType.OtherModule;

                        allowView = context.Permissions.Administration || context.Permissions.List;
                        allowAdd  = context.Permissions.Administration || context.Permissions.Add;
                        if (allowAdd)
                        {
                            ownerInfo = new dtoBaseTemplateOwner()
                            {
                                IdCommunity = idCommunity, IsPortal = (idCommunity == 0), Type = OwnerType.Module, ModuleCode = context.ModuleCode, IdModule = context.IdModule, ModulePermission = context.ModulePermissions
                            };
                            addUrl = RootObject.Add(TemplateType.Module, ownerInfo, idCommunity, context.ModuleCode, context.ModulePermissions);
                        }
                    }
                    break;

                case TemplateType.User:
                    Person p = GetCurrentUser(ref idUser);
                    allowView = (p != null && p.TypeID != (Int32)UserTypeStandard.Guest && p.TypeID != (Int32)UserTypeStandard.PublicUser);
                    allowAdd  = allowView;
                    if (allowAdd)
                    {
                        ownerInfo = new dtoBaseTemplateOwner()
                        {
                            IdCommunity = idCommunity, IsPortal = (idCommunity == 0), Type = OwnerType.Person, IdPerson = UserContext.CurrentUserID, ModuleCode = View.PreloadModuleCode, IdModule = (String.IsNullOrEmpty(View.PreloadModuleCode) ? 0 : CurrentManager.GetModuleID(View.PreloadModuleCode))
                        };
                        addUrl = RootObject.Add(TemplateType.User, ownerInfo, idCommunity, context.ModuleCode, context.ModulePermissions);
                    }
                    context.LoaderType                    = TemplateLoaderType.User;
                    context.Permissions                   = new ModuleGenericTemplateMessages("personal");
                    context.Permissions.Add               = allowView;
                    context.Permissions.Administration    = allowView;
                    context.Permissions.Clone             = allowView;
                    context.Permissions.DeleteMyTemplates = allowView;
                    context.Permissions.Edit              = allowView;
                    context.Permissions.List              = allowView;
                    break;
                }
                if (allowView)
                {
                    if (allowAdd)
                    {
                        View.SetAddUrl(addUrl);
                    }
                    switch (type)
                    {
                    case TemplateType.User:
                    case TemplateType.System:
                        View.InitializeList(context, filters, GetAvailableTypes(type), GetAvailableDisplay(type));
                        break;

                    case  TemplateType.Module:
                        View.InitializeList(context, filters, GetAvailableTypes(type), GetAvailableDisplay(type));
                        break;
                    }
                }
                else
                {
                    View.DisplayNoPermission(idCommunity, Service.ServiceModuleID());
                }
            }
        }