Пример #1
0
        /// <summary>
        /// 初始化祖先的OUs
        /// </summary>
        /// <param name="currentObj">当前对象</param>
        public void InitAncestorOUs(IOguObject currentObj)
        {
            IOguPropertyAccessible wrapper = (IOguPropertyAccessible)currentObj;

            string parentID = (string)currentObj.Properties["ParentID"];

            Debug.Assert(string.IsNullOrEmpty(parentID) == false);

            Dictionary <string, SCSimpleObjectCollection> parentMap = PC.Adapters.SCSnapshotAdapter.Instance.LoadAllParentsInfo(true, parentID);

            SCSimpleObjectCollection parents = parentMap[parentID];

            List <string> idList = new List <string>(parents.ToIDArray());

            //idList.Add(parentID);

            OguObjectCollection <IOrganization> orgs = this.GetObjects <IOrganization>(SearchOUIDType.Guid, idList.ToArray());

            ((IOguPropertyAccessible)currentObj).Parent = orgs.Find(obj => obj.ID == parentID);
            wrapper = (IOguPropertyAccessible)wrapper.Parent;
            for (int i = parents.Count - 1; i >= 0; i--)
            {
                var org = orgs.Find(obj => obj.ID == parents[i].ID);
                if (org != null && org.DepartmentType != DepartmentTypeDefine.XuNiJiGou)
                {
                    wrapper.Parent = orgs.Find(obj => obj.ID == parents[i].ID);
                    wrapper        = (IOguPropertyAccessible)wrapper.Parent;
                }
            }
        }
Пример #2
0
        public int DisplaceUserInRoleMatrix(string roleID, string userID, string[] displacingUserIDArray)
        {
            IUser originalUser = OguMechanismFactory.GetMechanism().GetObjects <IUser>(SearchOUIDType.Guid, userID).FirstOrDefault();
            OguObjectCollection <IUser> displacingUsers = OguMechanismFactory.GetMechanism().GetObjects <IUser>(SearchOUIDType.Guid, displacingUserIDArray);

            string originalUserCodeName = originalUser != null ? originalUser.LogOnName : string.Empty;

            List <string> desplacingUserCodeNames = new List <string>();

            foreach (IUser user in displacingUsers)
            {
                if (desplacingUserCodeNames.Contains(user.LogOnName) == false)
                {
                    desplacingUserCodeNames.Add(user.LogOnName);
                }
            }

            SOARolePropertyRowCollection rows = SOARolePropertiesAdapter.Instance.LoadByRoleID(roleID, null);

            int result = rows.ReplaceOperators(SOARoleOperatorType.User, originalUserCodeName, desplacingUserCodeNames.ToArray());

            SOARolePropertiesAdapter.Instance.Update(roleID, rows);

            return(result);
        }
Пример #3
0
        public int DisplaceUserInProcessMatrix(string processDespKey, string userID, string[] displacingUserIDArray)
        {
            WfMatrix matrix = WfMatrixAdapter.Instance.LoadByProcessKey(processDespKey, true);

            IUser originalUser = OguMechanismFactory.GetMechanism().GetObjects <IUser>(SearchOUIDType.Guid, userID).FirstOrDefault();
            OguObjectCollection <IUser> displacingUsers = OguMechanismFactory.GetMechanism().GetObjects <IUser>(SearchOUIDType.Guid, displacingUserIDArray);

            string originalUserCodeName = originalUser != null ? originalUser.LogOnName : string.Empty;

            List <string> desplacingUserCodeNames = new List <string>();

            foreach (IUser user in displacingUsers)
            {
                if (desplacingUserCodeNames.Contains(user.LogOnName) == false)
                {
                    desplacingUserCodeNames.Add(user.LogOnName);
                }
            }

            int result = matrix.Rows.ReplcaeOperators(WfMatrixOperatorType.Person, originalUserCodeName, desplacingUserCodeNames.ToArray());

            using (TransactionScope scope = TransactionScopeFactory.Create())
            {
                WfMatrixAdapter.Instance.Update(matrix);

                scope.Complete();
            }

            return(result);
        }
Пример #4
0
        private void tree_GetChildrenData(DeluxeTreeNode parentNode, DeluxeTreeNodeCollection result, string callBackContext)
        {
            ServiceBrokerContext.Current.SaveContextStates();
            try
            {
                InnerTreeContext context = JSONSerializerExecute.Deserialize <InnerTreeContext>(callBackContext);

                if (context.ShowDeletedObjects)
                {
                    ServiceBrokerContext.Current.UseLocalCache       = false;
                    ServiceBrokerContext.Current.ListObjectCondition = ListObjectMask.All;
                }
                else
                {
                    ServiceBrokerContext.Current.ListObjectCondition = ListObjectMask.Common;
                }

                OguObjectCollection <IOguObject> parents = UserOUControlSettings.GetConfig().UserOUControlQuery.GetObjects(((IOguObject)parentNode.ExtendedData).ID);
                //; OguMechanismFactory.GetMechanism().GetObjects<IOguObject>(
                //    SearchOUIDType.Guid, ((IOguObject)parentNode.ExtendedData).ID);

                BindChildren(result, OnGetChildren(parents[0]), context.MultiSelect, context.ListMask, context.SelectMask);
            }
            finally
            {
                ServiceBrokerContext.Current.RestoreSavedStates();
            }
        }
        private void signInControl_AfterSignIn(SignInContext context)
        {
            if (context.ResultType == SignInResultType.Success)
            {
                if (PassportSignInSettings.GetConfig().UseSimulateTime)
                {
                    context.SignInInfo.Properties["SimulateTime"] = this.simulateDate.Value;

                    IPersistTimePoint persister = TimePointSimulationSettings.GetConfig().Persister;

                    if (persister != null)
                    {
                        OguObjectCollection <IUser> users = OguMechanismFactory.GetMechanism().GetObjects <IUser>(SearchOUIDType.LogOnName, context.SignInInfo.UserID);

                        if (users.Count > 0)
                        {
                            persister.SaveTimePoint(users[0].ID, this.simulateDate.Value);

                            TimePointContext tpc = new TimePointContext();

                            tpc.UseCurrentTime = this.simulateDate.Value == DateTime.MinValue;
                            tpc.SimulatedTime  = this.simulateDate.Value;

                            tpc.SaveToCookie();
                        }
                    }
                }
            }
        }
Пример #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="argument"></param>
        public override void Execute(string argument)
        {
            string[] args = argument.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

            ExceptionHelper.FalseThrow(args.Length > 0, "查询人员的角色必须提供登录名");

            OguObjectCollection <IUser> users = QueryHelper.QueryUser(args[0]);

            foreach (IUser user in users)
            {
                if (args.Length > 1)
                {
                    user.Roles[args[1]].ToList().ForEach(obj => OutputHelper.OutputPermissionInfo(obj));
                }
                else
                {
                    List <IRole> roles = user.Roles.GetAllRoles();

                    foreach (IRole role in roles)
                    {
                        if (role.Application != null)
                        {
                            Console.WriteLine("Application");
                            OutputHelper.OutputPermissionInfo(role.Application);
                        }

                        Console.WriteLine("Role");
                        OutputHelper.OutputPermissionInfo(role);
                    }
                }
            }
        }
Пример #7
0
        private void GetApplicationRole()
        {
            List <AppRoles> allRoles = new List <AppRoles>();

            OguObjectCollection <IUser> users = OguMechanismFactory.GetMechanism().GetObjects <IUser>(SearchOUIDType.Guid, Data.ID);

            ExceptionHelper.FalseThrow(users.Count > 0, "不能找到ID为\"{0}\"的用户", Data.ID);

            ApplicationCollection result = PermissionMechanismFactory.GetMechanism().GetAllApplications();

            foreach (IApplication app in result)
            {
                RoleCollection roles = users[0].Roles[app.CodeName];
                if (roles.Count > 0)
                {
                    AppRoles ar = new AppRoles();

                    ar.AppName = app.Name;
                    ar.Roles   = GetRoleNames(roles);

                    allRoles.Add(ar);
                }
            }

            gridAppRoles.DataSource = allRoles;
            gridAppRoles.DataBind();
        }
Пример #8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="argument"></param>
        public override void Execute(string argument)
        {
            string[] args = argument.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

            ExceptionHelper.FalseThrow(args.Length > 0, "查询人员的权限必须提供登录名");

            OguObjectCollection <IUser> users = QueryHelper.QueryUser(args[0]);

            foreach (IUser user in users)
            {
                if (args.Length > 1)
                {
                    user.Permissions[args[1]].ToList().ForEach(obj => OutputHelper.OutputPermissionInfo(obj));
                }
                else
                {
                    Dictionary <IApplication, PermissionCollection> appRoles = user.Permissions.GetAllAppPermissions();

                    foreach (KeyValuePair <IApplication, PermissionCollection> kp in appRoles)
                    {
                        Console.WriteLine("Application");
                        OutputHelper.OutputPermissionInfo(kp.Key);

                        if (kp.Value.Count > 0)
                        {
                            Console.WriteLine("Permissions");
                            kp.Value.ForEach(obj => OutputHelper.OutputPermissionInfo(obj));
                        }
                    }
                }
            }
        }
Пример #9
0
        protected void DefaultProcessRequest(string fpath)
        {
            OguObjectCollection <IUser> user =
                OguMechanismFactory.GetMechanism().GetObjects <IUser>(SearchOUIDType.FullPath, fpath);

            foreach (IUser userObj in user)
            {
                UserInfoExtendCollection collection = UserInfoExtendDataObjectAdapter.Instance.Load(builder => builder.AppendItem("ID", userObj.ID));
                if (collection.Count > 0)
                {
                    Data = collection[0];
                }
                if (collection.Count == 0)
                {
                    Data = new UserInfoExtendDataObject()
                    {
                        ID = userObj.ID
                    }
                }
                ;
                Data.DisplayName = userObj.DisplayName;
                Data.FullPath    = userObj.FullPath;
                Data.LogonName   = userObj.LogOnName;
            }
        }
Пример #10
0
        public void WfGroupResourceDescriptorConverterTest()
        {
            WfConverterHelper.RegisterConverters();

            IUser user = (IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object;

            OguObjectCollection <IGroup> groupColl = user.MemberOf;

            foreach (var group in groupColl)
            {
                WfGroupResourceDescriptor groupDesp = new WfGroupResourceDescriptor(group);

                string result = JSONSerializerExecute.Serialize(groupDesp);

                Console.WriteLine(result);

                WfGroupResourceDescriptor deserializedGroupDesp = JSONSerializerExecute.Deserialize <WfGroupResourceDescriptor>(result);

                string reSerialized = JSONSerializerExecute.Serialize(deserializedGroupDesp);

                Assert.AreEqual(result, reSerialized);

                ResourceConverterTest(groupDesp);
            }
        }
Пример #11
0
        private static IUser GetUserInfoFromID(string userID)
        {
            OguObjectCollection <IUser> users = OguMechanismFactory.GetMechanism().GetObjects <IUser>(SearchOUIDType.Guid, userID);

            ExceptionHelper.FalseThrow <AuthenticateException>(users.Count > 0, Resource.CanNotFindUser, userID);

            return(users[0]);
        }
Пример #12
0
        public static OguObjectCollection <IOguObject> QueryObjectByFullPath(string fullPath)
        {
            OguObjectCollection <IOguObject> objs = OguMechanismFactory.GetMechanism().GetObjects <IOguObject>(SearchOUIDType.FullPath, fullPath);

            ExceptionHelper.FalseThrow(objs.Count != 0, "不能根据FullPath'{0}'找到对象", fullPath);

            return(objs);
        }
Пример #13
0
        public static OguObjectCollection <IOguObject> QueryObjectByID(string objectID)
        {
            OguObjectCollection <IOguObject> objs = OguMechanismFactory.GetMechanism().GetObjects <IOguObject>(SearchOUIDType.Guid, objectID);

            ExceptionHelper.FalseThrow(objs.Count != 0, "不能根据ID'{0}'找到对象", objectID);

            return(objs);
        }
Пример #14
0
        public static IUser QueryUser(string logonName)
        {
            OguObjectCollection <IUser> users = OguMechanismFactory.GetMechanism().GetObjects <IUser>(SearchOUIDType.LogOnName, logonName);

            ExceptionHelper.FalseThrow(users.Count != 0, "不能根据登录名'{0}'找到用户", logonName);

            return(users[0]);
        }
Пример #15
0
        private OguDataCollection <IOguObject> QueryChildrenBySelectMask(IOrganization dept, string searchString)
        {
            ServiceBrokerContext.Current.SaveContextStates();
            var SelectMask    = UserControlObjectMask.All;
            var MaxQueryCount = 15;

            try
            {
                ServiceBrokerContext.Current.ListObjectCondition = ListObjectMask.All;

                OguDataCollection <IOguObject> result = new OguDataCollection <IOguObject>();

                if (SelectMask == UserControlObjectMask.Organization)
                {
                    OguObjectCollection <IOrganization> orgs = dept.QueryChildren <IOrganization>(searchString, true, SearchLevel.SubTree, MaxQueryCount);
                    foreach (IOrganization org in orgs)
                    {
                        result.Add(org);
                    }
                }
                else
                if (SelectMask == UserControlObjectMask.Group)
                {
                    OguObjectCollection <IGroup> groups = dept.QueryChildren <IGroup>(searchString, true, SearchLevel.SubTree, MaxQueryCount);
                    foreach (IOrganization group in groups)
                    {
                        result.Add(group);
                    }
                }
                else
                if (SelectMask == UserControlObjectMask.User || SelectMask == (UserControlObjectMask.User | UserControlObjectMask.Sideline))
                {
                    OguObjectCollection <IUser> users = dept.QueryChildren <IUser>(searchString, true, SearchLevel.SubTree, MaxQueryCount);
                    foreach (IUser user in users)
                    {
                        result.Add(user);
                    }
                }
                else
                {
                    if ((int)(SelectMask & (UserControlObjectMask.Group | UserControlObjectMask.User | UserControlObjectMask.Organization)) != 0)
                    {
                        OguObjectCollection <IOguObject> objs = dept.QueryChildren <IOguObject>(searchString, true, SearchLevel.SubTree, MaxQueryCount);

                        foreach (IOguObject obj in objs)
                        {
                            result.Add(obj);
                        }
                    }
                }

                return(result);
            }
            finally
            {
                ServiceBrokerContext.Current.RestoreSavedStates();
            }
        }
Пример #16
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="argument"></param>
        public override void Execute(string argument)
        {
            OguObjectCollection <IUser> users = QueryHelper.QueryUser(argument);

            foreach (IUser user in users)
            {
                user.Parent.Children.ToList().ForEach(obj => OutputHelper.OutputObjectInfo(obj));
            }
        }
Пример #17
0
        protected internal override void FillUsers(OguDataCollection <IUser> users)
        {
            if (this._Department != null)
            {
                OguObjectCollection <IUser> children = this._Department.GetAllChildren <IUser>(true);

                children.ForEach(u => users.Add(u));
            }
        }
Пример #18
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="argument"></param>
        public override void Execute(string argument)
        {
            OguObjectCollection <IUser> users = QueryHelper.QueryUser(argument);

            foreach (IUser user in users)
            {
                OutputHelper.OutputObjectInfo(user.TopOU);
            }
        }
Пример #19
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="argument"></param>
        public override void Execute(string argument)
        {
            OguObjectCollection <IOguObject> groups = QueryHelper.QueryObjectByFullPath(argument);

            foreach (IGroup group in groups)
            {
                group.Members.ToList().ForEach(obj => OutputHelper.OutputObjectInfo(obj));
            }
        }
        protected internal override void FillUsers(OguDataCollection <OGUPermission.IUser> users)
        {
            if (this._Group != null)
            {
                OguObjectCollection <IUser> children = this._Group.Members;

                children.ForEach(u => users.Add(u));
            }
        }
Пример #21
0
        private OguDataCollection <IOguObject> QueryChildrenBySelectMask(IOrganization dept, string searchString)
        {
            ServiceBrokerContext.Current.SaveContextStates();
            try
            {
                var queryImpl = UserOUControlSettings.GetConfig().UserOUControlQuery;

                ServiceBrokerContext.Current.ListObjectCondition = ShowDeletedObjects ? ListObjectMask.All : ListObjectMask.Common;

                OguDataCollection <IOguObject> result = new OguDataCollection <IOguObject>();

                if (SelectMask == UserControlObjectMask.Organization)
                {
                    OguObjectCollection <IOrganization> orgs = queryImpl.QueryDescendants <IOrganization>(SchemaQueryType.Organizations, dept, searchString, MaxQueryCount);  //dept.QueryChildren<IOrganization>(searchString, true, SearchLevel.SubTree, MaxQueryCount);
                    foreach (IOrganization org in orgs)
                    {
                        result.Add(org);
                    }
                }
                else
                if (SelectMask == UserControlObjectMask.Group)
                {
                    OguObjectCollection <IGroup> groups = queryImpl.QueryDescendants <IGroup>(SchemaQueryType.Groups, dept, searchString, MaxQueryCount);   // dept.QueryChildren<IGroup>(searchString, true, SearchLevel.SubTree, MaxQueryCount);
                    foreach (IGroup group in groups)
                    {
                        result.Add(group);
                    }
                }
                else
                if (SelectMask == UserControlObjectMask.User || SelectMask == (UserControlObjectMask.User | UserControlObjectMask.Sideline))
                {
                    OguObjectCollection <IUser> users = queryImpl.QueryDescendants <IUser>(SchemaQueryType.Groups, dept, searchString, MaxQueryCount);       //dept.QueryChildren<IUser>(searchString, true, SearchLevel.SubTree, MaxQueryCount);
                    foreach (IUser user in users)
                    {
                        result.Add(user);
                    }
                }
                else
                {
                    if ((int)(SelectMask & (UserControlObjectMask.Group | UserControlObjectMask.User | UserControlObjectMask.Organization)) != 0)
                    {
                        OguObjectCollection <IOguObject> objs = queryImpl.QueryDescendants <IOguObject>(SchemaQueryType.Users | SchemaQueryType.Groups | SchemaQueryType.Organizations, dept, searchString, MaxQueryCount);       //dept.QueryChildren<IOguObject>(searchString, true, SearchLevel.SubTree, MaxQueryCount);

                        foreach (IOguObject obj in objs)
                        {
                            result.Add(obj);
                        }
                    }
                }

                return(result);
            }
            finally
            {
                ServiceBrokerContext.Current.RestoreSavedStates();
            }
        }
Пример #22
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="argument"></param>
        public override void Execute(string argument)
        {
            OguObjectCollection <IOguObject> ogus = QueryHelper.QueryObjectByFullPath(argument);

            (ogus[0] is IOrganization).FalseThrow("对象\"{0}\"不是一个组织", argument);

            IOrganization ogu = (IOrganization)ogus[0];

            ogu.GetAllChildren <IOguObject>(true).ForEach(o => OutputHelper.OutputObjectInfo(o));
        }
Пример #23
0
        public int DisplaceUserInProcess(string processID, string userID, string[] displacingUserIDArray)
        {
            IUser originalUser = OguMechanismFactory.GetMechanism().GetObjects <IUser>(SearchOUIDType.Guid, userID).FirstOrDefault();

            OguObjectCollection <IUser> displacingUsers = OguMechanismFactory.GetMechanism().GetObjects <IUser>(SearchOUIDType.Guid, displacingUserIDArray);

            List <IUser> distinctUsers = new List <IUser>();

            foreach (IUser user in displacingUsers)
            {
                if (distinctUsers.Exists(u => u.ID == user.ID) == false)
                {
                    distinctUsers.Add(user);
                }
            }

            IWfProcess process = WfRuntime.GetProcessByProcessID(processID);

            int result = 0;

            foreach (IWfActivity activity in process.Activities)
            {
                bool needReplace = false;

                if (activity.Status != WfActivityStatus.Completed && activity.Status != WfActivityStatus.Aborted)
                {
                    if (activity.Status == WfActivityStatus.Running || activity.Status == WfActivityStatus.Pending)
                    {
                        needReplace = activity.Assignees.Contains(originalUser.ID);
                    }
                    else
                    {
                        needReplace = activity.Candidates.Contains(originalUser.ID);
                    }

                    if (needReplace)
                    {
                        WfReplaceAssigneesExecutor executor = new WfReplaceAssigneesExecutor(null, activity, originalUser, distinctUsers);

                        executor.ExecuteNotPersist();
                        result++;
                    }
                }
            }

            using (TransactionScope scope = TransactionScopeFactory.Create())
            {
                WfReplaceAssigneesExecutor.DoUserTaskOperations();
                WfRuntime.PersistWorkflows();

                scope.Complete();
            }

            return(result);
        }
Пример #24
0
        public IOrganization GetOrganizationByPath(string rootPath)
        {
            OguObjectCollection <IOrganization> orgs = OguMechanismFactory.GetMechanism().GetObjects <IOrganization>(SearchOUIDType.FullPath, rootPath);

            if (orgs.Count == 0)
            {
                throw new ArgumentException(string.Format("不能找到路径为\"{0}\"的根组织", rootPath));
            }

            return(orgs[0]);
        }
Пример #25
0
        public Dictionary <string, IEnumerable <IOrganization> > QueryObjectsParents(params string[] ids)
        {
            Dictionary <string, IEnumerable <IOrganization> > result = new Dictionary <string, IEnumerable <IOrganization> >();

            OguObjectCollection <IOguObject> objs = OguMechanismFactory.GetMechanism().GetObjects <IOguObject>(SearchOUIDType.Guid, ids);

            foreach (IOguObject obj in objs)
            {
                result[obj.ID] = GetAllParents(obj);
            }

            return(result);
        }
Пример #26
0
        private static void FillPersonTypeUsers(WfMatrixRowUsersCollection rowsUsers)
        {
            Dictionary <string, string> userIDs = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase);

            foreach (WfMatrixRowUsers rowUsers in rowsUsers)
            {
                if (rowUsers.Row.OperatorType == WfMatrixOperatorType.Person)
                {
                    foreach (string id in rowUsers.ObjectIDs)
                    {
                        userIDs[id] = id;
                    }
                }
            }

            List <string> logonNames = new List <string>();

            foreach (KeyValuePair <string, string> kp in userIDs)
            {
                logonNames.Add(kp.Key);
            }

            OguObjectCollection <IUser> users = OguMechanismFactory.GetMechanism().GetObjects <IUser>(SearchOUIDType.LogOnName, logonNames.ToArray());

            if (WfRuntime.ProcessContext.CurrentProcess != null)
            {
                users = users.FilterUniqueSidelineUsers(WfRuntime.ProcessContext.CurrentProcess.OwnerDepartment);
            }

            Dictionary <string, IUser> userDicts = GenerateUserDictionary(users);

            foreach (WfMatrixRowUsers rowUsers in rowsUsers)
            {
                if (rowUsers.Row.OperatorType == WfMatrixOperatorType.Person)
                {
                    foreach (string id in rowUsers.ObjectIDs)
                    {
                        IUser user = null;
                        if (userDicts.TryGetValue(id, out user))
                        {
                            if (rowUsers.Users.Exists(u => string.Compare(u.ID, user.ID, true) == 0) == false)
                            {
                                rowUsers.Users.Add((IUser)OguUser.CreateWrapperObject(user));
                            }
                        }
                    }
                }
            }
        }
Пример #27
0
        /// <summary>
        /// 根据童虎的不变ID,得到用户的登录名
        /// </summary>
        /// <param name="consistentID"></param>
        /// <returns></returns>
        public string GetUserLogonName(string consistentID)
        {
            consistentID.CheckStringIsNullOrEmpty("consistentID");

            OguObjectCollection <IUser> users = OguMechanismFactory.GetMechanism().GetObjects <IUser>(SearchOUIDType.Guid, consistentID);

            string result = string.Empty;

            if (users.Count > 0)
            {
                result = users[0].LogOnName;
            }

            return(result);
        }
Пример #28
0
        /// <summary>
        /// 从Ticket token构造Identity
        /// </summary>
        /// <param name="tokenContainer"></param>
        /// <param name="ticket"></param>
        public DeluxeIdentity(GenericTicketTokenContainer tokenContainer, ITicket ticket)
        {
            tokenContainer.NullCheck("tokenContainer");
            tokenContainer.User.NullCheck("tokenContainer.User");
            tokenContainer.RealUser.NullCheck("tokenContainer.RealUser");

            OguObjectCollection <IUser> users = GetUsersInfoFromIDs(tokenContainer.User.ID, tokenContainer.RealUser.ID);

            this.user     = users.Find(u => string.Compare(u.ID, tokenContainer.User.ID, true) == 0);
            this.realUser = users.Find(u => string.Compare(u.ID, tokenContainer.RealUser.ID, true) == 0);

            this.user.NullCheck("user");
            this.realUser.NullCheck("realUser");

            this.ticket = ticket;
        }
Пример #29
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="argument"></param>
        public override void Execute(string argument)
        {
            OguObjectCollection <IUser> users = QueryHelper.QueryUser(argument);

            foreach (IUser user in users)
            {
                if (user.Parent != null)
                {
                    OutputHelper.OutputObjectInfo(user.Parent);
                }
                else
                {
                    Console.WriteLine("User doesn't have parent.");
                }
            }
        }
        /// <summary>
        /// 得到某一级组织下人员(带兼职)的详细信息。
        /// 权限中心的Organization的Children属性,仅仅返回子对象的基本属性,这个方法是通过再查询一次权限中心,继而得到完整的属性
        /// </summary>
        /// <param stringValue="allOguChildren"></param>
        /// <returns></returns>
        private static IList <IUser> GetUserDetailInfo(OguObjectCollection <IOguObject> allOguChildren)
        {
            List <string> childrenIDs = new List <string>();

            foreach (IOguObject child in allOguChildren)
            {
                if (child is IUser)
                {
                    if (SynchronizeContext.Current.IsRealObject(child))
                    {
                        childrenIDs.Add(child.ID);
                    }
                }
            }

            return(OguMechanismFactory.GetMechanism().GetObjects <IUser>(SearchOUIDType.Guid, childrenIDs.ToArray()).ToList());
        }
Пример #31
0
		//可考虑扩展方法
		private static bool IsSameMembers(OguObjectCollection<IUser> oguGroupMembers, Dictionary<string, ADObjectWrapper> adGroupMembers)
		{
			bool result = true;

			if (oguGroupMembers.Count == adGroupMembers.Count)
			{
				foreach (IUser user in oguGroupMembers)
				{
					if (adGroupMembers.ContainsKey(user.ID) == false)
					{
						result = false;
						break;
					}
				}
			}
			else
				result = false;

			return result;
		}