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); }
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()); }
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); }
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 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); }
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)); }
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 }); }
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)); }
public string DashboardChangeApprovalsWhereClause() { var user = SecurityFacade.CurrentUser(); var workLogDescriptions = ApproverConstants.GetWorkLogDescriptions(user.PersonGroups, false); return(ApproverConstants.ChangeOpenApprovalsDashQuery.Fmt(workLogDescriptions)); }
// 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); } } } }
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); }
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") }); }
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); }
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)); }
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)); }
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); } }
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); }
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); }
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); }
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); }
//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()); }); }
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); }
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); }
// // GET: /HapagHome/ public GenericResponseResult <IList <DashboardDefinition> > Get() { var user = SecurityFacade.CurrentUser(); if (user.HasProfile(ProfileType.Itc)) { return(GetFromDict(c.ActionRequiredForOpenRequests, c.ActionRequiredForOpenIncidents, c.OpenImacs)); } return(GetFromDict(c.ActionRequiredForOpenRequests, c.EUOpenRequests)); }
/// <summary> /// this is used for allowing to place a user with more data then simply a username on the current request. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Application_PostAuthenticateRequest(Object sender, EventArgs e) { HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName]; if (authCookie != null) { var inMemoryUser = SecurityFacade.CurrentUser(); HttpContext.Current.User = inMemoryUser; } }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var datetime = String.Empty; if (value is DateTime) { var user = SecurityFacade.CurrentUser(); datetime = ((DateTime)value).FromMaximoToUser(user).ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFKzzz"); } writer.WriteValue(datetime); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); if (!filterContext.HttpContext.User.Identity.IsAuthenticated) { return; } var userName = SecurityFacade.CurrentUser().Login; var request = filterContext.HttpContext.Request; var controller = filterContext.Controller; var routeData = request.RequestContext.RouteData; var sb = new StringBuilder(); for (int i = 0; i < request.Headers.Count; i++) { sb.AppendFormat("{0}={1};", request.Headers.Keys[i], request.Headers[i]); } var logInfo = new Log.LogInfo() { RequestDate = DateTime.Now, RequestType = request.RequestType, Url = request.RawUrl, IPAddress = request.UserHostAddress, Controller = (string)routeData.Values["controller"], Action = (string)routeData.Values["action"], RequestHeader = sb.ToString(), UserName = userName }; HttpContext.Current.Items.Add(LogInfo, logInfo); if (!Log.IsDebugEnabled) { filterContext.HttpContext.Response.Filter = new CapturingResponseFilter(filterContext.HttpContext.Response.Filter, logInfo); return; } var query = request.QueryString; Log.Debug(query); using (var reader = new StreamReader(request.InputStream)) { try { request.InputStream.Position = 0; logInfo.RequestBody = reader.ReadToEnd(); } catch (Exception ex) { logInfo.RequestBody = string.Empty; //log errors } finally { request.InputStream.Position = 0; } } Log.Debug(logInfo.RequestBody); filterContext.HttpContext.Response.Filter = new CapturingResponseFilter(filterContext.HttpContext.Response.Filter, logInfo); }