Пример #1
0
        public IGenericResponseResult Submit(string password)
        {
            var user       = SecurityFacade.CurrentUser();
            var authorized = false;
            var adminUser  = new SWDBHibernateDAO().FindSingleByQuery <User>(sW4.Security.Entities.User.UserByUserName, "swadmin");

            if (adminUser.Password != null)
            {
                var authenticatedAdminUser = SecurityFacade.GetInstance().Login(adminUser, password, string.Empty);
                if (authenticatedAdminUser != null)
                {
                    if (!user.IsInRole(Role.SysAdmin))
                    {
                        var adminRole = _dao.FindSingleByQuery <Role>(Role.RoleByName, Role.SysAdmin);
                        user.Roles.Add(adminRole);
                    }
                    if (!user.IsInRole(Role.ClientAdmin))
                    {
                        var clientRole = _dao.FindSingleByQuery <Role>(Role.RoleByName, Role.ClientAdmin);
                        user.Roles.Add(clientRole);
                    }
                    authorized = true;
                }
            }
            return(new GenericResponseResult <bool>(authorized));
        }
Пример #2
0
        public static void SetChangeBy(object baseObject)
        {
            var user = SecurityFacade.CurrentUser();

            r.InstantiateProperty(baseObject, "CHANGEDATE", new { Value = DateTime.Now.FromServerToRightKind() });
            r.InstantiateProperty(baseObject, "CHANGEBY", new { Value = user.Login });
        }
Пример #3
0
        protected void PopulateServiceProviders(CrudOperationData entity, ServiceIncident webServiceObject)
        {
            var serviceProvider = new ServiceProvider[2];

            var reportedBy = new Person {
                Role          = PersonRole.ReportedBy,
                RoleSpecified = true,
                ContactID     = ISMConstants.AddEmailIfNeeded(SecurityFacade.CurrentUser().MaximoPersonId),
            };

            serviceProvider[0] = new ServiceProvider {
                Person = reportedBy
            };

            var affectedUserContact = ISMConstants.AddEmailIfNeeded(GetAffectedPerson(entity));

            if (affectedUserContact != null)
            {
                var affectedUser = new Person {
                    ContactID     = affectedUserContact,
                    Role          = PersonRole.AffectedUser,
                    RoleSpecified = true
                };

                serviceProvider[1] = new ServiceProvider {
                    Person = affectedUser
                };
            }

            webServiceObject.ServiceProvider = serviceProvider;
        }
        internal string GetUserPersonGroupsUtils(Boolean onlyLocations)
        {
            var module = _contextLookuper.LookupContext().Module;

            if (!onlyLocations)
            {
                return(InMemoryUserExtensions.GetPersonGroupsForQuery(module));
            }

            var sb        = new StringBuilder();
            var locations = _iHlagLocationManager.GetLocationsOfLoggedUser();

            foreach (var location in locations)
            {
                sb.Append(location.GetBuildDescriptionForQuery());
                sb.Append(",");
            }

            //TODO: check with Thomas whether this is really necessary
            var user        = SecurityFacade.CurrentUser();
            var otherGroups = user.PersonGroups.Where(p => !HlagLocationUtil.IsALocationGroup(p.PersonGroup));

            foreach (var personGroupAssociation in otherGroups)
            {
                sb.Append("'").Append(personGroupAssociation.GroupName).Append("'");
                sb.Append(",");
            }

            return(sb.ToString(0, sb.Length - 1));
        }
Пример #5
0
        public string DashboardChangeApprovalsWhereClause()
        {
            var user = SecurityFacade.CurrentUser();
            var workLogDescriptions = ApproverConstants.GetWorkLogDescriptions(user.PersonGroups, false);

            return(ApproverConstants.ChangeOpenApprovalsDashQuery.Fmt(workLogDescriptions));
        }
Пример #6
0
        //        public string GetWorkLogJoinQuery() {
        //            return
        //                @"(dashapprovals_apprwo_.logtype = 'APPROVAL OBTAINED' and dashapprovals_apprwo_.DESCRIPTION = 'Approved by group '
        //                || dashapprovals_.approvergroup )";
        //        }

        public string GetPersonGroupsForQuery()
        {
            var user   = SecurityFacade.CurrentUser();
            var groups = user.GetPersonGroupsForQuery();

            return(@"dashapprovals_.approvergroup IN ({0})".Fmt(groups));
        }
        protected virtual void HandleMaterials(MaximoOperationExecutionContext maximoTemplateData, CrudOperationData entity, object wo)
        {
            var materials    = (IEnumerable <CrudOperationData>)entity.GetRelationship("matusetrans");
            var newMaterials = materials.Where(r => r.GetAttribute("matusetransid") == null);
            var recordKey    = entity.Id;
            var user         = SecurityFacade.CurrentUser();

            WsUtil.CloneArray(newMaterials, wo, "MATUSETRANS", delegate(object integrationObject, CrudOperationData crudData) {
                var qtyRequested = ReflectionUtil.GetProperty(integrationObject, "QTYREQUESTED");
                if (qtyRequested == null)
                {
                    WsUtil.SetValue(integrationObject, "QTYREQUESTED", 0);
                }
                var realValue = (double)WsUtil.GetRealValue(integrationObject, "QTYREQUESTED");
                WsUtil.SetValue(integrationObject, "QUANTITY", -1 * realValue);
                WsUtil.SetValue(integrationObject, "MATUSETRANSID", -1);
                WsUtil.SetValue(integrationObject, "ENTERBY", user.Login);
                WsUtil.SetValue(integrationObject, "ORGID", user.OrgId);
                WsUtil.SetValue(integrationObject, "SITEID", user.SiteId);
                WsUtil.SetValue(integrationObject, "REFWO", recordKey);
                WsUtil.SetValue(integrationObject, "ACTUALDATE", DateTime.Now.FromServerToRightKind(), true);
                WsUtil.SetValue(integrationObject, "TRANSDATE", DateTime.Now.FromServerToRightKind(), true);

                ReflectionUtil.SetProperty(integrationObject, "action", OperationType.Add.ToString());
            });
        }
        protected virtual void HandleAttachments(CrudOperationData entity, object wo, ApplicationMetadata metadata)
        {
            var user = SecurityFacade.CurrentUser();

            var attachmentString = entity.GetUnMappedAttribute("newattachment");
            var attachmentPath   = entity.GetUnMappedAttribute("newattachment_path");

            if (!String.IsNullOrWhiteSpace(attachmentString) && !String.IsNullOrWhiteSpace(attachmentPath))
            {
                _attachmentHandler.HandleAttachments(wo, attachmentString, attachmentPath, metadata);
            }
            var screenshotString = entity.GetUnMappedAttribute("newscreenshot");
            var screenshotName   = "screen" + DateTime.Now.ToUserTimezone(user).ToString("yyyyMMdd") + ".png";

            if (!String.IsNullOrWhiteSpace(screenshotString) && !String.IsNullOrWhiteSpace(screenshotName))
            {
                _attachmentHandler.HandleAttachments(wo, screenshotString, screenshotName, metadata);
            }

            var attachments = entity.GetRelationship("attachment");

            if (attachments != null)
            {
                foreach (var attachment in (IEnumerable <CrudOperationData>)attachments)
                {
                    attachmentString = attachment.GetUnMappedAttribute("newattachment");
                    attachmentPath   = (string)(attachment.GetUnMappedAttribute("newattachment_path") ?? attachment.GetAttribute("document"));
                    if (attachmentString != null && attachmentPath != null)
                    {
                        _attachmentHandler.HandleAttachments(wo, attachmentString, attachmentPath, metadata);
                    }
                }
            }
        }
Пример #9
0
        public static DataTable ConvertMapListToTable(IList <IDictionary <string, object> > mapList, ApplicationSchemaDefinition schema)
        {
            var table = new DataTable();
            var user  = SecurityFacade.CurrentUser();

            if (mapList != null && mapList.Count > 0)
            {
                table.Columns.AddRange(mapList[MaximumColumnIndex(mapList)].Select(f => new DataColumn(f.Key)).ToArray());

                foreach (var map in mapList)
                {
                    var dr = table.NewRow();

                    foreach (var key in map.Keys)
                    {
                        if (map[key] is DateTime)
                        {
                            // taking out formatting of date before sending to report as CDate in the report can't handle
                            // European date format easily. As Hapag wants European Date format in general, we can just do the
                            // formatting in the report itself
                            dr[key] = ((DateTime)map[key]).FromMaximoToUser(user).ToString();
                        }
                        else
                        {
                            dr[key] = map[key];
                        }
                    }

                    table.Rows.Add(dr);
                }
            }

            return(table);
        }
Пример #10
0
        protected override object GetEditObject(UltraGridRow row)
        {
            string userGroupCode = this.txtUserGroupCodeQuery.Text.Trim();

            if (facade == null)
            {
                facade = new SystemSettingFacadeFactory(base.DataProvider).Create();
            }
            UserGroup2Module relation = facade.CreateNewUserGroup2Module();

            relation.UserGroupCode = userGroupCode;
            relation.ModuleCode    = row.Cells[2].Text;
            if (securityFacade == null)
            {
                securityFacade = new SystemSettingFacadeFactory(base.DataProvider).CreateSecurityFacade();
            }
            relation.ViewValue = securityFacade.SpellViewValueFromRights(new bool[] {
                row.Cells.FromKey("Export").Text == "true",
                row.Cells.FromKey("Read").Text == "true",
                row.Cells.FromKey("Write").Text == "true",
                row.Cells.FromKey("Delete").Text == "true"
            });
            relation.MaintainUser = this.GetUserCode();

            return(relation);
        }
Пример #11
0
        private static GenericResponseResult <IList <DashboardDefinition> > DoGetFromList(List <DashboardDefinition> dashboardDefinitionList)
        {
            InMemoryUser user          = SecurityFacade.CurrentUser();
            var          dataObjectSet = new BaseApplicationDataSet();

            DashboardModuleHandler(dashboardDefinitionList);

            foreach (var definition in dashboardDefinitionList)
            {
                var key = new ApplicationMetadataSchemaKey(definition.SchemaId, definition.Mode, ClientPlatform.Web);
                var searchRequestDto = new SearchRequestDto {
                    SearchParams = definition.SearchParams,
                    SearchValues = definition.SearchValues,
                    Context      = new ApplicationLookupContext {
                        MetadataId = definition.Id
                    }
                };
                var applicationMetadata = MetadataProvider.Application(definition.ApplicationName)
                                          .ApplyPolicies(key, user, ClientPlatform.Web);

                definition.TotalCount = dataObjectSet.GetCount(applicationMetadata, searchRequestDto);
            }
            return(new GenericResponseResult <IList <DashboardDefinition> >(dashboardDefinitionList, null)
            {
                Title = new I18NResolver().I18NValue("_headermenu.serviceit", "ServiceIT")
            });
        }
Пример #12
0
        public ActionResult Index()
        {
            var user        = SecurityFacade.CurrentUser();
            var securedMenu = user.Menu(ClientPlatform.Web);
            var indexItemId = securedMenu.ItemindexId;
            var indexItem   = securedMenu.Leafs.FirstOrDefault(l => indexItemId.EqualsIc(l.Id));

            if (indexItem == null)
            {
                //first we´ll try to get the item declared, if it´s null (that item is role protected for that user, for instance, let´s pick the first leaf one as a fallback to avoid problems
                indexItem = securedMenu.Leafs.FirstOrDefault(a => a.Leaf);
            }

            HomeModel model = null;

            if (indexItem is ApplicationMenuItemDefinition)
            {
                var app     = (ApplicationMenuItemDefinition)indexItem;
                var key     = new ApplicationMetadataSchemaKey(app.Schema, app.Mode, ClientPlatform.Web);
                var adapter = new DataRequestAdapter(null, key);
                model = new HomeModel(GetUrlFromApplication(app.Application, adapter), app.Title, FetchConfigs(), user, HasPopupLogo(), _i18NResolver.FetchCatalogs(), ApplicationConfiguration.ClientName, indexItem.Module);
            }
            else if (indexItem is ActionMenuItemDefinition)
            {
                var actItem = (ActionMenuItemDefinition)indexItem;
                var action  = actItem.Action;
                model = new HomeModel(GetUrlFromAction(actItem), actItem.Title, FetchConfigs(), user, HasPopupLogo(), _i18NResolver.FetchCatalogs(), ApplicationConfiguration.ClientName, indexItem.Module);
            }
            return(View(model));
        }
Пример #13
0
        public SynchronizationResultDto SyncData(SynchronizationRequestDto synchronizationRequest)
        {
            //TODO> the method should return only the fields
            //specified in the metadata, and not all entities
            //attributes.

            var user = SecurityFacade.CurrentUser();

            if (null == user)
            {
                throw new HttpResponseException(HttpStatusCode.Unauthorized);
            }
            var syncResult = new SynchronizationResultDto();

            foreach (var application in synchronizationRequest.Applications)
            {
                var applicationMetadata = MetadataProvider
                                          .Application(application.appName)
                                          .ApplyPolicies(ApplicationMetadataSchemaKey.GetSyncInstance(), user, ClientPlatform.Mobile);
                var syncAppData = _dataSetProvider.LookupAsBaseDataSet(application.appName)
                                  .Sync(applicationMetadata, application);
                if (!application.FetchMetadata)
                {
                    //used to reduce the amount of data sent
                    syncAppData.Metadata = null;
                }
                syncResult.SynchronizationData.Add(syncAppData);
            }
            return(syncResult);
        }
Пример #14
0
        protected override object GetEditObject()
        {
            if (facade == null)
            {
                facade = new SystemSettingFacadeFactory(base.DataProvider).Create();
            }
            UserGroup2Module relation = facade.CreateNewUserGroup2Module();

            relation.ModuleCode    = this.txtModuleCodeEdit.Text;
            relation.UserGroupCode = this.txtUserGroupCodeQuery.Text;

            if (securityFacade == null)
            {
                securityFacade = new SystemSettingFacadeFactory(base.DataProvider).CreateSecurityFacade();
            }
            relation.ViewValue = securityFacade.SpellViewValueFromRights(new bool[] {
                this.chbRight.Items[0].Selected,
                this.chbRight.Items[1].Selected,
                this.chbRight.Items[2].Selected,
                this.chbRight.Items[3].Selected
            });

            relation.MaintainUser = this.GetUserCode();

            return(relation);
        }
Пример #15
0
 public static ContextHolder AddContext(ContextHolder context, bool isHttp)
 {
     context.Environment = ApplicationConfiguration.Profile;
     if (isHttp)
     {
         System.Web.HttpContext.Current.Items["context"] = context;
     }
     else
     {
         LogicalThreadContext.SetData("context", context);
     }
     try {
         var user = SecurityFacade.CurrentUser();
         context.UserProfiles = new SortedSet <int?>(user.Profiles.Select(s => s.Id));
         context.Environment  = ApplicationConfiguration.Profile;
         context.OrgId        = user.OrgId;
         context.SiteId       = user.SiteId;
         if (isHttp)
         {
             System.Web.HttpContext.Current.Items["context"] = context;
         }
         else
         {
             LogicalThreadContext.SetData("context", context);
         }
         Log.DebugFormat("adding context {0}", context);
         return(context);
     } catch (Exception e) {
         //not logged users
         return(context);
     }
 }
Пример #16
0
        public Mensagem Encrypt(Int32 IdGrupo = 0, CoeusProjectContext Context = null)
        {
            if (Context == null)
            {
                Context = new CoeusProjectContext();
            }

            if (IdGrupo > 0)
            {
                this.Grupo = Context.Grupos.Where(g => g.IdGrupo == IdGrupo).FirstOrDefault();
            }

            if (this.Grupo == null)
            {
                this.Grupo = Context.Grupos.Where(g => g.IdGrupo == this.IdGrupo).Include(g => g.Salt).FirstOrDefault();
            }

            if (this.Grupo.Salt == null)
            {
                this.Grupo.Salt = Context.Salt.Where(s => s.IdSalt == this.Grupo.IdSalt).FirstOrDefault();
            }

            this.TxMensagem = SecurityFacade.Encrypt(this.TxMensagem, this.Grupo.Salt.BtSalt);
            return(this);
        }
Пример #17
0
        private string InnerTicketWhereClause(string ticketQualifier = "SR")
        {
            var isWWUser = SecurityFacade.CurrentUser().IsWWUser();
            var ctx      = _contextLookuper.LookupContext();

            if (isWWUser && ctx.IsInModule(FunctionalRole.XItc) || ctx.ApplicationLookupContext != null &&
                "r0042ExportExcel".EqualsIc(ctx.ApplicationLookupContext.Schema))
            {
                return("1=1");
            }
            var sb = new StringBuilder();

            sb.AppendFormat("{0}.pluspcustomer = 'HLC-00' or", ticketQualifier);
            var locations = _locationManager.GetLocationsOfLoggedUser();
            var i         = 0;
            //if itc is not bound to any location let´s fix at least HLC-00 to it...
            var subCustomers = new StringBuilder("'HLC-00',");

            foreach (var location in locations)
            {
                i++;
                sb.Append(AppendLocationCondition(ticketQualifier, location));
                sb.Append(" or ");
                subCustomers.Append("'").Append(location.SubCustomer).Append("'").Append(",");
            }
            sb.Append("  ");
            sb.Append(AppendExtraCondition(ticketQualifier, subCustomers));
            sb.Append(" and ");
            sb.Append(HapagQueryUtils.GetDefaultQuery(ticketQualifier));
            return(sb.ToString());
        }
Пример #18
0
        public override void BeforeUpdate(MaximoOperationExecutionContext maximoTemplateData)
        {
            var user = SecurityFacade.CurrentUser();
            var sr   = maximoTemplateData.IntegrationObject;

            WorkLogHandler.HandleWorkLogs((CrudOperationData)maximoTemplateData.OperationData, sr);
            w.SetValueIfNull(sr, "ACTLABHRS", 0.0);
            w.SetValueIfNull(sr, "ACTLABCOST", 0.0);
            w.SetValueIfNull(sr, "CHANGEDATE", DateTime.Now.FromServerToRightKind(), true);
            w.SetValueIfNull(sr, "CHANGEBY", user.Login);
            w.SetValueIfNull(sr, "REPORTDATE", DateTime.Now.FromServerToRightKind());

            var crudData = ((CrudOperationData)maximoTemplateData.OperationData);

            LongDescriptionHandler.HandleLongDescription(sr, crudData);
            var attachments = crudData.GetRelationship("attachment");

            foreach (var attachment in (IEnumerable <CrudOperationData>)attachments)
            {
                var attachmentString = attachment.GetUnMappedAttribute("newattachment");
                var attachmentPath   = attachment.GetUnMappedAttribute("newattachment_path");
                if (attachmentString != null && attachmentPath != null)
                {
                    AttachmentHandler.HandleAttachments(sr, attachmentString, attachmentPath,
                                                        maximoTemplateData.ApplicationMetadata);
                }
            }
            //HandleSolutions(maximoTemplateData, crudData, sr);
            base.BeforeUpdate(maximoTemplateData);
        }
Пример #19
0
        protected void Application_Start(object sender, EventArgs args)
        {
            Console.SetOut(new System.IO.StreamWriter(System.IO.Stream.Null));
            Console.SetError(new System.IO.StreamWriter(System.IO.Stream.Null));

            var before = Stopwatch.StartNew();

            ViewEngines.Engines.Clear();
            ViewEngines.Engines.Add(new ClientAwareRazorViewEngine());
            ViewEngines.Engines.Add(new FixedWebFormViewEngine()); // to render the reports user controls (.ascx)

            AreaRegistration.RegisterAllAreas();
            MetadataProvider.DoInit();
            ConfigureLogging();
            EnableJsonCamelCasing();
            RegisterDataMapFormatter();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            new MigratorExecutor("SWDB").Migrate(runner => runner.MigrateUp());
            ManagedWebSessionContext.Bind(
                System.Web.HttpContext.Current,
                SWDBHibernateDAO.SessionManager.SessionFactory.OpenSession());
            SecurityFacade.InitSecurity();

            var container  = SimpleInjectorScanner.InitDIController();
            var dispatcher = (IEventDispatcher)container.GetInstance(typeof(IEventDispatcher));

            dispatcher.Dispatch(new ApplicationStartedEvent());
            Log.Info(LoggingUtil.BaseDurationMessage("**************App started in {0}*************", before));
            ApplicationConfiguration.StartDate = DateTime.Now;
        }
Пример #20
0
        public IApplicationResponse Search(string application, string searchFields, string searchText, string schema = "list")
        {
            var user    = SecurityFacade.CurrentUser();
            var app     = MetadataProvider.Application(application);
            var schemas = app.Schemas();
            var key     = new ApplicationMetadataSchemaKey(schema, SchemaMode.input, ClientPlatform.Web);
            ApplicationSchemaDefinition appSchema;

            if (!schemas.TryGetValue(key, out appSchema))
            {
                throw new InvalidOperationException("schema not found");
            }

            var searchRequestDto = PaginatedSearchRequestDto.DefaultInstance(appSchema);

            searchRequestDto.SetFromSearchString(appSchema, searchFields.Split(','), searchText);

            var dataResponse = Get(application, new DataRequestAdapter()
            {
                Key = key, SearchDTO = searchRequestDto
            });

            //fixing the filter parameters used so that it is applied on next queries
            ((ApplicationListResult)dataResponse).PageResultDto.BuildFixedWhereClause(searchRequestDto, app.Entity);
            dataResponse.Title = appSchema.Title;
            dataResponse.Mode  = SchemaMode.input.ToString().ToLower();
            return(dataResponse);
            //            return View("Index", new ApplicationModel(application, "list", SchemaMode.input.ToString().ToLower(), appSchema.Title, dataResponse));
        }
Пример #21
0
        public Tuple <Byte[], string> DownloadViaParentWS(string id, string parentId, string parentApplication, string parentSchemaId)
        {
            // Get the parent entity executing a FindById operation in the respective WS
            var user = SecurityFacade.CurrentUser();
            var applicationMetadata = MetadataProvider
                                      .Application(parentApplication)
                                      .ApplyPolicies(new ApplicationMetadataSchemaKey(parentSchemaId), user, ClientPlatform.Web);
            var response = _dataSetProvider.LookupAsBaseDataSet(parentApplication).Execute(applicationMetadata, new JObject(), parentId, OperationConstants.CRUD_FIND_BY_ID);

            var parent = response.ResultObject;

            if (parent != null)
            {
                var attachments = r.GetProperty(parent, "DOCLINKS") as IEnumerable;
                foreach (var attachment in attachments)
                {
                    var attachmentId = w.GetRealValue(attachment, "DOCINFOID").ToString();
                    if (id.Equals(attachmentId))
                    {
                        var fileBytes = w.GetRealValue(attachment, "DOCUMENTDATA") as byte[];
                        var fileName  = BuildFileName(w.GetRealValue(attachment, "URLNAME") as String);

                        return(Tuple.Create(fileBytes, fileName));
                    }
                }
            }

            return(null);
        }
Пример #22
0
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            var currentModule = RequestUtil.GetValue(actionContext.Request, CurrentModuleKey);
            var currentUSer   = SecurityFacade.CurrentUser();

            if (currentModule != null && currentUSer != null)
            {
                FunctionalRole fr;
                Enum.TryParse(currentModule, true, out fr);
                if (!currentUSer.IsInRole(fr.ToString()))
                {
                    throw new InvalidOperationException(
                              "this user is not allowed for this role. Please contact your administrator");
                }
            }

            var currentMetadataId        = RequestUtil.GetValue(actionContext.Request, CurrentMetadataKey);
            var currentMetadataParameter = RequestUtil.GetValue(actionContext.Request, CurrentMetadataParameterKey);
            var printMode = "true".Equals(RequestUtil.GetValue(actionContext.Request, PrintMode));
            ApplicationLookupContext appCtx = null;

            if (currentMetadataId != null)
            {
                appCtx = new ApplicationLookupContext {
                    MetadataId = currentMetadataId
                };
            }
            ContextLookuper.AddContext(new ContextHolder()
            {
                Module = currentModule, ApplicationLookupContext = appCtx, PrintMode = printMode, MetadataParameters = PropertyUtil.ConvertToDictionary(currentMetadataParameter)
            }, true);
            base.OnActionExecuting(actionContext);
        }
Пример #23
0
        public ActionResult RedirectToAction(string application, string controllerToRedirect, string popupmode, string actionToRedirect, string queryString, string message, string messageType)
        {
            string actionURL;
            var    user = SecurityFacade.CurrentUser();

            if (application != null)
            {
                actionURL = String.Format("api/data/crud/{0}/", application);
            }
            else
            {
                //TODO: actions parameters missing...
                actionURL = String.Format("api/generic/{0}/{1}", controllerToRedirect, actionToRedirect);
            }
            var unescapedQs = WebAPIUtil.GetUnescapedQs(queryString);
            var allowed     = (application == "solution" || application == "ci") || ValidateSecurity(unescapedQs);

            var redirectURL = String.Format("{0}?{1}", actionURL, unescapedQs);

            var windowTitle  = GetWindowTitle(redirectURL);
            var hasPopupLogo = HasPopupLogo(application, popupmode);

            var homeModel = new HomeModel(redirectURL, null, FetchConfigs(), user, hasPopupLogo,
                                          _i18NResolver.FetchCatalogs(), ApplicationConfiguration.ClientName, _lookuper.LookupContext().Module, windowTitle, message, messageType);

            homeModel.Allowed = allowed;

            return(View("Index", homeModel));
        }
        public SearchRequestDto FilterAssets(AssociationPreFilterFunctionParameters parameters)
        {
            var filter = parameters.BASEDto;

            // Default filter to be applied to all Schemas
            filter.AppendSearchEntry("status", AssetConstants.Active, AssetConstants.Operating);
            filter.IgnoreWhereClause = true;

            // Add another filters depending on Schema
            var attributeHolder = parameters.OriginalEntity;
            var schemaId        = parameters.Metadata.Schema.SchemaId;

            if ("printer".Equals(schemaId))
            {
                filter.AppendSearchEntry(ISMConstants.PluspCustomerColumn, (string)attributeHolder.GetAttribute("printerpluspcustomer"));
                filter.AppendWhereClause(AssetConstants.BuildPrinterWhereClause());
            }
            else if ("phone".Equals(schemaId))
            {
                filter.AppendSearchEntry(ISMConstants.PluspCustomerColumn, (string)attributeHolder.GetAttribute("phonepluspcustomer"));
                filter.AppendSearchEntry(AssetConstants.ClassStructureIdColumn, AssetConstants.PhoneClassStructure);
            }
            else
            {
                var module = ContextLookuper.LookupContext().Module;
                if (module == null || !module.EqualsAny(FunctionalRole.AssetControl.GetName(), FunctionalRole.AssetRamControl.GetName()))
                {
                    //if asset control, or asset ram control could be creating sr out of asset and this would make no sense
                    filter.AppendSearchEntry(AssetConstants.CustodianColumn, SecurityFacade.CurrentUser(false).MaximoPersonId);
                }
            }
            return(filter);
        }
Пример #25
0
        public static string GetPersonGroupsForQuery(string module)
        {
            var user = SecurityFacade.CurrentUser();

            string[] personGroups;
            if ("xitc".EqualsIc(module))
            {
                personGroups =
                    user.PersonGroups.Where(x => HlagLocationUtil.IsSuperGroup(x.PersonGroup))
                    .Select(f => f.PersonGroup.Name)
                    .ToArray();
            }
            else
            {
                personGroups =
                    user.PersonGroups.Where(x => !HlagLocationUtil.IsSuperGroup(x.PersonGroup))
                    .Select(f => f.PersonGroup.Name)
                    .ToArray();
            }

            var strPersonGroups = String.Join("','", personGroups);

            strPersonGroups = "'" + strPersonGroups + "'";
            return(strPersonGroups);
        }
Пример #26
0
        public IApplicationResponse Get(string application, [FromUri] DataRequestAdapter request)
        {
            var user = SecurityFacade.CurrentUser();

            if (null == user)
            {
                throw new HttpResponseException(HttpStatusCode.Unauthorized);
            }
            RequestUtil.ValidateMockError(Request);

            if (!"solution".EqualsIc(application) && !"ci".EqualsIc(application))
            {
                ValidateHashSecurity(request);
            }


            var applicationMetadata = MetadataProvider
                                      .Application(application)
                                      .ApplyPolicies(request.Key, user, ClientPlatform.Web);

            ContextLookuper.FillContext(request.Key);
            var response = DataSetProvider.LookupAsBaseDataSet(application).Get(applicationMetadata, user, request);

            response.Title = _i18NResolver.I18NSchemaTitle(response.Schema);
            var schemaMode = request.Key.Mode ?? response.Schema.Mode;

            response.Mode = schemaMode.ToString().ToLower();

            return(response);
        }
Пример #27
0
        public IEnumerable <IHlagLocation> FindAllLocationsOfCurrentUser(ApplicationMetadata application)
        {
            var user = SecurityFacade.CurrentUser();
            var findAllLocationsOfCurrentUser = DoFindLocationsOfCurrentUser(user, application);

            Log.DebugFormat("locations retrieved for user {0}: {1}", user.Login, findAllLocationsOfCurrentUser);
            return(findAllLocationsOfCurrentUser);
        }
Пример #28
0
        private static void ChangeApprovalsHandler(ChangeRequest changeRequest, string selectedaction, string groupName, CrudOperationData jsonObject)
        {
            string log;
            string actionid;
            var    approved = selectedaction == "Approved";

            if (approved)
            {
                log      = "Approved by group " + groupName;
                actionid = "APPROVAL OBTAINED";
            }
            else
            {
                log      = "Rejected by group " + groupName;
                actionid = "REASON REJECTING";
            }
            var worklogList = new List <ChangeLog>();
            var user        = SecurityFacade.CurrentUser();
            var changeLog   = new ChangeLog {
                Log                  = log,
                ActionID             = actionid,
                UserID               = ISMConstants.AddEmailIfNeeded(user.MaximoPersonId),
                LogDateTimeSpecified = true,
                LogDateTime          = DateTime.Now
            };

            worklogList.Add(changeLog);

            if (!approved)
            {
                var reason = jsonObject.GetAttribute("#reasonreject") as string;

                //                R0033
                //                correct implemented, but: didnt realised that the Approval and Reject worklogs are not displayed at ServiceIT
                //                    Please create a seperate Worklog entry with Summary:
                //                Reject Reason for group YYY
                //                Type: REASON REJECTING
                var changeLog2 = new ChangeLog {
                    Log                  = "Reject Reason for group " + groupName,
                    ActionID             = "UPDATE",
                    UserID               = ISMConstants.AddEmailIfNeeded(user.MaximoPersonId),
                    LogDateTimeSpecified = true,
                    LogDateTime          = DateTime.Now,
                    FlexFields           = new[]
                    {
                        new FlexFieldsFlexField {
                            mappedTo = "WLLongDesc", id = "0", Value = reason
                        }
                    },
                };


                worklogList.Add(changeLog2);
            }


            changeRequest.ChangeLog = ArrayUtil.PushRange(changeRequest.ChangeLog, worklogList);
        }
Пример #29
0
        //protected override void HandleMaterials(MaximoOperationExecutionContext maximoTemplateData, CrudOperationData entity, object wo) {
        //    var materials = (IEnumerable<CrudOperationData>)entity.GetRelationship("matusetrans");
        //    var newMaterials = materials.Where(r => r.GetAttribute("matusetransid") == null);
        //    var recordKey = entity.Id;
        //    var user = SecurityFacade.CurrentUser();
        //    var crudOperationDatas = newMaterials as CrudOperationData[] ?? newMaterials.ToArray();

        //    WsUtil.CloneArray(crudOperationDatas, wo, "MATUSETRANS", delegate(object integrationObject, CrudOperationData crudData) {
        //        var itemsetid = (string)crudOperationDatas[0].GetAttribute("item_.itemsetid");
        //        var qtyRequested = (double)WsUtil.GetRealValue(integrationObject, "QTYREQUESTED");

        //        WsUtil.SetValue(integrationObject, "MATUSETRANSID", -1);

        //        WsUtil.SetValue(integrationObject, "QUANTITY", -1 * qtyRequested);
        //        WsUtil.SetValue(integrationObject, "CURBAL", 3.00);
        //        WsUtil.SetValue(integrationObject, "PHYSCNT", 15.00);
        //        WsUtil.SetValue(integrationObject, "UNITCOST", 17.36);
        //        WsUtil.SetValue(integrationObject, "ACTUALCOST", 17.36);
        //        WsUtil.SetValue(integrationObject, "CONVERSION", 1.00);
        //        WsUtil.SetValue(integrationObject, "ISSUETYPE", "RETURN");
        //        WsUtil.SetValue(integrationObject, "CURRENCYCODE", "USD");
        //        WsUtil.SetValue(integrationObject, "LINETYPE", "ITEM");
        //        WsUtil.SetValue(integrationObject, "TOSITEID", user.SiteId.ToUpper());
        //        WsUtil.SetValue(integrationObject, "CONSIGNMENT", false);

        //        WsUtil.SetValue(integrationObject, "LINECOST", 0);
        //        WsUtil.SetValue(integrationObject, "OUTSIDE", false);
        //        WsUtil.SetValue(integrationObject, "ROLLUP", false);
        //        WsUtil.SetValue(integrationObject, "ENTEREDASTASK", false);
        //        WsUtil.SetValue(integrationObject, "ITEMSETID", itemsetid);
        //        WsUtil.SetValue(integrationObject, "ENTERBY", user.Login.ToUpper());
        //        WsUtil.SetValue(integrationObject, "ORGID", user.OrgId.ToUpper());
        //        WsUtil.SetValue(integrationObject, "SITEID", user.SiteId.ToUpper());
        //        WsUtil.SetValue(integrationObject, "REFWO", recordKey);
        //        WsUtil.SetValue(integrationObject, "ACTUALDATE", DateTime.Now.FromServerToRightKind(), true);
        //        WsUtil.SetValue(integrationObject, "TRANSDATE", DateTime.Now.FromServerToRightKind(), true);
        //        WsUtil.SetValue(integrationObject, "TRANSDATE", DateTime.Now.FromServerToRightKind(), true);
        //        WsUtil.SetValue(integrationObject, "ENTERDATE", DateTime.Now.FromServerToRightKind(), true);


        //        ReflectionUtil.SetProperty(integrationObject, "action", OperationType.AddChange.ToString());
        //    });
        //}

        protected override void HandleMaterials(MaximoOperationExecutionContext maximoTemplateData, CrudOperationData entity, object wo)
        {
            var materials          = (IEnumerable <CrudOperationData>)entity.GetRelationship("matusetrans");
            var newMaterials       = materials.Where(r => r.GetAttribute("matusetransid") == null);
            var recordKey          = entity.Id;
            var user               = SecurityFacade.CurrentUser();
            var crudOperationDatas = newMaterials as CrudOperationData[] ?? newMaterials.ToArray();

            WsUtil.CloneArray(crudOperationDatas, wo, "MATUSETRANS", delegate(object integrationObject, CrudOperationData crudData) {
                var itemsetid    = (string)crudOperationDatas[0].GetAttribute("item_.itemsetid");
                var qtyRequested = (double)WsUtil.GetRealValue(integrationObject, "QTYREQUESTED");
                WsUtil.SetValue(integrationObject, "MATUSETRANSID", -1);


                WsUtil.SetValue(integrationObject, "ITEMNUM", "PK-NO1-7006");
                WsUtil.SetValue(integrationObject, "STORELOC", "NO1");
                WsUtil.SetValue(integrationObject, "TRANSDATE", DateTime.Now.FromServerToRightKind(), true);
                WsUtil.SetValue(integrationObject, "ACTUALDATE", DateTime.Now.FromServerToRightKind(), true);
                WsUtil.SetValue(integrationObject, "QUANTITY", -1);
                WsUtil.SetValue(integrationObject, "CURBAL", 3);
                WsUtil.SetValue(integrationObject, "PHYSCNT", 7);
                WsUtil.SetValue(integrationObject, "UNITCOST", 17.36);
                WsUtil.SetValue(integrationObject, "ACTUALCOST", 17.36);
                WsUtil.SetValue(integrationObject, "CONVERSION", 1);
                WsUtil.SetValue(integrationObject, "ASSETNUM", "400-153");
                WsUtil.SetValue(integrationObject, "ENTERBY", "JMALONG");
                WsUtil.SetValue(integrationObject, "MEMO", "123");
                WsUtil.SetValue(integrationObject, "OUTSIDE", false);
                WsUtil.SetValue(integrationObject, "ISSUETO", "DHELMS");
                WsUtil.SetValue(integrationObject, "ROLLUP", false);
                WsUtil.SetValue(integrationObject, "BINNUM", "AL001");
                WsUtil.SetValue(integrationObject, "ISSUETYPE", "ISSUE");
                WsUtil.SetValue(integrationObject, "GLDEBITACCT", "5030-100-101");
                WsUtil.SetValue(integrationObject, "LINECOST", 17.36);
                WsUtil.SetValue(integrationObject, "FINANCIALPERIOD", "QTR3_7");
                WsUtil.SetValue(integrationObject, "CURRENCYCODE", "USD");
                WsUtil.SetValue(integrationObject, "CURRENCYUNITCOST", 17.36);
                WsUtil.SetValue(integrationObject, "CURRENCYLINECOST", 17.36);
                WsUtil.SetValue(integrationObject, "LOCATION", "22335");
                WsUtil.SetValue(integrationObject, "DESCRIPTION", "FILTER  FUEL / CAT 1R-0751");
                WsUtil.SetValue(integrationObject, "EXCHANGERATE", 1);
                WsUtil.SetValue(integrationObject, "SPAREPARTADDED", false);
                WsUtil.SetValue(integrationObject, "QTYREQUESTED", 1);
                WsUtil.SetValue(integrationObject, "ORGID", "BSAKSS");
                WsUtil.SetValue(integrationObject, "SITEID", "KOD016");
                WsUtil.SetValue(integrationObject, "REFWO", "41772");
                WsUtil.SetValue(integrationObject, "ENTEREDASTASK", false);
                WsUtil.SetValue(integrationObject, "LINETYPE", "ITEM");
                WsUtil.SetValue(integrationObject, "ITEMSETID", "ITEM2");
                WsUtil.SetValue(integrationObject, "CONDRATE", 100);
                WsUtil.SetValue(integrationObject, "COMMODITYGROUP", "AUTO");
                WsUtil.SetValue(integrationObject, "COMMODITY", "FILTERS");
                WsUtil.SetValue(integrationObject, "TOSITEID", "KOD016");
                WsUtil.SetValue(integrationObject, "CONSIGNMENT", false);

                ReflectionUtil.SetProperty(integrationObject, "action", OperationType.AddChange.ToString());
            });
        }
Пример #30
0
        public override CompositionFetchResult GetCompositionData(ApplicationMetadata application, CompositionFetchRequest request,
                                                                  JObject currentData)
        {
            var compositionData = base.GetCompositionData(application, request, currentData);
            var user            = SecurityFacade.CurrentUser();

            PopulateApprovalsCompositions(compositionData, user);
            return(compositionData);
        }