public override void AfterConstruction() { base.AfterConstruction(); this.ComponentType = typeof(fmPaymentRequestMemorandum); this.CID = Guid.NewGuid(); csCSecurityUser user = SecuritySystem.CurrentUser as csCSecurityUser; user = this.Session.GetObjectByKey <csCSecurityUser>(user.Oid); if (user != null) { this.Creator = user; //this.FBKManager = user.Staff; this.Requester = user.Staff; this.Curator = user.Department; this.SecondSignaturePerson = user.Staff; IList <csCSecurityRole> roles = GetActualRoles(user); //csCSecurityRole mainBuhRole = fmCSettingsFinance.GetInstance(Session).MainBuhRole; if (roles.Count == 1) { this.OwnerRole = roles[0]; } } // Подразделение-адресат this.FBKDepartment = fmCSettingsFinance.GetInstance(Session).FBKDepartment; // Номер и дата документа по умолчанию this.ExtDocNumber = "-"; this.ExtDocDate = DateTime.Now; //.Date; this.PaymentTaxPeriodPart4 = Convert.ToInt16(DateTime.Now.Year); }
/// <summary> /// Обновим права администратора, для политики Windows Autentication пользователь с административными /// правами создается автоматически, а вот список прав не обновляется /// Паша!!! Реализация не учитывает вариантов в системе безопасности и использует стандартный класс роли /// или его производные /// </summary> private void UpdateAdminRole() { using (IObjectSpace os = ObjectSpace.CreateNestedObjectSpace()) { csCSecurityRole administratorRole = os.FindObject <csCSecurityRole>( new BinaryOperator("Name", SecurityStrategy.AdministratorRoleName), true); if (administratorRole == null) { administratorRole = os.CreateObject <csCSecurityRole>(); administratorRole.Name = SecurityStrategy.AdministratorRoleName; ModelOperationPermissionData modelPermission = os.CreateObject <ModelOperationPermissionData>(); administratorRole.PersistentPermissions.Add(modelPermission); } administratorRole.BeginUpdate(); administratorRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Read); administratorRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Write); administratorRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Create); administratorRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Delete); administratorRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Navigate); administratorRole.EndUpdate(); if (administratorRole.Users.Count == 0) { // Паша !!! Неустойчивый вариант, нужен код определяющий тип User по конфигу Application csCSecurityUser user = os.FindObject <csCSecurityUser>( new BinaryOperator("UserName", ConfigurationManager.AppSettings["DefaultAdminName"])); if (user != null) { user.Roles.Add(administratorRole); } } os.CommitChanges(); } }
public override void AfterConstruction() { base.AfterConstruction(); this.ComponentType = typeof(fmCPRPaymentRequest); this.CID = Guid.NewGuid(); Date = DateTime.Now; DateRegister = Date; State = PaymentRequestStates.REGISTERED; this.Valuta = Session.FindObject <csValuta>(ValRub); this.PaymentValuta = this.Valuta; if (crmUserParty.CurrentUserParty != null) { if (crmUserParty.CurrentUserParty.Value != null) { this.PartyPaySender = crmUserParty.CurrentUserPartyGet(this.Session).Party; } } csCSecurityUser user = SecuritySystem.CurrentUser as csCSecurityUser; user = this.Session.GetObjectByKey <csCSecurityUser>(user.Oid); if (user != null) { this.FBKManager = user.Staff; } }
public IList <csCSecurityRole> GetActualRoles() { csCSecurityUser user = SecuritySystem.CurrentUser as csCSecurityUser; user = this.Session.GetObjectByKey <csCSecurityUser>(user.Oid); return(GetActualRoles(user)); }
public static void AfterConstruction(fmIDocCache instance, IObjectSpace os) { // The "AfterConstruction" method is executed only once, after an object is created. // Use this method to initialize new objects with default property values. instance.DocDate = DateTime.Now; if (crmUserParty.CurrentUserParty != null) { if (crmUserParty.CurrentUserParty.Value != null) { instance.DocParty = crmUserParty.CurrentUserPartyGet(os).Party; } } csCSecurityUser user = SecuritySystem.CurrentUser as csCSecurityUser; user = os.GetObject <csCSecurityUser>(user); if (user != null && user.Staff != null) { instance.DocPartyDepartment = user.Staff.Department; } instance.AccountDebit = os.FindObject <fmCFAAccount>( CriteriaOperator.And( new BinaryOperator("AccountSystem.Code", "1000"), new BinaryOperator("BuhCode", "5011") )); instance.AccountCredit = os.FindObject <fmCFAAccount>( CriteriaOperator.And( new BinaryOperator("AccountSystem.Code", "1000"), new BinaryOperator("BuhCode", "6242") )); instance.AVTMode = "1"; }
public override void AfterConstruction() { base.AfterConstruction(); this.ComponentType = typeof(fmCPRPaymentRequestFinOrder); this.CID = Guid.NewGuid(); //this.State = PaymentRequestStates.PAYED; fmCPRPaymentRequestObligation finObligation = new fmCPRPaymentRequestObligation(Session); this.PaySettlmentOfObligations.Add(finObligation); csCSecurityUser user = SecuritySystem.CurrentUser as csCSecurityUser; csCSecurityUser user1 = SessionHelper.GetObjectInSession <csCSecurityUser>(user, Session); if (user1 != null && user1.Staff != null) { this.FBKManager = user1.Staff; //.Department; this.DepartmentOfState = user1.Staff.Department; } }
static public IList <csCSecurityRole> GetActualRoles(Session session, csCSecurityUser user) { if (user.Session != session) { throw new ArgumentException("Not valid Session for user object"); } IList <csCSecurityRole> roles = new List <csCSecurityRole>(user.Roles.Count); csCSecurityRole mainBuhRole = fmCSettingsFinance.GetInstance(session).MainBuhRole; if (mainBuhRole != null) { IList <csCSecurityRole> valid_roles = mainBuhRole.ChildRoles; foreach (csCSecurityRole role in user.Roles) { if (valid_roles.Contains(role)) { roles.Add(role); } } } return(roles); }
public override void UpdateDatabaseAfterUpdateSchema() { base.UpdateDatabaseAfterUpdateSchema(); if (this.CurrentDBVersion.ToString() != "1.1.1.188") // Поправить на правильный номер! { return; } IObjectSpace os = ObjectSpace; Session ssn = ((ObjectSpace)os).Session; // Назначение Creator для служебных записок XPQuery <fmPaymentRequestMemorandum> paymentRequestMemorandums = new XPQuery <fmPaymentRequestMemorandum>(ssn); var queryPRM = (from prm in paymentRequestMemorandums where prm.Creator == null select prm).ToList <fmPaymentRequestMemorandum>(); foreach (var prm in queryPRM) { XPQuery <AuditDataItemPersistent> auditData = new XPQuery <AuditDataItemPersistent>(ssn); var queryAuditData = (from audit in auditData where audit.OperationType == "ObjectCreated" && audit.AuditedObject.GuidId == prm.Oid select audit).ToList <AuditDataItemPersistent>(); if (queryAuditData.Count() > 0) { XPQuery <csCSecurityUser> users = new XPQuery <csCSecurityUser>(ssn); csCSecurityUser user = (from usr in users where usr.UserName == queryAuditData[0].UserName select usr).FirstOrDefault(); prm.Creator = user; } } os.CommitChanges(); }
static public IList <csCSecurityRole> GetActualRoles(IObjectSpace os, csCSecurityUser user) { return(fmPaymentRequestMemorandum.GetActualRoles(((ObjectSpace)os).Session, os.GetObject <csCSecurityUser>(user))); }
protected override void OnActivated() { base.OnActivated(); novc = Frame.GetController <NewObjectViewController>(); if (novc != null) { bool exists = false; for (int i = 0; i < novc.NewObjectAction.Items.Count; i++) { if (novc.NewObjectAction.Items[i].Id == idCustom) { exists = true; break; } } if (!exists && novc.NewObjectAction.Items.Count > 0) { // Смена заголовка на кнопке создания пустой служебной записки novc.NewObjectAction.Items[0].Caption = captionStandart; // Создать по образцу ChoiceActionItem NewByTemplate = new ChoiceActionItem(idCustom, captionCustom, novc.NewObjectAction.Items[0].Data); NewByTemplate.ImageName = novc.NewObjectAction.Items[0].ImageName; novc.NewObjectAction.Items.Add(NewByTemplate); /* * // Сохранить как шаблон * ChoiceActionItem SaveTemplate = new ChoiceActionItem(idSaveAsTemplate, captionCustomAsTemplate, novc.NewObjectAction.Items[0].Data); * SaveTemplate.ImageName = novc.NewObjectAction.Items[0].ImageName; * novc.NewObjectAction.Items.Add(SaveTemplate); */ } novc.NewObjectAction.Execute += new SingleChoiceActionExecuteEventHandler(CustomNewActionController_Execute); // Настройка способа реакции на кнопке novc.NewObjectAction.ShowItemsOnClick = !(novc.NewObjectAction.Items.Count < 2); } View.CurrentObjectChanged += new EventHandler(View_CurrentObjectChanged); View.ObjectSpace.ObjectChanged += new EventHandler <ObjectChangedEventArgs>(ObjectSpace_ObjectChanged); View.ObjectSpace.ObjectSaved += new EventHandler <ObjectManipulatingEventArgs>(ObjectSpace_ObjectSaved); EnableButton(); psbc = Frame.GetController <PrintSelectionBaseController>(); if (psbc != null) { psbc.ShowInReportAction.SelectionDependencyType = SelectionDependencyType.RequireSingleObject; } // Настройка фильтров csCSecurityUser user = SecuritySystem.CurrentUser as csCSecurityUser; //csCSecurityUser user = ObjectSpace.FindObject<csCSecurityUser>(new BinaryOperator("UserName", "PERSONAL\\12222")); user = ObjectSpace.GetObjectByKey <csCSecurityUser>(user.Oid); if ((View is ListView) & (View.ObjectTypeInfo.Type == typeof(fmPaymentRequestMemorandum))) { csCSecurityRole administratorRole = ObjectSpace.FindObject <csCSecurityRole>(new BinaryOperator("Name", SecurityStrategy.AdministratorRoleName), true); CriteriaOperator criteriaOr = null; if (user != null && administratorRole != null) { bool isAdmin = false; foreach (var role in user.Roles) { if (role.Name == SecurityStrategy.AdministratorRoleName) { isAdmin = true; break; } } if (!isAdmin) { // if (true) { /* * // Список пользователей, ассоциированных с группами текущего пользователя * List<csCSecurityUser> userList = new List<csCSecurityUser>(); * foreach (csCSecurityRole role in GetMainBuhRole(ObjectSpace).ChildRoles) { * if (user.Roles.IndexOf(role) != -1) { * foreach (SecurityUserWithRolesBase userOfGroupBase in role.Users) { * csCSecurityUser userOfGroup = userOfGroupBase as csCSecurityUser; * if (userOfGroup != null && !userList.Contains(userOfGroup)) { * userList.Add(userOfGroup); * } * } * } * } * * // Список всех доступных служебных записок reqMemoListTotal * List<fmPaymentRequestMemorandum> reqMemoListTotal = new List<fmPaymentRequestMemorandum>(); * foreach (csCSecurityUser person in userList) { * XPQuery<fmPaymentRequestMemorandum> RMs = new XPQuery<fmPaymentRequestMemorandum>(((ObjectSpace)ObjectSpace).Session); * List<fmPaymentRequestMemorandum> queryRM = (from rm in RMs * where rm.Creator == person * //&& user.Roles.IndexOf(rm.OwnerRole) != 0 * select rm).ToList(); * foreach (fmPaymentRequestMemorandum rm in queryRM) { * if (user.Roles.IndexOf(rm.OwnerRole) != -1) { * reqMemoListTotal.Add(rm); * } * } * //reqMemoListTotal.AddRange(queryRM); * } * * Guid[] reqMemoIdListTotal = (from r in reqMemoListTotal * select r.Oid).ToArray(); */ //CriteriaOperator UserHasAdminRole = CriteriaOperator.Parse("Creator.Roles[Name = 'Administrator'].Count() > 0"); //CriteriaOperator isTemplate = CriteriaOperator.Parse("State == 'TEMPLATE'"); criteriaOr = CriteriaOperator.Or ( new BinaryOperator(new OperandProperty("FBKReceiver"), new ConstantValue(user.Staff), BinaryOperatorType.Equal) , new BinaryOperator(new OperandProperty("Creator"), new ConstantValue(user), BinaryOperatorType.Equal) , new BinaryOperator(new OperandProperty("Requester"), new ConstantValue(user.Staff), BinaryOperatorType.Equal) , new BinaryOperator(new OperandProperty("FirstSignaturePerson"), new ConstantValue(user.Staff), BinaryOperatorType.Equal) , new BinaryOperator(new OperandProperty("SecondSignaturePerson"), new ConstantValue(user.Staff), BinaryOperatorType.Equal) //,isTemplate , new InOperator("OwnerRole", fmCPRPaymentRequestBusinesLogic.GetActualRoles(ObjectSpace, user).ToArray()) ); } } ((ListView)View).CollectionSource.Criteria["MemorandumFilter"] = criteriaOr; } }
public IList <csCSecurityRole> GetActualRoles(csCSecurityUser user) { return(GetActualRoles(this.Session, user)); }