/// <summary> /// 获取委托列表 /// </summary> /// <param name="permissionItemCode">操作权限编号</param> /// <param name="userId">用户主键</param> /// <returns>数据表</returns> public DataTable GetAuthorizeDT(string permissionItemCode, string userId = null) { if (userId == null) { userId = this.UserInfo.Id; } // 获取别人委托我的列表 string permissionItemId = string.Empty; BasePermissionItemManager permissionItemManager = new BasePermissionItemManager(this.UserInfo); permissionItemId = permissionItemManager.GetIdByCode(permissionItemCode); BasePermissionScopeManager permissionScopeManager = new BasePermissionScopeManager(this.UserInfo); string[] names = new string[] { BasePermissionScopeEntity.FieldDeletionStateCode , BasePermissionScopeEntity.FieldEnabled , BasePermissionScopeEntity.FieldResourceCategory , BasePermissionScopeEntity.FieldPermissionItemId , BasePermissionScopeEntity.FieldTargetCategory , BasePermissionScopeEntity.FieldTargetId }; Object[] values = new Object[] { 0, 1, BaseUserEntity.TableName, permissionItemId, BaseUserEntity.TableName, userId }; // 排除过期的,此方法有性能问题,已经放到后台的Sql中处理。 comment by zgl on 2011-10-27 //DataTable dt = permissionScopeManager.GetDataTable(names, values); //for (int i = 0; i < dt.Rows.Count; i++) //{ // if (!string.IsNullOrEmpty(dt.Rows[i][BasePermissionScopeEntity.FieldEndDate].ToString())) // { // // 过期的不显示 // if (DateTime.Parse(dt.Rows[i][BasePermissionScopeEntity.FieldEndDate].ToString()).Date < DateTime.Now.Date) // { // dt.Rows.RemoveAt(i); // // dt 行数会减少 // i--; // } // } //} //排除过期的,已经放到后台的Sql中处理。 DataTable dt = permissionScopeManager.GetAuthoriedList(BaseUserEntity.TableName, permissionItemId, BaseUserEntity.TableName, userId); string[] userIds = BaseBusinessLogic.FieldToArray(dt, BasePermissionScopeEntity.FieldResourceId); BaseUserManager userManager = new BaseUserManager(this.UserInfo); return(userManager.GetDataTable(userIds)); }
/// <summary> /// 判断用户是否有有相应的权限 /// </summary> /// <param name="userId">用户主键</param> /// <param name="permissionItemCode">权限编号</param> /// <returns>有权限</returns> public bool CheckPermission(string userId, string permissionItemCode) { BasePermissionItemManager permissionItemManager = new BasePermissionItemManager(DbHelper); string permissionItemId = permissionItemManager.GetIdByCode(permissionItemCode); // 没有找到相应的权限 if (String.IsNullOrEmpty(permissionItemId)) { return(false); } List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BasePermissionEntity.FieldResourceCategory, BaseUserEntity.TableName)); parameters.Add(new KeyValuePair <string, object>(BasePermissionEntity.FieldResourceId, userId)); parameters.Add(new KeyValuePair <string, object>(BasePermissionEntity.FieldEnabled, "1")); return(DbLogic.Exists(DbHelper, this.CurrentTableName, parameters)); }