/// <summary> /// Validate the organization access of users according to the role. /// </summary> /// <param name="_ds"></param> /// <returns></returns> private List <int> validateUsers(DataSet _ds) { List <int> users = new List <int>(); MRole role = new MRole(GetCtx(), Util.GetValueOfInt(_ds.Tables[0].Rows[0]["AD_Role_ID"]), null); bool isAllUser = false; // if access all organization if (role.IsAccessAllOrgs()) { isAllUser = true; } // if not access user organization access. if (!isAllUser && !role.IsUseUserOrgAccess()) { if (Util.GetValueOfInt(DB.ExecuteScalar("SELECT COUNT(AD_Org_ID) FROm AD_Role_OrgAccess WHERE IsActive='Y' AND AD_Role_ID=" + role.GetAD_Role_ID() + " AND AD_Org_ID IN (" + _req.GetAD_Org_ID() + ",0)")) > 0) { isAllUser = true; } else { return(users); } } for (int i = 0; i < _ds.Tables[0].Rows.Count; i++) { if (isAllUser) { users.Add(Util.GetValueOfInt(_ds.Tables[0].Rows[i]["AD_User_ID"])); } else { if (Util.GetValueOfInt(DB.ExecuteScalar("SELECT COUNT(AD_Org_ID) FROm AD_User_OrgAccess WHERE AD_User_ID=" + Util.GetValueOfInt(_ds.Tables[0].Rows[i]["AD_User_ID"]) + " AND IsActive='Y' AND AD_Org_ID IN (" + _req.GetAD_Org_ID() + ",0)")) > 0) { users.Add(Util.GetValueOfInt(_ds.Tables[0].Rows[i]["AD_User_ID"])); } } } return(users); }