public static DataTable GetGroupInstancesRoles(Guid groupId) { Guid organizationId = UserContext.Current.OrganizationId; ClientDataSet.GroupsInstancesRolesDataTable table = null; using (GroupsInstancesRolesTableAdapter adapter = new GroupsInstancesRolesTableAdapter(OrganizationProvider.GetConnectionString(organizationId))) { table = adapter.GetGroupsInstancesRolesByGroupId(organizationId, groupId); } table.Columns.Add("RoleName", typeof(string)); Instance firstInstance = InstanceProvider.GetFirstInstance(organizationId); foreach (ClientDataSet.GroupsInstancesRolesRow row in table) { Guid roleId = row.RoleId; if (!FrameworkConfiguration.Current.WebApplication.EnableMultipleInstances) { if ((roleId == RoleProvider.InstanceAdministratorRoleId) || ((firstInstance != null) && (row.InstanceId != firstInstance.InstanceId))) { continue; } } ConfigurationDataSet.RoleRow roleRow = RoleProvider.GetRoleRow(roleId); if (roleRow != null) { row["RoleName"] = roleRow.Name; } } return(table); }
public static DataTable GetGroupsInstancesRoles(List <Guid> groupIds) { if (groupIds == null) { return(null); } DataTable table = null; try { Guid organizationId = UserContext.Current.OrganizationId; Instance firstInstance = InstanceProvider.GetFirstInstance(organizationId); ClientDataSet.GroupsInstancesRolesDataTable girTable = GetGroupsInstancesRolesByGroups(organizationId, groupIds); table = girTable.DefaultView.ToTable(true, "GroupId", "Name"); table.Columns.Add("ParentGroupId", typeof(Guid)); table.Columns.Add("InstancesRoles", typeof(string)); foreach (DataRow row in table.Rows) { StringBuilder sb = new StringBuilder(); foreach (ClientDataSet.GroupsInstancesRolesRow gdrRow in girTable.Select(string.Format(CultureInfo.InvariantCulture, "{0} = '{1}'", girTable.GroupIdColumn.ColumnName, row["GroupId"]))) { Guid roleId = gdrRow.RoleId; if (!FrameworkConfiguration.Current.WebApplication.EnableMultipleInstances) { if ((roleId == RoleProvider.InstanceAdministratorRoleId) || ((firstInstance != null) && (gdrRow.InstanceId != firstInstance.InstanceId))) { continue; } } ConfigurationDataSet.RoleRow roleRow = RoleProvider.GetRoleRow(roleId); if (roleRow != null) { sb.AppendFormat(CultureInfo.InvariantCulture, ",{0} | {1}", gdrRow["InstanceName"], roleRow.Name); } } if (sb.Length > 0) { sb.Remove(0, 1); row["InstancesRoles"] = sb.ToString(); } } return(table); } finally { if (table != null) { table.Dispose(); } } }
protected void EntityDataSource_Inserting(object sender, ObjectDataSourceMethodEventArgs e) { if (e != null) { if (!FrameworkConfiguration.Current.WebApplication.EnableMultipleInstances) { Instance inst = InstanceProvider.GetFirstInstance(UserContext.Current.OrganizationId); if (inst != null) { e.InputParameters["instanceId"] = inst.InstanceId; } } } }
public static DataTable GetGroups() { Guid organizationId = UserContext.Current.OrganizationId; if (FrameworkConfiguration.Current.WebApplication.EnableMultipleInstances) { return(GetGroups(organizationId)); } else { ClientDataSet.GroupDataTable table = GetGroups(organizationId); Instance firstInstance = InstanceProvider.GetFirstInstance(organizationId); if (firstInstance != null) { ArrayList list = new ArrayList(); ClientDataSet.GroupsInstancesRolesDataTable girTable = null; using (GroupsInstancesRolesTableAdapter adapter = new GroupsInstancesRolesTableAdapter(OrganizationProvider.GetConnectionString(organizationId))) { girTable = adapter.GetGroupsInstancesRolesByInstanceId(organizationId, firstInstance.InstanceId); } foreach (ClientDataSet.GroupsInstancesRolesRow girRow in girTable) { if (girRow.RoleId == RoleProvider.InstanceAdministratorRoleId) { if (!list.Contains(girRow.GroupId)) { list.Add(girRow.GroupId); } } } foreach (Guid groupId in list) { ClientDataSet.GroupRow row = table.FindByGroupId(groupId); if (row != null) { table.RemoveGroupRow(row); } } table.AcceptChanges(); } return(table); } }
protected void SubmitButton_Click(object sender, EventArgs e) { object obj = null; ArrayList list = null; Guid organizationId = UserContext.Current.OrganizationId; if (GroupListRow.Visible) { list = GroupIdArrayList; } else if (UserListRow.Visible) { obj = Support.ConvertStringToType(UserList.SelectedValue, typeof(Guid)); list = UserProvider.GetUserGroupIdList(organizationId, ((obj == null) ? Guid.Empty : (Guid)obj)); } Settings.GroupIdList.Clear(); if (list != null) { Settings.GroupIdList.AddRange(list); } if (FrameworkConfiguration.Current.WebApplication.EnableMultipleInstances) { obj = Support.ConvertStringToType(InstanceList.SelectedValue, typeof(Guid)); Settings.InstanceId = ((obj == null) ? Guid.Empty : (Guid)obj); } else { Instance firstInstance = InstanceProvider.GetFirstInstance(organizationId); if (firstInstance != null) { Settings.InstanceId = firstInstance.InstanceId; } } Settings.Visible = true; Settings.DataBind(); }
public object CreateOrg(string name, string url, string email, string firstname, string lastname, string password, string password_confirm, string how, string note , string external_id, bool sendHubSpot , bool is_force_registration, bool is_force_redirect) { bool isSalesforceProviderRequest = false; if (!string.IsNullOrEmpty(how)) { isSalesforceProviderRequest = (how.IndexOf("Salesforce", StringComparison.OrdinalIgnoreCase) > -1); } //validation if (string.IsNullOrWhiteSpace(name)) { return(new HttpResult("Name is required.", HttpStatusCode.Forbidden)); } if (!Utils.IsValidEmail(email)) { return(new HttpResult("Email is required.", HttpStatusCode.Forbidden)); } /*if (OrganizationProvider.GetOrganizationIdByName(name) != Guid.Empty) * { * return new HttpResult("Name is already exists.", HttpStatusCode.Forbidden); * } */ if (!string.IsNullOrWhiteSpace(url)) { if (url.Length < 3 || url.Length > 20) { return(new HttpResult("Url should be between 3 and 20 characters and can contains alphanumeric characters and hyphens", HttpStatusCode.Forbidden)); } if (!CustomUrlProvider.ValidateCustomUrl(url)) { return(new HttpResult("Url: " + url + " is already exists.", HttpStatusCode.Forbidden)); } } else { url = null; } bool isAlreadyRegistered = false; LoginProvider lp = new LoginProvider(); if (isSalesforceProviderRequest) { if (!string.IsNullOrEmpty(external_id)) { if (SalesforceSettingProvider.ExternalOrganizationIdExists(external_id)) { return(new HttpResult("The organization is already registered.", HttpStatusCode.Conflict)); } } } else { isAlreadyRegistered = lp.ValidateLogin(email, null); if (isAlreadyRegistered && !is_force_registration) { return(new HttpResult("User already have one registered organization. Please login OR set is_force_registration=true to continue.", HttpStatusCode.Conflict)); } } if (string.IsNullOrWhiteSpace(firstname)) { firstname = "Organization"; } if (string.IsNullOrWhiteSpace(lastname)) { lastname = "Administrator"; } //if (string.IsNullOrWhiteSpace(lastname)) // return new HttpResult("LastName is required.", HttpStatusCode.Forbidden); //if (string.IsNullOrWhiteSpace(password)) // return new HttpResult("Password is required.", HttpStatusCode.Forbidden); if (!string.IsNullOrWhiteSpace(password)) { if (!Utils.IsValidPassword(password)) { return(new HttpResult("Password is too weak. It must be at least 5 characters.", HttpStatusCode.Forbidden)); } if (!password.Equals(password_confirm)) { return(new HttpResult("Passwords not match.", HttpStatusCode.Forbidden)); } } else { password = password_confirm = null; } /* * Future * * string ip = base.RequestContext.Get<IHttpRequest>().UserHostAddress; * if (!Micajah.Common.Bll.Support.ValidateInviteToken(invite_code, ip)) * { * throw new HttpError(HttpStatusCode.Forbidden, "Invite code is not correct or expired. Please get new one."); * } */ Guid organizationId = Guid.Empty; Micajah.Common.Bll.Instance inst = null; if (!isAlreadyRegistered || is_force_registration) { Micajah.Common.Bll.Instance templateInstance = null; Micajah.Common.Bll.InstanceCollection insts = InstanceProvider.GetTemplateInstances(); if (insts.Count == 0) { return(new HttpResult("No Active Template Instances", HttpStatusCode.NotFound)); } else { templateInstance = insts[0]; } string howYouHearAboutUs = how; NameValueCollection parameters = new NameValueCollection(); if (isSalesforceProviderRequest) { if (!string.IsNullOrEmpty(external_id)) { SalesforceSettingProvider.AddExternalOrganizationId(external_id, parameters); } } organizationId = OrganizationProvider.InsertOrganization(name, null, null , null, null, null, null, null, null, string.Empty, howYouHearAboutUs, note , templateInstance.TimeZoneId, templateInstance.InstanceId , email, password, firstname, lastname, null, null, null , url, parameters , true, true, sendHubSpot); inst = InstanceProvider.GetFirstInstance(organizationId); } if (!is_force_redirect) { string api_token = LoginTokenProvider.GetApiToken(email); ApiUser hdUser = new ApiUser(api_token); if (string.IsNullOrWhiteSpace(api_token)) { return(new HttpResult("User is not correct or inactive.", HttpStatusCode.Forbidden)); } return(new HttpResult(GetOrganizations(api_token, inst.PseudoId), organizationId != Guid.Empty ? HttpStatusCode.Created : HttpStatusCode.Found)); } //return new HttpResult(HttpStatusCode.OK, "Already registered"); url = lp.GetLoginUrl(email, true, organizationId, inst.InstanceId, null); //added redirect url = url.Replace("mc/login.aspx?", "login/?ReturnUrl=%2Fhome%2Fdefault.aspx%3Ffx%3Demlstp%26org%3D" + organizationId.ToString("N") + "&"); //Headers ["Location"] = url; return("{\"url\" : \"" + url + "\"}"); }
private void CreateNewOrganization() { if (string.Compare((string)Session["NewOrg"], "1", StringComparison.OrdinalIgnoreCase) == 0) { string url = null; UserContext user = UserContext.Current; if (user != null) { if (string.Compare(user.Email, Email.Text, StringComparison.OrdinalIgnoreCase) == 0) { url = LoginProvider.Current.GetLoginUrl(user.Email, true, user.OrganizationId, user.InstanceId, null); Response.Redirect(url); } } url = LoginProvider.Current.GetLoginUrl(); Response.Redirect(url); } else { Instance templateInstance = null; InstanceCollection insts = Micajah.Common.Bll.Providers.InstanceProvider.GetTemplateInstances(); if (insts.Count == 0) { throw new NotImplementedException(Resources.SignupOrganizationControl_NoActiveTemplateInstances); } else { templateInstance = insts[0]; } string howYouHearAboutUs = null; bool isGoogleProviderRequest = GoogleProvider.IsGoogleProviderRequest(this.Request); if (isGoogleProviderRequest) { howYouHearAboutUs = Resources.SignupOrganizationControl_HowYouHearAboutUs_Text; } Guid orgId = OrganizationProvider.InsertOrganization(OrganizationName.Text, null, null , null, null, null, null, null, null, string.Empty, howYouHearAboutUs , templateInstance.TimeZoneId, templateInstance.InstanceId , Email.Text, null, this.UserFirstName, this.UserLastName, null, null, null , OrganizationUrl.Text, this.Request , true); Session["NewOrg"] = "1"; Instance inst = InstanceProvider.GetFirstInstance(orgId); if (isGoogleProviderRequest) { string returnUrl = null; OAuth2Parameters parameters = JsonConvert.DeserializeObject <OAuth2Parameters>(this.OAuth2Parameters); GoogleProvider.ProcessAuthorization(this.Context, ref parameters, ref returnUrl); } string url = LoginProvider.Current.GetLoginUrl(Email.Text, true, orgId, inst.InstanceId, null); Response.Redirect(url); } }