Ejemplo n.º 1
0
        /// <summary>
        /// 设置用户的某个权限域的组织范围
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="userId">用户主键</param>
        /// <param name="grantOrganizeIds">授予的组织主键数组</param>
        /// <param name="permissionCode">权限编号</param>
        /// <returns>影响的行数</returns>
        public int GrantUserOrganizeScopes(BaseUserInfo userInfo, string userId, string[] grantOrganizeIds, string permissionCode)
        {
            int result = 0;

            var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod());

            ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) =>
            {
                string tableName = userInfo.SystemCode + "PermissionScope";
                var manager      = new BaseUserScopeManager(dbHelper, userInfo, tableName);
                // 小心异常,检查一下参数的有效性
                if (grantOrganizeIds == null)
                {
                    result += manager.RevokeOrganize(userInfo.SystemCode, userId, permissionCode);
                }
                else
                {
                    result += manager.GrantOrganizes(userInfo.SystemCode, userId, grantOrganizeIds, permissionCode);
                }
            });
            return(result);
        }