public bool ValidateGroups(DateTime timePoint) { InSqlClauseBuilder inSql1 = new InSqlClauseBuilder("ChildSchemaType"); inSql1.AppendItem(SchemaInfo.FilterByCategory("Groups").ToSchemaNames()); InSqlClauseBuilder inSql2 = new InSqlClauseBuilder("ParentSchemaType"); inSql2.AppendItem(SchemaInfo.FilterByCategory("Organizations").ToSchemaNames()); var all = new ConnectiveSqlClauseCollection(inSql1, inSql2, VersionStrategyQuerySqlBuilder.Instance.TimePointToBuilder(timePoint)); string sql = string.Format(@"SELECT TOP 1 1 from SC.SchemaRelationObjects WHERE ObjectID IN( SELECT ObjectID FROM SC.SchemaRelationObjects WHERE {0} AND STATUS =1 GROUP by ObjectID HAVING COUNT(ParentID) <>1 )", all.ToSqlString(TSqlBuilder.Instance)); using (DbContext context = DbContext.GetContext(this.GetConnectionName())) { Database db = DatabaseFactory.Create(context); using (var dr = db.ExecuteReader(CommandType.Text, sql)) { if (dr.Read()) { return(false); } else { return(true); } } } }
public void ClearDbErrors() { var schemaUsers = SchemaInfo.FilterByCategory("Users").ToSchemaNames(); InSqlClauseBuilder containerSchemaInSql = new InSqlClauseBuilder("ContainerSchemaType"); containerSchemaInSql.AppendItem(schemaUsers); InSqlClauseBuilder memberSchemaInSql = new InSqlClauseBuilder("MemberSchemaType"); containerSchemaInSql.AppendItem(schemaUsers); string sql = string.Format(@" DELETE FROM SC.SchemaMembers WHERE ContainerID = MemberID AND {0} DELETE FROM SC.SchemaMembersSnapshot WHERE ContainerID = MemberID AND {0} DELETE FROM SC.SchemaMembersSnapshot_Current WHERE ContainerID = MemberID AND {0} ", new ConnectiveSqlClauseCollection(containerSchemaInSql, memberSchemaInSql).ToSqlString(TSqlBuilder.Instance)); DbHelper.RunSql(sql, this.GetConnectionName()); }
public DataSet GetUserRoles2(string userValue, string appCodeName, UserValueType userValueType, RightMaskType rightMask, DelegationMaskType delegationMask, bool includeMatrixUsers) { string[] schemaTypes = SchemaInfo.FilterByCategory("Roles").ToSchemaNames(); string[] userIDs = OGUReaderService.SplitObjectValues(userValue); SCObjectAndRelationCollection users = OGUReaderService.GetSearchAdapter(GetSearchOUIDType(userValueType), SchemaInfo.FilterByCategory("Users").ToSchemaNames(), userIDs, false).QueryObjectsAndRelations(); SchemaObjectCollection roles = SCSnapshotAdapter.Instance.QueryUserBelongToRoles(schemaTypes, appCodeName, users.ToIDArray(), false, DateTime.MinValue); if (includeMatrixUsers) { List <string> matachedRoleIDs = GetUserRoleIDsInMatrix(users.ToIDArray(), appCodeName); //过滤掉已经在之前查询过的角色 matachedRoleIDs = matachedRoleIDs.FindAll(rID => roles.ContainsKey(rID) == false); if (matachedRoleIDs.Count > 0) { InSqlClauseBuilder matrixRoleBuilder = new InSqlClauseBuilder("ID"); matrixRoleBuilder.AppendItem(matachedRoleIDs.ToArray()); SchemaObjectCollection rolesInMatrix = SchemaObjectAdapter.Instance.Load(matrixRoleBuilder, DateTime.MinValue); rolesInMatrix.ForEach(rMatrix => roles.AddNotExistsItem(rMatrix, (r) => string.Compare(r.ID, rMatrix.ID, true) == 0)); } } DataSet ds = new DataSet(); ds.Tables.Add(QueryHelper.GetAppObjectTableBuilder(schemaTypes).Convert(roles)); return(ds); }
/// <summary> /// 根据指定的类别过滤对象 /// </summary> /// <param name="objectSet">对象集</param> /// <param name="categories">过滤的类别</param> /// <returns></returns> internal IEnumerable <SchemaObjectBase> FilterNormalObjectsBySchemaCategories(IEnumerable <SchemaObjectBase> objectSet, params string[] categories) { if (categories.Length > 0) { var schemas = SchemaInfo.FilterByCategory(categories); foreach (var obj in objectSet) { foreach (var schema in schemas) { if (obj.SchemaType == schema.Name && obj.Status == SchemaObjectStatus.Normal) { yield return(obj); break; } } } } else { foreach (var item in objectSet) { yield return(item); } } }
public DataSet GetLeadersOfSecretaries(string strSecValues, int iSoc, string strAttrs, int iLod) { DataSet ds = new DataSet(); ds.Tables.Add(GetMemberContainersAdapter(SchemaInfo.FilterByCategory("Users").ToSchemaNames(), GetSearchOUIDType(iSoc), SplitObjectValues(strSecValues), GetListObjectMask(iLod) != ListObjectMask.Common).Query()); return(ds); }
public DataSet GetGroupsOfUsers(string strUserValues, int iSocu, string strParentValue, int iSoco, string strAttrs, int iLod) { DataSet ds = new DataSet(); ds.Tables.Add(GetUserContainersAdapter(SchemaInfo.FilterByCategory("Groups").ToSchemaNames(), GetSearchOUIDType(iSocu), SplitObjectValues(strUserValues), GetListObjectMask(iLod) != ListObjectMask.Common).Query()); return(ds); }
public DataSet GetUsersInGroups(string strGroupValues, int iSocg, string strAttrs, string strOrgValues, int iSoco, string strUserRankCodeName, int iLod) { DataSet ds = new DataSet(); ds.Tables.Add(GetContainsUsersAdapter(SchemaInfo.FilterByCategory("Groups").ToSchemaNames(), GetSearchOUIDType(iSocg), SplitObjectValues(strGroupValues), GetListObjectMask(iLod) != ListObjectMask.Common).Query()); return(ds); }
public DataSet GetFunctions(string appCodeName, RightMaskType rightMask) { string[] schemaTypes = SchemaInfo.FilterByCategory("Permissions").ToSchemaNames(); SchemaObjectCollection objs = SCSnapshotAdapter.Instance.QueryApplicationObjectsByCodeName(schemaTypes, appCodeName, false, DateTime.MinValue); DataSet ds = new DataSet(); ds.Tables.Add(QueryHelper.GetAppObjectTableBuilder(schemaTypes).Convert(objs)); return(ds); }
protected void dataSourceMain_Selecting(object sender, ObjectDataSourceSelectingEventArgs e) { var allConditions = new ConnectiveSqlClauseCollection(this.DeluxeSearch.GetCondition()); var filter = this.GetCurrentFilterType(); if (filter != FilterSchemaType.All) { int count = 0; var v = (int)filter; for (int i = sizeof(FilterSchemaType) * 8 - 1; i >= 0; i--) { if ((v & 1) == 1) { count++; } v >>= 1; // 计算有几个位被置一 } string[] categories = new string[count]; v = 0; if ((filter & FilterSchemaType.User) == FilterSchemaType.User) { categories[v++] = "Users"; } if ((filter & FilterSchemaType.Group) == FilterSchemaType.Group) { categories[v++] = "Groups"; } if ((filter & FilterSchemaType.Organization) == FilterSchemaType.Organization) { categories[v++] = "Organizations"; } e.InputParameters["schemaTypes"] = SchemaInfo.FilterByCategory(categories).ToSchemaNames(); } //if (this.AdvanceSearchEnabled) { var condition = this.CurrentAdvancedSearchCondition; WhereSqlClauseBuilder builder = ConditionMapping.GetWhereSqlClauseBuilder(condition); allConditions.Add(builder); } this.dataSourceMain.Condition = allConditions; }
public DataSet GetFunctionsRoles(string appCodeName, string funcCodeNames) { string[] schemaTypes = SchemaInfo.FilterByCategory("Permissions").ToSchemaNames(); string[] permissionCodeNames = OGUReaderService.SplitObjectValues(funcCodeNames); SchemaObjectCollection objs = SCSnapshotAdapter.Instance.QueryPermissionRolesByCodeName(schemaTypes, appCodeName, permissionCodeNames, false, DateTime.MinValue); DataSet ds = new DataSet(); ds.Tables.Add(QueryHelper.GetAppObjectTableBuilder(schemaTypes).Convert(objs)); return(ds); }
public DataSet GetUserPermissions(string userValue, string appCodeName, UserValueType userValueType, RightMaskType rightMask, DelegationMaskType delegationMask) { string[] schemaTypes = SchemaInfo.FilterByCategory("Roles").ToSchemaNames(); string[] userIDs = OGUReaderService.SplitObjectValues(userValue); SCObjectAndRelationCollection users = OGUReaderService.GetSearchAdapter(GetSearchOUIDType(userValueType), SchemaInfo.FilterByCategory("Users").ToSchemaNames(), userIDs, false).QueryObjectsAndRelations(); SchemaObjectCollection roles = SCSnapshotAdapter.Instance.QueryUserBelongToPermissions(schemaTypes, appCodeName, users.ToIDArray(), false, DateTime.MinValue); DataSet ds = new DataSet(); ds.Tables.Add(QueryHelper.GetAppObjectTableBuilder(schemaTypes).Convert(roles)); return(ds); }
public static AUAdminScopeTypeCollection GetAdminScopeTypes() { AUAdminScopeTypeCollection all = new AUAdminScopeTypeCollection(); var schemas = SchemaInfo.FilterByCategory("AUScopeItems"); foreach (var item in schemas) { all.Add(new AUAdminScopeType() { SchemaName = item.Description, SchemaType = item.Name }); } return(all); }
public DataSet GetChildrenInRoles(string orgRoot, string appCodeName, string roleCodeNames, bool doesMixSort, bool doesSortRank, bool includeDelegate) { string[] schemaTypes = SchemaInfo.FilterByCategory("Roles").ToSchemaNames(); string[] roleIDs = OGUReaderService.SplitObjectValues(roleCodeNames); bool removeDuplicateData = GetMethodSettingAttributeValue("GetChildrenInRoles", "removeDuplicateData", false); SCObjectAndRelationCollection relations = SCSnapshotAdapter.Instance.QueryRolesContainsMembers(schemaTypes, appCodeName, roleIDs, removeDuplicateData, false, DateTime.MinValue); relations.FillDetails(); DataSet ds = new DataSet(); ds.Tables.Add(QueryHelper.GetOguTableBuilder(new string[] { "OguObject" }).Convert(relations)); return(ds); }
protected override void OnPreRender(EventArgs e) { if (this.views.ActiveViewIndex == 0) { var dic = SCSnapshotAdapter.Instance.QueryCountGroupBySchema(DateTime.MinValue); this.ConfigMetro(dic, SchemaInfo.FilterByCategory("Users").ToSchemaNames(), this.ltMemberCount); this.ConfigMetro(dic, "Groups", this.ltGroupCount); this.ConfigMetro(dic, "Organizations", this.ltOrgCount); this.ConfigMetro(dic, "Applications", this.ltAppCount); this.logItems.DataSource = SCOperationLogAdapter.Instance.LoadRecentSummaryLog(5); this.logItems.DataBind(); } Util.ConfigToggleViewButton(this.gridViews.ActiveViewIndex, this.lnkViewMode, this.lblViewMode); base.OnPreRender(e); }
protected override void OnBuildQueryCondition(QueryCondition qc) { qc.FromClause = TimePointContext.Current.UseCurrentTime ? "SC.SchemaObjectSnapshot_Current O INNER JOIN SC.SchemaRelationObjectsSnapshot_Current R ON O.ID = R.ObjectID" : "SC.SchemaObjectSnapshot O INNER JOIN SC.SchemaRelationObjectsSnapshot R ON O.ID = R.ObjectID"; qc.SelectFields = "O.*,R.ParentID,R.FullPath"; if (string.IsNullOrEmpty(qc.OrderByClause)) { qc.OrderByClause = "R.InnerSort ASC"; } qc.WhereClause.IsNotEmpty((s) => qc.WhereClause += " AND "); InSqlClauseBuilder inSql = new InSqlClauseBuilder("O.SchemaType"); if (this.schemaTypes != null && this.schemaTypes.Length > 0) { inSql.AppendItem(this.schemaTypes); } else { var config = ObjectSchemaSettings.GetConfig(); inSql.AppendItem(SchemaInfo.FilterByCategory("Users", "Groups", "Organizations").ToSchemaNames()); if (inSql.IsEmpty) { throw new ApplicationException("配置中不存在任何可用的Schema"); } } var timeCondition1 = VersionStrategyQuerySqlBuilder.Instance.TimePointToBuilder("R."); var where = new WhereSqlClauseBuilder(); where.AppendItem("R.Status", (int)SchemaObjectStatus.Normal); where.AppendItem("R.ParentSchemaType", "Organizations"); if (startPath.IsNotEmpty()) { where.AppendItem("R.FullPath", TSqlBuilder.Instance.EscapeLikeString(startPath) + "%", "LIKE"); } var timeCondition2 = VersionStrategyQuerySqlBuilder.Instance.TimePointToBuilder("O."); where.AppendItem("O.Status", (int)SchemaObjectStatus.Normal); qc.WhereClause += new ConnectiveSqlClauseCollection(timeCondition1, timeCondition2, where, inSql).ToSqlString(TSqlBuilder.Instance); }
public IList <RoleDisplayItem> LoadByRoleIds(string[] ids) { IList <RoleDisplayItem> result = null; if (ids.Length > 0 && ids.Length > 0) { string sql = @"SELECT O.*, A.ID AS AppID, A.Name As AppName, A.DisplayName AS AppDisplayName FROM SC.SchemaObjectSnapshot O INNER JOIN SC.SchemaMembersSnapshot R ON R.MemberID = O.ID INNER JOIN SC.SchemaObjectSnapshot_Current A ON R.ContainerID = A.ID WHERE "; InSqlClauseBuilder inBuilder1 = new InSqlClauseBuilder("O.SchemaType"); inBuilder1.AppendItem(SchemaInfo.FilterByCategory("Roles").ToSchemaNames()); InSqlClauseBuilder inBuilder2 = new InSqlClauseBuilder("O.ID"); inBuilder2.AppendItem(ids); var timeLimit1 = VersionStrategyQuerySqlBuilder.Instance.TimePointToBuilder("O."); var timeLimit2 = VersionStrategyQuerySqlBuilder.Instance.TimePointToBuilder("R."); WhereSqlClauseBuilder builder = new WhereSqlClauseBuilder(); builder.AppendItem("O.Status", (int)SchemaObjectStatus.Normal); builder.AppendItem("R.Status", (int)SchemaObjectStatus.Normal); sql += new ConnectiveSqlClauseCollection(inBuilder1, inBuilder2, timeLimit1, timeLimit2, builder).ToSqlString(TSqlBuilder.Instance); DataTable table = DbHelper.RunSqlReturnDS(sql, this.GetConnectionName()).Tables[0]; result = new List <RoleDisplayItem>(table.Rows.Count); foreach (DataRow row in table.Rows) { var obj = new RoleDisplayItem(); ORMapping.DataRowToObject(row, obj); result.Add(obj); } } else { result = new List <RoleDisplayItem>(); } return(result); }
public DataSet GetUserPermissions2(string userValue, string appCodeName, UserValueType userValueType, RightMaskType rightMask, DelegationMaskType delegationMask, bool includeMatrixUsers) { string[] schemaTypes = SchemaInfo.FilterByCategory("Roles").ToSchemaNames(); string[] userIDs = OGUReaderService.SplitObjectValues(userValue); SCObjectAndRelationCollection users = OGUReaderService.GetSearchAdapter(GetSearchOUIDType(userValueType), SchemaInfo.FilterByCategory("Users").ToSchemaNames(), userIDs, false).QueryObjectsAndRelations(); SchemaObjectCollection permissions = SCSnapshotAdapter.Instance.QueryUserBelongToPermissions(schemaTypes, appCodeName, users.ToIDArray(), false, DateTime.MinValue); if (includeMatrixUsers) { string[] permissionTypes = SchemaInfo.FilterByCategory("Permissions").ToSchemaNames(); List <string> roleIDsInMatrix = GetUserRoleIDsInMatrix(users.ToIDArray(), appCodeName); SCObjectAndRelationCollection permissionsInMatrixRelation = SCSnapshotAdapter.Instance.QueryObjectAndRelationByParentIDs(permissionTypes, roleIDsInMatrix.ToArray(), false, true, false, DateTime.MinValue); InSqlClauseBuilder inBuilder = new InSqlClauseBuilder("ID"); List <string> permissionInMatrixIDs = new List <string>(); foreach (SCObjectAndRelation pim in permissionsInMatrixRelation) { if (permissions.ContainsKey(pim.ID) == false) { inBuilder.AppendItem(pim.ID); } } if (inBuilder.IsEmpty == false) { SchemaObjectCollection permissionsInMatrix = SchemaObjectAdapter.Instance.Load(inBuilder, DateTime.MinValue); permissions.CopyFrom(permissionsInMatrix); } } DataSet ds = new DataSet(); ds.Tables.Add(QueryHelper.GetAppObjectTableBuilder(schemaTypes).Convert(permissions)); return(ds); }
static UnitBrowseDialog() { profiles = new Dictionary <string, SchemaProfile>(); foreach (var schema in SchemaInfo.FilterByCategory("Users")) { profiles[schema.Name] = new SchemaProfile(true, ControlResources.UserLogoUrl, ControlResources.UserLogoUrl, "pc-usernode"); } foreach (var schema in SchemaInfo.FilterByCategory("Organizations")) { profiles[schema.Name] = new SchemaProfile(false, ControlResources.OULogoUrl, ControlResources.OULogoUrl, "pc-orgnode"); } foreach (var schema in SchemaInfo.FilterByCategory("Groups")) { profiles[schema.Name] = new SchemaProfile(true, ControlResources.GroupLogoUrl, ControlResources.GroupLogoUrl, "pc-groupnode"); } }
protected void dataSourceMain_Selecting(object sender, ObjectDataSourceSelectingEventArgs e) { if (this.IsPostBack == false) { e.Cancel = true; } else { e.InputParameters["startPath"] = this.StartFullPath; e.InputParameters["schemaTypes"] = null; //if (this.AdvanceSearchEnabled) { var condition = this.CurrentAdvancedSearchCondition; WhereSqlClauseBuilder builder = ConditionMapping.GetWhereSqlClauseBuilder(condition); this.dataSourceMain.Condition = new ConnectiveSqlClauseCollection(builder, this.DeluxeSearch.GetCondition()); switch (condition.SchemaTypeOption) { case 1: e.InputParameters["schemaTypes"] = SchemaInfo.FilterByCategory("Users").ToSchemaNames(); break; case 2: e.InputParameters["schemaTypes"] = SchemaInfo.FilterByCategory("Groups").ToSchemaNames(); break; case 3: e.InputParameters["schemaTypes"] = SchemaInfo.FilterByCategory("Organizations").ToSchemaNames(); break; default: break; } } //else //{ // this.dataSourceMain.Condition = this.DeluxeSearch.GetCondition(); //} } }
protected override void DoValidate(object objectToValidate, object currentObject, string key, ValidationResults validateResults) { bool isValid = false; var types = SchemaInfo.FilterByCategory("AdminScopeItems"); foreach (var item in types) { if (item.Name.Equals(objectToValidate)) { isValid = true; break; } } if (isValid == false) { SchemaObjectBase doValidateObj = (SchemaObjectBase)currentObject; ObjectSchemaConfigurationElement config = ObjectSchemaSettings.GetConfig().Schemas[doValidateObj.SchemaType]; this.RecordValidationResult(validateResults, string.Format(this.MessageTemplate, string.IsNullOrEmpty(config.Description) ? config.Description : config.Name, doValidateObj.Properties["Name"].StringValue, doValidateObj.ID), doValidateObj, key); } }
/// <summary> /// 获取可用的操作类型 /// </summary> /// <param name="keys"></param> /// <returns><see cref="TransferObjectType"/>的组合值</returns> internal static TransferObjectType GetAvailableOperation(string[] keys) { TransferObjectType result = TransferObjectType.None; if (keys != null) { var relations = DbUtil.LoadCurrentParentRelations(keys, SchemaInfo.FilterByCategory("Organizations").ToSchemaNames()); bool existRootOrg = false; foreach (var r in relations) { if (Util.IsOrganization(r.ChildSchemaType) && r.ParentID == PC.SCOrganization.RootOrganizationID) { existRootOrg = true; // 一级组织原则上不允许转移,如果含有一级组织,则什么都做不成 break; } } if (existRootOrg == false) { foreach (var item in DbUtil.LoadObjects(keys)) { if (item is SCUser) { result |= TransferObjectType.Members; } else if (item is SCGroup) { result |= TransferObjectType.Groups; } else if (item is SCOrganization) { result |= TransferObjectType.Orgnizations; } } } } return(result); }
public DataSet GetRolesUsers2(string orgRoot, string appCodeName, string roleCodeNames, DelegationMaskType delegationMask, SidelineMaskType sidelineMask, string extAttr, bool includeMatrixUsers) { string[] schemaTypes = SchemaInfo.FilterByCategory("Roles").ToSchemaNames(); string[] roleIDs = OGUReaderService.SplitObjectValues(roleCodeNames); bool removeDuplicateData = GetMethodSettingAttributeValue("GetChildrenInRoles", "removeDuplicateData", false); SCObjectAndRelationCollection relations = SCSnapshotAdapter.Instance.QueryRolesContainsUsers(schemaTypes, appCodeName, roleIDs, removeDuplicateData, false, DateTime.MinValue); if (includeMatrixUsers) { FillRoleMatrixRelations(relations, schemaTypes, roleIDs); } relations.FillDetails(); DataSet ds = new DataSet(); ds.Tables.Add(QueryHelper.GetOguTableBuilder(SchemaInfo.FilterByCategory("Users").ToSchemaNames()).Convert(relations)); return(ds); }
protected override void ValidateObjects() { WhereSqlClauseBuilder bd = new WhereSqlClauseBuilder(); bd.AppendItem("Status", (int)SchemaObjectStatus.Normal); InSqlClauseBuilder inB = new InSqlClauseBuilder("ObjectID"); inB.AppendItem(this.SourceKeys); InSqlClauseBuilder inC = new InSqlClauseBuilder("ParentSchemaType"); inC.AppendItem(SchemaInfo.FilterByCategory("Organizations").ToSchemaNames()); InSqlClauseBuilder inD = new InSqlClauseBuilder("Groups"); inC.AppendItem(SchemaInfo.FilterByCategory("Groups").ToSchemaNames()); this.relations = SchemaRelationObjectAdapter.Instance.Load(new ConnectiveSqlClauseCollection(bd, inB, inC, inD, VersionStrategyQuerySqlBuilder.Instance.TimePointToBuilder()), DateTime.MinValue); this.parents = DbUtil.LoadObjects(this.relations.ToParentIDArray()); base.ValidateObjects(); }
protected override void DoValidate(object objectToValidate, object currentObject, string key, ValidationResults validateResults) { string typeString = (string)objectToValidate; string messageTemplate = string.IsNullOrEmpty(this.MessageTemplate) ? "{0}包含无效或重复的的管理范围类别字符串:{1}" : this.MessageTemplate; string[] parts = typeString.Split(AUCommon.Spliter, StringSplitOptions.RemoveEmptyEntries); // 准备有效项的集合 HashSet <string> effected = new HashSet <string>(); HashSet <string> repeated = new HashSet <string>(); foreach (var item in SchemaInfo.FilterByCategory("AUScopeItems")) { effected.Add(item.Name); } // 检查有效项 foreach (var item in parts) { if (effected.Contains(item) == false) { this.RecordValidationResult(validateResults, string.Format(messageTemplate, AUCommon.DisplayNameFor((SchemaObjectBase)currentObject), item), currentObject, key); break; } if (repeated.Contains(item)) { this.RecordValidationResult(validateResults, string.Format(messageTemplate, AUCommon.DisplayNameFor((SchemaObjectBase)currentObject), item), currentObject, key); break; } else { repeated.Add(item); } } }
protected void ResetPass(object sender, EventArgs e) { var users = PC.Adapters.SchemaObjectAdapter.Instance.LoadByCodeNameAndSchema(SchemaInfo.FilterByCategory("Users").ToSchemaNames(), new string[] { this.userCodeName.Text }, true, false, DateTime.MinValue).FilterByStatus(SchemaObjectStatusFilterTypes.Normal); if (users.Count > 0) { var user = (PC.SCUser)users[0]; PC.Adapters.UserPasswordAdapter.Instance.SetPassword(user.ID, PC.Adapters.UserPasswordAdapter.GetPasswordType(), PC.Adapters.UserPasswordAdapter.GetDefaultPassword()); this.prompt.InnerText = user.DisplayName + "(" + user.CodeName + ")" + "已设置密码"; } else { this.prompt.InnerText = "未找到指定的人"; } }
protected void dataSourceMain_Selected(object sender, ObjectDataSourceStatusEventArgs e) { if (e.ReturnValue is DataView && Util.SuperVisiorMode == false) { var view = e.ReturnValue as DataView; string[] ids = new string[view.Count]; for (int i = 0; i < view.Count; i++) { ids[i] = view[i]["ID"].ToString(); } this.relations = ids.Length > 0 ? DbUtil.LoadCurrentParentRelations(ids, SchemaInfo.FilterByCategory("Organizations").ToSchemaNames()) : new SCRelationObjectCollection(); this.acls = this.relations.Count > 0 ? SCAclAdapter.Instance.LoadCurrentContainerAndPermissions(Util.CurrentUser.ID, this.relations.ToParentIDArray()) : new SCContainerAndPermissionCollection(); } }
protected override void OnPreRender(EventArgs e) { var parentIds = DbUtil.LoadCurrentParentRelations(new string[] { this.UserObject.ID }, SchemaInfo.FilterByCategory("Organizations").ToSchemaNames()).ToParentIDArray(); var containerPermissions = parentIds.Length > 0 ? SCAclAdapter.Instance.LoadCurrentContainerAndPermissions(Util.CurrentUser.ID, parentIds) : new SCContainerAndPermissionCollection(); bool enabled = false; for (int i = parentIds.Length - 1; i >= 0; i--) { enabled |= Util.ContainsPermission(containerPermissions, parentIds[i], "UpdateChildren"); } this.hasSelfRight = enabled; this.hfSelfID.Value = this.UserObject.ID; Util.ConfigToggleViewButton(this.views.ActiveViewIndex, this.lnkViewMode, this.lblViewMode); base.OnPreRender(e); }
protected override void OnBuildQueryCondition(QueryCondition qc) { qc.SelectFields = "U.*,ParentID='' "; qc.FromClause = TimePointContext.Current.UseCurrentTime ? "SC.SchemaUserSnapshot_Current U " : "SC.SchemaUserSnapshot U "; if (qc.OrderByClause.IsNullOrEmpty()) { qc.OrderByClause = "U.VersionStartTime DESC"; } if (this.fileterRole && this.parentPermissions != null) { var joinClause = TimePointContext.Current.UseCurrentTime ? @" INNER JOIN SC.SchemaRelationObjectsSnapshot_Current R ON R.ObjectID = U.ID INNER JOIN SC.Acl_Current AC ON AC.ContainerID = R.ParentID INNER JOIN SC.SchemaRoleSnapshot_Current RS ON RS.ID = AC.MemberID INNER JOIN SC.UserAndContainerSnapshot_Current UC ON RS.ID = UC.ContainerID " : @" INNER JOIN SC.SchemaRelationObjectsSnapshot R ON R.ObjectID = U.ID INNER JOIN SC.Acl AC ON AC.ContainerID = R.ParentID INNER JOIN SC.SchemaRoleSnapshot RS ON RS.ID = AC.MemberID INNER JOIN SC.UserAndContainerSnapshot UC ON RS.ID = UC.ContainerID "; qc.FromClause += joinClause; } qc.WhereClause.IsNotEmpty((s) => qc.WhereClause += " AND "); WhereSqlClauseBuilder builder = new WhereSqlClauseBuilder(); builder.AppendItem("U.Status", (int)SchemaObjectStatus.Normal); var timeCondition = VersionStrategyQuerySqlBuilder.Instance.TimePointToBuilder("U."); var allConditions = new ConnectiveSqlClauseCollection(builder, timeCondition); if (this.fileterRole && this.logonUserID != null && this.parentPermissions != null) { allConditions.Add(VersionStrategyQuerySqlBuilder.Instance.TimePointToBuilder("AC.")); allConditions.Add(VersionStrategyQuerySqlBuilder.Instance.TimePointToBuilder("RS.")); allConditions.Add(VersionStrategyQuerySqlBuilder.Instance.TimePointToBuilder("UC.")); builder.AppendItem("AC.Status", (int)SchemaObjectStatus.Normal); builder.AppendItem("RS.Status", (int)SchemaObjectStatus.Normal); builder.AppendItem("UC.Status", (int)SchemaObjectStatus.Normal); builder.AppendItem("UC.UserID", this.logonUserID); allConditions.Add(DataSourceUtil.SchemaTypeCondition("R.ParentSchemaType", SchemaInfo.FilterByCategory("Organizations").ToSchemaNames())); allConditions.Add(VersionStrategyQuerySqlBuilder.Instance.TimePointToBuilder("R.")); if (parentPermissions.Length > 0) { InSqlClauseBuilder inSql1 = new InSqlClauseBuilder("AC.ContainerPermission"); inSql1.AppendItem(this.parentPermissions); allConditions.Add(inSql1); } } if (this.excludeID != null) { builder.AppendItem("U.ID", this.excludeID, "<>"); } if (this.defaultOnly) { builder.AppendItem("R.IsDefault", 1); } if (this.dissociate) { var timeConditionIn = VersionStrategyQuerySqlBuilder.Instance.TimePointToBuilder("RR."); WhereSqlClauseBuilder innerWhere = new WhereSqlClauseBuilder(); innerWhere.AppendItem("RR.Status", (int)SchemaObjectStatus.Normal); InSqlClauseBuilder innerInParent = new InSqlClauseBuilder("RR.ParentSchemaType"); innerInParent.AppendItem(SchemaInfo.FilterByCategory("Organizations").ToSchemaNames()); allConditions.Add(new ExistExpressionBuilder(true, string.Format(@"SELECT TOP 1 1 FROM SC.SchemaRelationObjects RR WHERE RR.ObjectID = U.ID AND RR.ChildSchemaType = U.SchemaType AND {0}", new ConnectiveSqlClauseCollection(timeConditionIn, innerWhere, innerInParent).ToSqlString(TSqlBuilder.Instance)))); } qc.WhereClause += allConditions.ToSqlString(TSqlBuilder.Instance); }
public OguObjectCollection <IOguObject> QueryDescendants(IOrganization parent, string prefix, int maxCount) { return(this.QueryDescendants <IOguObject>(parent, prefix, maxCount, SchemaInfo.FilterByCategory("Users", "Groups", "Organizations").ToSchemaNames())); }
public IEnumerable <IOguObject> GetChildren(IOrganization parent) { SCObjectAndRelationCollection relations = SCSnapshotAdapter.Instance.QueryObjectAndRelationByParentIDs(SchemaInfo.FilterByCategory("Users", "Groups", "Organizations").ToSchemaNames(), new string[] { parent.ID }, false, true, false, DateTime.MinValue); relations.FillDetails(); var parentList = SCSnapshotAdapter.Instance.LoadAllParentsInfo(true, parent.ID)[parent.ID]; StringBuilder strB = new StringBuilder(parentList.Count * 15); for (int i = 0; i < parentList.Count; i++) { strB.Append(parentList[i].Name); strB.Append(""); } var parentPath = strB.ToString(); foreach (var item in relations) { OguBase ogu = (OguBase)item.Detail.ToPhantom(); ogu.FullPath = parentPath + ogu.Name; yield return(ogu); } }