Esempio n. 1
0
    private WidgetTypeData[] GetWidgetTypes(WidgetSpaceData widgetSpaceData)
    {
        if (widgetSpaceData.Scope == WidgetSpaceScope.SmartDesktop)
        {
            // pass in relevant list of roles to widget lookup
            // show commerce widgets to admins and commerceadmins only
            EkEnumeration.CmsRoleIds[] roles = new EkEnumeration.CmsRoleIds[0];
            if (_contentApi.IsAdmin() && _contentApi.IsARoleMember(EkEnumeration.CmsRoleIds.CommerceAdmin))
            {
                roles = new EkEnumeration.CmsRoleIds[1];
                roles[0] = EkEnumeration.CmsRoleIds.CommerceAdmin;
            }
            // We are in the Workarea
            return WidgetTypeFactory.GetModel().FindAll(WidgetSpaceScope.SmartDesktop, roles);
        }

        // We are in a site
        return WidgetTypeFactory.GetModel().FindAll(widgetSpaceData.ID);
    }
Esempio n. 2
0
    void IWidgetSpaceView.View(WidgetSpaceData widgetSpace)
    {
        _widgetSpace = widgetSpace;
        m_refMsg = _contentApi.EkMsgRef;
        // Get private pages only if the pages being retrieved
        // belong to the user who is logged in, or if the logged in
        // user is an admin.
        bool bIsAdmin = _siteApi.IsAdmin();
        Ektron.Cms.API.Community.CommunityGroup cg = new Ektron.Cms.API.Community.CommunityGroup();
        bIsAdmin = bIsAdmin || cg.IsCommunityGroupAdmin(_siteApi.UserId, _foreignID);

        bool bGetPrivatePages = false;
        Guid? anonymousId;

        switch (widgetSpace.Scope)
        {
            case WidgetSpaceScope.CommunityGroup:
                bGetPrivatePages = (cg.IsUserInCommunityGroup(_foreignID, _siteApi.UserId) && _siteApi.IsLoggedIn == true) || bIsAdmin;
                break;
            case WidgetSpaceScope.User:
                bGetPrivatePages = (IsAllowAnonymous(out anonymousId)) || (_siteApi.UserId == _foreignID && _siteApi.IsLoggedIn == true) || bIsAdmin;
                break;
            case WidgetSpaceScope.SmartDesktop:
                bGetPrivatePages = true;
                _isInWorkarea = true;
                break;
        }

        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Editable", "Ektron.Personalization.SetEditable(" + bGetPrivatePages.ToString().ToLower() + ");", true);

        if (bIsAdmin)
        {
            liDone.Visible = this.EditDefault;
            liEditDefaultWidgets.Visible = liResetWidgets.Visible = !this.EditDefault;
        }
        else
        {
            liDone.Visible = false;
            liEditDefaultWidgets.Visible = false;
            liResetWidgets.Visible = true;
        }

        ulTabOptions.Visible = liOptions.Visible = _Editable = bGetPrivatePages;

        //if the page is editable, set the widgetTrayHandle to visible
        aWidgetTrayHandle.Visible = bGetPrivatePages;
        if (IsAllowAnonymous(out anonymousId))
        {
            _pages = _widgetSpace.GetPages(new Guid(anonymousId.ToString()), bGetPrivatePages);
        }
        else
        {
            _pages = _widgetSpace.GetPages((this.EditDefault ? 0 : _foreignID), bGetPrivatePages);
        }

        repTabs.Controls.Clear();

        RenderTabs();

        phWidgetPages.Controls.Clear();
        //int index = 0;
        foreach (WidgetPageData page in _pages)
        {
            LoadPage(page, bGetPrivatePages, false);
        }

        if (_pages.Length > 0)
        {
            SelectTab(_activePage);
        }
        else
        {
            //Show No Tabs Message
            if (_siteApi.IsLoggedIn && errorMessages.Controls.Count < 1)
            {
                Literal lit = new Literal();
                lit.Text = @"<html><body ><h2 class=""error"">"+m_refMsg.GetMessage("Alert no tabs created")+"</h2></body></html>";
                errorMessages.Controls.Add(lit);
            }
        }

        if (bGetPrivatePages)
        {
            repWidgetTypes.DataSource = GetWidgetTypes(widgetSpace);
            repWidgetTypes.DataBind();
        }
    }