}//afterPopulateProps()

        protected override bool onButtonClick( NbtButtonData ButtonData )
        {
            if( null != ButtonData && null != ButtonData.NodeTypeProp )
            {
                string OCPPropName = ButtonData.NodeTypeProp.getObjectClassPropName();
                //Remember: Save is an OCP too
                if( PropertyName.LoadUserContext == OCPPropName )
                {
                    ButtonData.Data["action"] = OCPPropName;

                    ButtonData.Data["type"] = "view"; //assume it's a view unless it's an action
                    CswEnumNbtActionName ActionName = CswNbtAction.ActionNameStringToEnum( Action.Text );
                    if( CswResources.UnknownEnum != ActionName )
                    {
                        if( null != _CswNbtResources.Actions[ActionName] )
                        {
                            CswNbtAction action = _CswNbtResources.Actions[ActionName];
                            ButtonData.Data["type"] = "action";
                            ButtonData.Data["actionname"] = action.Name.ToString();
                            ButtonData.Data["actionid"] = action.ActionId.ToString();
                            ButtonData.Data["actionurl"] = action.Url.ToString();
                        }
                    }
                    else
                    {
                        ButtonData.Data["selectedNodeId"] = SelectedNodeId.Text;
                        if( null != CurrentViewMode )
                        {
                            ButtonData.Data["viewmode"] = CurrentViewMode.Text;
                        }
                        //CswNbtViewId delimitedViewId = new CswNbtViewId( CswConvert.ToInt32( View.SelectedViewIds.ToString() ) );
                        CswNbtViewId delimitedViewId = View.ViewId;
                        if( null != delimitedViewId )
                        {
                            ButtonData.Data["viewid"] = delimitedViewId.ToString();
                        }
                        if( null != Author.RelatedNodeId )
                        {
                            if( _CswNbtResources.CurrentNbtUser.UserId != Author.RelatedNodeId )
                            {
                                ButtonData.Data["userid"] = Author.RelatedNodeId.ToString();
                                CswNbtObjClassUser userNode = _CswNbtResources.Nodes[Author.RelatedNodeId];
                                if( null != userNode )
                                {
                                    ButtonData.Data["username"] = userNode.Username;
                                }
                            }
                        }
                    }
                    ButtonData.Action = CswEnumNbtButtonAction.loadView;
                }
            }
            return true;
        }
Exemple #2
0
        } // _getView()

        private void _reauthenticate()
        {
            if (_AuthenticationStatus == CswEnumAuthenticationStatus.Authenticated)
            {
                // Set audit context
                if (false == string.IsNullOrEmpty(_AuthenticationRequest.CurrentViewId))
                {
                    CswNbtView ContextView = _getView(_AuthenticationRequest.CurrentViewId);
                    if (ContextView != null)
                    {
                        _CswNbtResources.AuditContext = ContextView.ViewName + " (" + ContextView.ViewId.ToString() + ")";
                    }
                }
                else if (false == string.IsNullOrEmpty(_AuthenticationRequest.CurrentActionName))
                {
                    CswNbtAction ContextAction = _CswNbtResources.Actions[CswNbtAction.ActionNameStringToEnum(_AuthenticationRequest.CurrentActionName)];
                    if (ContextAction != null)
                    {
                        _CswNbtResources.AuditContext = CswNbtAction.ActionNameEnumToString(ContextAction.Name) + " (Action_" + ContextAction.ActionId.ToString() + ")";
                    }
                }
            }
        }
Exemple #3
0
        public static ViewSelect.Response getViewSelect(CswNbtResources CswNbtResources, ViewSelect.Request Request)
        {
            ViewSelect.Response ret = new ViewSelect.Response();

            // Favorites and Recent
            ICswNbtUser User = CswNbtResources.CurrentNbtUser;

            if (User != null)
            {
                CswNbtObjClassUser UserOc = CswNbtResources.Nodes[User.UserId];

                // Recent
                if (Request.IncludeRecent)
                {
                    ViewSelect.Response.Category RecentCategory = _getCategory(ref ret, "Recent");
                    CswNbtResources.SessionDataMgr.getQuickLaunchJson(ref RecentCategory);
                }


                ViewSelect.Response.Category FavoritesCategory = _getCategory(ref ret, "Favorites");
                //Add the user's stored views to Favorites
                foreach (CswNbtView View in UserOc.FavoriteViews.SelectedViews.Values.Where(View => View.IsFullyEnabled()))
                {
                    ViewSelect.Response.Item ViewItem = _addViewSelectObj(FavoritesCategory,
                                                                          View.ViewName,
                                                                          CswEnumNbtViewItemType.View,
                                                                          View.IconFileName,
                                                                          View.ViewId.ToString());
                    ViewItem.mode = View.ViewMode.ToString();
                }

                if (Request.IncludeActions)
                {
                    //Add the user's stored actions to Favorites
                    DataTable ActionsTable = UserOc.FavoriteActions.GetDataAsTable(ActionName, ActionPk);
                    foreach (CswNbtAction Action in (from DataRow ActionRow in ActionsTable.Rows
                                                     where CswConvert.ToBoolean(ActionRow[ActionSelected])
                                                     select CswNbtAction.ActionNameStringToEnum(CswConvert.ToString(ActionRow[ActionPk]))
                                                     into NbtActionName
                                                     select CswNbtResources.Actions[NbtActionName]
                                                     into ThisAction
                                                     where null != ThisAction
                                                     select ThisAction))
                    {
                        if (Action.ShowInList)  //case 26555 - filter out actions like 'Multi Edit' or 'Edit View'
                        {
                            ViewSelect.Response.Item ActionItem = _addViewSelectObj(FavoritesCategory,
                                                                                    Action.DisplayName,
                                                                                    CswEnumNbtViewItemType.Action,
                                                                                    CswNbtMetaDataObjectClass.IconPrefix16 + Action.IconFileName,
                                                                                    Action.ActionId.ToString());
                            ActionItem.url = Action.Url;
                        }
                    } // foreach
                }     // if( Request.IncludeActions )
            }         // if( User != null )

            // Views
            Dictionary <CswNbtViewId, CswNbtView> Views = CswNbtResources.ViewSelect.getVisibleViews("lower(NVL(v.category, v.viewname)), lower(v.viewname)", CswNbtResources.CurrentNbtUser, false, false, Request.IsSearchable, CswEnumNbtViewRenderingMode.Any);

            foreach (CswNbtView View in Views.Values)
            {
                ViewSelect.Response.Item ViewItem = _addViewSelectObj(ref ret,
                                                                      View.Category,
                                                                      View.ViewName,
                                                                      CswEnumNbtViewItemType.View,
                                                                      View.IconFileName,
                                                                      View.ViewId.ToString());
                ViewItem.mode = View.ViewMode.ToString();
            }

            if (false == Request.IsSearchable)
            {
                // Actions
                if (Request.IncludeActions)
                {
                    foreach (CswNbtAction Action in CswNbtResources.Actions)
                    {
                        if (Action.ShowInList &&
                            //Case 23687: "View By Location" Action is toast. Bye-bye "loc_use_images" config var check.
                            CswNbtResources.Permit.can(Action.Name))
                        {
                            ViewSelect.Response.Item ActionItem = _addViewSelectObj(ref ret,
                                                                                    Action.Category,
                                                                                    Action.DisplayName,
                                                                                    CswEnumNbtViewItemType.Action,
                                                                                    CswNbtMetaDataObjectClass.IconPrefix16 + Action.IconFileName,
                                                                                    Action.ActionId.ToString());
                            ActionItem.url = Action.Url;
                        }
                    }
                }

                // Reports
                if (Request.IncludeReports)
                {
                    CswNbtMetaDataObjectClass ReportMetaDataObjectClass = CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ReportClass);
                    CswNbtView ReportView = ReportMetaDataObjectClass.CreateDefaultView();
                    ReportView.ViewName = "CswViewTree.DataBinding.ReportView";
                    ICswNbtTree ReportTree = CswNbtResources.Trees.getTreeFromView(CswNbtResources.CurrentNbtUser, ReportView, true, false, false);
                    for (int i = 0; i < ReportTree.getChildNodeCount(); i++)
                    {
                        ReportTree.goToNthChild(i);

                        CswNbtObjClassReport ReportNode = ReportTree.getNodeForCurrentPosition();
                        _addViewSelectObj(ref ret,
                                          ReportNode.Category.Text,
                                          ReportNode.ReportName.Text,
                                          CswEnumNbtViewItemType.Report,
                                          CswNbtMetaDataObjectClass.IconPrefix16 + "doc.png",
                                          ReportNode.NodeId.ToString());

                        ReportTree.goToParentNode();
                    }
                }

                // Searches
                if (Request.IncludeSearches)
                {
                    Collection <CswNbtSearch> Searches = CswNbtResources.SearchManager.getSearches();
                    foreach (CswNbtSearch Search in Searches)
                    {
                        _addViewSelectObj(ref ret,
                                          Search.Category,
                                          Search.Name,
                                          CswEnumNbtViewItemType.Search,
                                          CswNbtMetaDataObjectClass.IconPrefix16 + "magglass.png",
                                          Search.SearchId.ToString());
                    }
                }
            } // if( false == Request.IsSearchable )

            return(ret);
        } // getViewSelect()
        }//_initResources()

        public CswEnumAuthenticationStatus authenticate()
        {
            CswEnumAuthenticationStatus Ret = CswEnumAuthenticationStatus.Unknown;

            //We're keeping this logic here, because we don't want to contaminate NbtLogic with the necessary web libraries required to support CswSessionResourcesNbt
            if (null != _AuthenticationRequest && _AuthenticationRequest.IsValid())
            {
                if (false == CswTools.IsValidUsername(_AuthenticationRequest.CustomerId))
                {
                    Ret = CswEnumAuthenticationStatus.NonExistentAccessId;
                }
                else
                {
                    Ret = _SessionAuthenticate.authenticate();
                }
            }
            else
            {
                Ret = _CswSessionResourcesNbt.attemptRefresh();
            }

            //Set audit context
            if (Ret == CswEnumAuthenticationStatus.Authenticated && null != _HttpContext.Request.Cookies)
            {
                string ContextViewId     = string.Empty;
                string ContextActionName = string.Empty;

                if (null != _HttpContext.Request.Cookies["csw_currentviewid"])
                {
                    ContextViewId = _HttpContext.Request.Cookies["csw_currentviewid"].Value;
                }
                if (null != _HttpContext.Request.Cookies["csw_currentactionname"])
                {
                    ContextActionName = _HttpContext.Request.Cookies["csw_currentactionname"].Value;
                }

                if (string.Empty != ContextViewId)
                {
                    CswNbtView ContextView = null;
                    if (CswNbtViewId.isViewIdString(ContextViewId))
                    {
                        CswNbtViewId realViewid = new CswNbtViewId(ContextViewId);
                        ContextView = _CswNbtResources.ViewSelect.restoreView(realViewid);
                    }
                    else if (CswNbtSessionDataId.isSessionDataIdString(ContextViewId))
                    {
                        CswNbtSessionDataId SessionViewid = new CswNbtSessionDataId(ContextViewId);
                        ContextView = _CswNbtResources.ViewSelect.getSessionView(SessionViewid);
                    }
                    if (null != ContextView)
                    {
                        _CswNbtResources.AuditContext = ContextView.ViewName + " (" + ContextView.ViewId.ToString() + ")";
                    }
                }
                else if (string.Empty != ContextActionName)
                {
                    CswNbtAction ContextAction = _CswNbtResources.Actions[CswNbtAction.ActionNameStringToEnum(ContextActionName)];
                    if (null != ContextAction)
                    {
                        _CswNbtResources.AuditContext = CswNbtAction.ActionNameEnumToString(ContextAction.Name) + " (Action_" + ContextAction.ActionId.ToString() + ")";
                    }
                }
            }

            _CswNbtResources.ServerInitTime = _Timer.ElapsedDurationInMilliseconds;

            return(Ret);
        }//autheticate
Exemple #5
0
        public override void update()
        {
            CswTableUpdate LandingPageUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "28523_LandingPageUpdate", "landingpage" );
            DataTable LandingPageTable = LandingPageUpdate.getTable();

            // Clear bogus existing landing page icons
            foreach( DataRow LandingPageRow in LandingPageTable.Rows )
            {
                LandingPageRow["buttonicon"] = "";
            }

            // Set default icons for actions
            CswTableUpdate ActionsUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "28523_ActionsUpdate", "actions" );
            DataTable ActionsTable = ActionsUpdate.getTable();

            foreach( DataRow ActionRow in ActionsTable.Rows )
            {
                // Set action icon
                string IconFileName = string.Empty;
                CswNbtActionName ActionName = CswNbtAction.ActionNameStringToEnum( ActionRow["actionname"].ToString() );
                Int32 ActionId = CswConvert.ToInt32( ActionRow["actionid"] );
                
                switch( ActionName)
                {
                    case CswNbtActionName.Create_Inspection         : IconFileName = "clipboardcheck.png"; break;
                    case CswNbtActionName.Create_Material           : IconFileName = "atomplus.png";       break;
                    case CswNbtActionName.Design                    : IconFileName = "wrench.png";         break;
                    case CswNbtActionName.DispenseContainer         : IconFileName = "flask.png";          break;
                    case CswNbtActionName.DisposeContainer          : IconFileName = "trash.png";          break;
                    case CswNbtActionName.Edit_View                 : IconFileName = "options.png";        break;
                    case CswNbtActionName.Future_Scheduling         : IconFileName = "calendarstack.png";  break;
                    case CswNbtActionName.HMIS_Reporting            : IconFileName = "doc.png";            break;
                    case CswNbtActionName.Kiosk_Mode                 : IconFileName = "barcode.png";        break;
                    case CswNbtActionName.Modules                   : IconFileName = "options.png";        break;
                    case CswNbtActionName.Multi_Edit                : IconFileName = "largeicons.png";     break;
                    case CswNbtActionName.Quotas                    : IconFileName = "plus.png";           break;
                    case CswNbtActionName.Receiving                 : IconFileName = "bottlebox.png";      break;
                    case CswNbtActionName.Reconciliation            : IconFileName = "bottlecalendar.png"; break;
                    case CswNbtActionName.Sessions                  : IconFileName = "personclock.png";    break;
                    case CswNbtActionName.Submit_Request            : IconFileName = "cartplus.png";       break;
                    case CswNbtActionName.Subscriptions             : IconFileName = "envelopes.png";      break;
                    case CswNbtActionName.Tier_II_Reporting         : IconFileName = "doc.png";            break;
                    case CswNbtActionName.UndisposeContainer        : IconFileName = "flask.png";          break;
                    case CswNbtActionName.Upload_Legacy_Mobile_Data : IconFileName = "up.png";             break;
                    case CswNbtActionName.View_Scheduled_Rules      : IconFileName = "clock.png";          break;
                    default: break;
                }
                ActionRow["iconfilename"] = IconFileName;

                //// Fix existing landing page icons
                //foreach( DataRow LandingPageRow in from DataRow LandingPageRow in LandingPageTable.Rows 
                //                                    let LandingPageActionId = CswConvert.ToInt32( LandingPageRow["to_actionid"] ) 
                //                                  where ActionId == LandingPageActionId 
                //                                 select LandingPageRow )
                //{
                //    LandingPageRow["buttonicon"] = IconFileName;
                //}
            } // foreach( DataRow ActionRow in ActionsTable.Rows )

            ActionsUpdate.update( ActionsTable );
            LandingPageUpdate.update( LandingPageTable );

            // update getActiveActions s4
            _CswNbtSchemaModTrnsctn.UpdateS4( "getActiveActions", @"select a.actionid, a.actionname, a.showinlist, a.url, a.category, a.iconfilename, lower(a.actionname) mssqlorder
  from actions a
 where exists (select m.moduleid
          from modules m, jct_modules_actions jma
         where jma.actionid = a.actionid
           and jma.moduleid = m.moduleid
           and m.enabled = '1')
       or not exists (select m.moduleid
          from modules m, jct_modules_actions jma
         where jma.actionid = a.actionid
           and jma.moduleid = m.moduleid)
 order by lower(a.actionname)" );

        } // update()