/// <summary> /// 获得用户授权范围 /// </summary> /// <param name="staffId">员工主键</param> /// <returns>数据表</returns> public DataTable GetDataTableByUser(string userId, string permissionItemCode) { DataTable returnValue = new DataTable(this.CurrentTableName); List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >(); // 这里需要判断,是系统权限? bool isRole = false; BaseUserManager userManager = new BaseUserManager(this.DbHelper, this.UserInfo); // 用户管理员 isRole = userManager.IsInRoleByCode(userId, "UserAdmin"); if (isRole) { parameters.Add(new KeyValuePair <string, object>(BasePermissionItemEntity.FieldCategoryCode, "System")); parameters.Add(new KeyValuePair <string, object>(BasePermissionItemEntity.FieldEnabled, 1)); parameters.Add(new KeyValuePair <string, object>(BasePermissionItemEntity.FieldDeletionStateCode, 0)); returnValue = this.GetDataTable(parameters, BasePermissionItemEntity.FieldSortCode); returnValue.TableName = this.CurrentTableName; return(returnValue); } // 这里需要判断,是业务权限? isRole = userManager.IsInRoleByCode(userId, "Admin"); if (isRole) { parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BasePermissionItemEntity.FieldCategoryCode, "Application")); parameters.Add(new KeyValuePair <string, object>(BasePermissionItemEntity.FieldEnabled, 1)); parameters.Add(new KeyValuePair <string, object>(BasePermissionItemEntity.FieldDeletionStateCode, 0)); returnValue = this.GetDataTable(parameters, BasePermissionItemEntity.FieldSortCode); returnValue.TableName = this.CurrentTableName; return(returnValue); } BasePermissionScopeManager permissionScopeManager = new BasePermissionScopeManager(DbHelper, UserInfo); string[] permissionItemIds = permissionScopeManager.GetTreeResourceScopeIds(userId, BasePermissionItemEntity.TableName, permissionItemCode, true); // 有效的,未被删除的 parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BasePermissionItemEntity.FieldId, permissionItemIds)); parameters.Add(new KeyValuePair <string, object>(BasePermissionItemEntity.FieldEnabled, 1)); parameters.Add(new KeyValuePair <string, object>(BasePermissionItemEntity.FieldDeletionStateCode, 0)); returnValue = this.GetDataTable(parameters, BasePermissionItemEntity.FieldSortCode); returnValue.TableName = this.CurrentTableName; return(returnValue); }
/// <summary> /// 获得用户授权范围 /// </summary> /// <param name="staffId">员工主键</param> /// <returns>数据表</returns> public DataTable GetDataTableByUser(string userId, string permissionItemCode) { DataTable returnValue = new DataTable(this.CurrentTableName); List<KeyValuePair<string, object>> parameters = new List<KeyValuePair<string, object>>(); // 这里需要判断,是系统权限? bool isRole = false; BaseUserManager userManager = new BaseUserManager(this.DbHelper, this.UserInfo); // 用户管理员 isRole = userManager.IsInRoleByCode(userId, "UserAdmin"); if (isRole) { parameters.Add(new KeyValuePair<string, object>(BasePermissionItemEntity.FieldCategoryCode, "System")); parameters.Add(new KeyValuePair<string, object>(BasePermissionItemEntity.FieldEnabled, 1)); parameters.Add(new KeyValuePair<string, object>(BasePermissionItemEntity.FieldDeletionStateCode, 0)); returnValue = this.GetDataTable(parameters, BasePermissionItemEntity.FieldSortCode); returnValue.TableName = this.CurrentTableName; return returnValue; } // 这里需要判断,是业务权限? isRole = userManager.IsInRoleByCode(userId, "Admin"); if (isRole) { parameters = new List<KeyValuePair<string, object>>(); parameters.Add(new KeyValuePair<string, object>(BasePermissionItemEntity.FieldCategoryCode, "Application")); parameters.Add(new KeyValuePair<string, object>(BasePermissionItemEntity.FieldEnabled, 1)); parameters.Add(new KeyValuePair<string, object>(BasePermissionItemEntity.FieldDeletionStateCode, 0)); returnValue = this.GetDataTable(parameters, BasePermissionItemEntity.FieldSortCode); returnValue.TableName = this.CurrentTableName; return returnValue; } BasePermissionScopeManager permissionScopeManager = new BasePermissionScopeManager(DbHelper, UserInfo); string[] permissionItemIds = permissionScopeManager.GetTreeResourceScopeIds(userId, BasePermissionItemEntity.TableName, permissionItemCode, true); // 有效的,未被删除的 parameters = new List<KeyValuePair<string, object>>(); parameters.Add(new KeyValuePair<string, object>(BasePermissionItemEntity.FieldId, permissionItemIds)); parameters.Add(new KeyValuePair<string, object>(BasePermissionItemEntity.FieldEnabled, 1)); parameters.Add(new KeyValuePair<string, object>(BasePermissionItemEntity.FieldDeletionStateCode, 0)); returnValue = this.GetDataTable(parameters, BasePermissionItemEntity.FieldSortCode); returnValue.TableName = this.CurrentTableName; return returnValue; }
/// <summary> /// 60.获取用户的某个资源的权限范围(树型资源) /// </summary> /// <param name="userInfo">用户</param> /// <param name="userId">用户主键</param> /// <param name="targetCategory">目标类别</param> /// <param name="permissionItemCode">权限编号</param> /// <param name="childrens">是否含子节点</param> /// <returns>主键数组</returns> public string[] GetTreeResourceScopeIds(BaseUserInfo userInfo, string userId, string targetCategory, string permissionItemCode, bool childrens) { // 写入调试信息 #if (DEBUG) int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod()); #endif // 加强安全验证防止未授权匿名调用 #if (!DEBUG) LogOnService.UserIsLogOn(userInfo); #endif string[] returnValue = null; using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType)) { try { dbHelper.Open(UserCenterDbConnection); string tableName = BasePermissionScopeEntity.TableName; if (!string.IsNullOrEmpty(BaseSystemInfo.SystemCode)) { tableName = BaseSystemInfo.SystemCode + "PermissionScope"; } BasePermissionScopeManager permissionScopeManager = new BasePermissionScopeManager(dbHelper, userInfo, tableName); returnValue = permissionScopeManager.GetTreeResourceScopeIds(userId, targetCategory, permissionItemCode, childrens); BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.PermissionService_GetTreeResourceScopeIds, MethodBase.GetCurrentMethod()); } catch (Exception ex) { BaseExceptionManager.LogException(dbHelper, userInfo, ex); throw ex; } finally { dbHelper.Close(); } } // 写入调试信息 #if (DEBUG) BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart); #endif return returnValue; }