protected void InitForOpportunity() { StartImportLabel = CRMDealResource.StartImport; ImportFromCSVStepOneHeaderLabel = CRMDealResource.ImportFromCSVStepOneHeader; ImportFromCSVStepTwoHeaderLabel = CRMDealResource.ImportFromCSVStepTwoHeader; ImportFromCSVStepOneDescriptionLabel = CRMDealResource.ImportFromCSVStepOneDescription; ImportFromCSVStepTwoDescriptionLabel = CRMDealResource.ImportFromCSVStepTwoDescription; // // ImportFromCSVStepTwoDescription ImportStartingPanelHeaderLabel = CRMDealResource.ImportStartingPanelHeader; ImportStartingPanelDescriptionLabel = CRMDealResource.ImportStartingPanelDescription; ImportStartingPanelButtonLabel = CRMDealResource.ImportStartingPanelButton; ImportImgSrc = WebImageSupplier.GetAbsoluteWebPath("import-opportunities.png", ProductEntryPoint.ID); Page.RegisterClientScript(new Masters.ClientScripts.ImportFromCSVViewDataDeals()); var privatePanel = (PrivatePanel)Page.LoadControl(PrivatePanel.Location); privatePanel.CheckBoxLabel = CRMDealResource.PrivatePanelCheckBoxLabel; privatePanel.IsPrivateItem = false; var usersWhoHasAccess = new List <string> { CustomNamingPeople.Substitute <CRMCommonResource>("CurrentUser") }; privatePanel.UsersWhoHasAccess = usersWhoHasAccess; privatePanel.DisabledUsers = new List <Guid> { SecurityContext.CurrentAccount.ID }; privatePanel.HideNotifyPanel = true; _phPrivatePanel.Controls.Add(privatePanel); }
protected string RenderEditDelete() { var sb = new StringBuilder(); if (UserInfo.Status == EmployeeStatus.Terminated && _allowDelete) { sb.AppendFormat("<a href=\"javascript:void(0);\" title=\"{2}\" class=\"linkAction" + (SetupInfo.WorkMode == WorkMode.Promo ? " promoAction" : "") + "\" onclick=\"AuthManager.DisableUser('{1}',false);\" >{0}</a>" , Resources.Resource.EnableUserButton, UserInfo.ID, CustomNamingPeople.Substitute <Resources.Resource>("EnableUserHelp").HtmlEncode()); sb.Append("<span class='splitter'>|</span>"); sb.AppendFormat("<a href=\"javascript:void(0);\" onclick=\"AuthManager.RemoveUser('{1}', '{2}');\"; class=\"linkAction" + (SetupInfo.WorkMode == WorkMode.Promo ? " promoAction" : "") + "\" >{0}</a> ", Resources.Resource.DeleteButton, UserInfo.ID, UserInfo.DisplayUserName().ReplaceSingleQuote()); } else { if (_allowEdit) { sb.AppendFormat("<a href=\"javascript:void(0);\" class=\"linkAction" + (SetupInfo.WorkMode == WorkMode.Promo ? " promoAction" : "") + "\" onclick=\"StudioUserMaker.ShowEditUserDialog('{1}',function(ok){{if(ok.Action!='cancel') window.location.reload(true)}});\" >{0}</a>" , Resources.Resource.EditButton, UserInfo.ID); } if (_allowEdit && _allowChangePwd) { sb.Append("<span class='splitter'>|</span>"); sb.AppendFormat("<a href=\"javascript:void(0);\" class=\"linkAction" + (SetupInfo.WorkMode == WorkMode.Promo ? " promoAction" : "") + "\" onclick=\"AuthManager.ShowPwdReminderDialog('1','" + UserInfo.Email + "');\" >{0}</a>" , Resources.Resource.ChangePwd); } if ((_allowDelete && _allowEdit) || (_allowDelete && _allowChangePwd)) { sb.Append("<span class='splitter'>|</span>"); sb.AppendFormat("<a href=\"javascript:void(0);\" title=\"{2}\" class=\"linkAction" + (SetupInfo.WorkMode == WorkMode.Promo ? " promoAction" : "") + "\" onclick=\"AuthManager.DisableUser('{1}',true);\" >{0}</a>" , Resources.Resource.DisableUserButton, UserInfo.ID, CustomNamingPeople.Substitute <Resources.Resource>("DisableUserHelp").HtmlEncode()); } if (_allowEdit && UserHasAvatar && !ASC.Web.Core.Mobile.MobileDetector.IsRequestMatchesMobile(Context)) { sb.Append("<span class='splitter'>|</span>"); sb.AppendFormat(@"<a onclick='UserPhotoThumbnail.ShowDialog();' href='javascript:void(0);' class='linkAction{0}'>{1}</a>", SetupInfo.WorkMode == WorkMode.Promo ? " promoAction" : string.Empty, Resources.Resource.EditThumbnailPhoto); } } return(sb.ToString()); }
public AjaxResponse SendJoinInviteMail(string email) { email = (email ?? "").Trim(); var resp = new AjaxResponse { rs1 = "0" }; try { if (String.IsNullOrEmpty(email)) { resp.rs2 = Resource.ErrorNotCorrectEmail; return(resp); } if (!email.TestEmailRegex()) { resp.rs2 = Resource.ErrorNotCorrectEmail; } var user = CoreContext.UserManager.GetUserByEmail(email); if (!user.ID.Equals(ASC.Core.Users.Constants.LostUser.ID)) { resp.rs1 = "0"; resp.rs2 = CustomNamingPeople.Substitute <Resource>("ErrorEmailAlreadyExists").HtmlEncode(); return(resp); } var tenant = CoreContext.TenantManager.GetCurrentTenant(); if (tenant != null) { var settings = SettingsManager.Instance.LoadSettings <IPRestrictionsSettings>(tenant.TenantId); if (settings.Enable && !IPSecurity.IPSecurity.Verify(tenant)) { resp.rs2 = Resource.ErrorAccessRestricted; return(resp); } } var trustedDomainSettings = SettingsManager.Instance.LoadSettings <StudioTrustedDomainSettings>(TenantProvider.CurrentTenantID); var emplType = trustedDomainSettings.InviteUsersAsVisitors ? EmployeeType.Visitor : EmployeeType.User; var enableInviteUsers = TenantStatisticsProvider.GetUsersCount() < TenantExtra.GetTenantQuota().ActiveUsers; if (!enableInviteUsers) { emplType = EmployeeType.Visitor; } switch (tenant.TrustedDomainsType) { case TenantTrustedDomainsType.Custom: { var address = new MailAddress(email); if (tenant.TrustedDomains.Any(d => address.Address.EndsWith("@" + d, StringComparison.InvariantCultureIgnoreCase))) { StudioNotifyService.Instance.InviteUsers(email, "", true, emplType); MessageService.Send(HttpContext.Current.Request, MessageInitiator.System, MessageAction.SentInviteInstructions, email); resp.rs1 = "1"; resp.rs2 = Resource.FinishInviteJoinEmailMessage; return(resp); } else { resp.rs2 = Resource.ErrorEmailDomainNotAllowed; } } break; case TenantTrustedDomainsType.All: StudioNotifyService.Instance.InviteUsers(email, "", true, emplType); MessageService.Send(HttpContext.Current.Request, MessageInitiator.System, MessageAction.SentInviteInstructions, email); resp.rs1 = "1"; resp.rs2 = Resource.FinishInviteJoinEmailMessage; return(resp); default: resp.rs2 = Resource.ErrorNotCorrectEmail; break; } } catch (FormatException) { resp.rs2 = Resource.ErrorNotCorrectEmail; } catch (Exception e) { resp.rs2 = HttpUtility.HtmlEncode(e.Message); } return(resp); }
public AjaxResponse SendEmailActivationInstructionsOnChange(string newEmail, string queryString) { const string StatusSuccess = "success"; const string StatusError = "error"; const string StatusFatalError = "fatalerror"; var response = new AjaxResponse { status = StatusSuccess }; if (String.IsNullOrEmpty(queryString)) { response.status = StatusFatalError; response.message = Resource.ErrorConfirmURLError; return(response); } if (String.IsNullOrEmpty(newEmail)) { response.status = StatusError; response.message = Resource.ErrorEmailEmpty; return(response); } try { var result = CheckValidationKey(queryString.Substring(1)); if (result != EmailValidationKeyProvider.ValidationResult.Ok) { response.status = StatusFatalError; switch (result) { case EmailValidationKeyProvider.ValidationResult.Invalid: response.message = Resource.ErrorInvalidActivationLink; break; case EmailValidationKeyProvider.ValidationResult.Expired: response.message = Resource.ErrorExpiredActivationLink; break; default: response.message = Resource.ErrorConfirmURLError; break; } return(response); } var user = CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID); if (user == null) { response.status = StatusFatalError; response.message = Resource.ErrorUserNotFound; return(response); } var existentUser = CoreContext.UserManager.GetUserByEmail(newEmail); if (existentUser != null && existentUser.ID == user.ID) { response.status = StatusError; response.message = Resource.ErrorEmailsAreTheSame; return(response); } if (existentUser != null && existentUser.ID != Constants.LostUser.ID) { response.status = StatusError; response.message = CustomNamingPeople.Substitute <Resource>("ErrorEmailAlreadyExists"); return(response); } user.Email = newEmail; user.ActivationStatus = EmployeeActivationStatus.NotActivated; CoreContext.UserManager.SaveUserInfo(user); StudioNotifyService.Instance.SendEmailActivationInstructions(user, newEmail); MessageService.Send(HttpContext.Current.Request, MessageAction.UserSentActivationInstructions, user.DisplayUserName(false)); response.message = String.Format(Resource.MessageEmailActivationInstuctionsSentOnEmail, "<b>" + newEmail + "</b>"); return(response); } catch (Exception) { response.status = StatusFatalError; response.message = Resource.UnknownError; return(response); } }
protected void InitForOpportunity() { StartImportLabel = CRMDealResource.StartImport; ImportFromCSVStepOneHeaderLabel = CRMDealResource.ImportFromCSVStepOneHeader; ImportFromCSVStepTwoHeaderLabel = CRMDealResource.ImportFromCSVStepTwoHeader; ImportFromCSVStepOneDescriptionLabel = CRMDealResource.ImportFromCSVStepOneDescription; ImportFromCSVStepTwoDescriptionLabel = CRMDealResource.ImportFromCSVStepTwoDescription; // // ImportFromCSVStepTwoDescription ImportStartingPanelHeaderLabel = CRMDealResource.ImportStartingPanelHeader; ImportStartingPanelDescriptionLabel = CRMDealResource.ImportStartingPanelDescription; ImportStartingPanelButtonLabel = CRMDealResource.ImportStartingPanelButton; ImportImgSrc = WebImageSupplier.GetAbsoluteWebPath("import-opportunities.png", ProductEntryPoint.ID); var columnSelectorData = new[] { new { name = String.Empty, title = CRMContactResource.NoMatchSelect, isHeader = false }, new { name = "-1", title = CRMContactResource.DoNotImportThisField, isHeader = false }, new { name = String.Empty, title = CRMContactResource.GeneralInformation, isHeader = true }, new { name = "title", title = CRMDealResource.NameDeal, isHeader = false }, new { name = "client", title = CRMDealResource.ClientDeal, isHeader = false }, new { name = "description", title = CRMDealResource.DescriptionDeal, isHeader = false }, new { name = "bid_currency", title = CRMCommonResource.Currency, isHeader = false }, new { name = "bid_amount", title = CRMDealResource.DealAmount, isHeader = false }, new { name = "bid_type", title = CRMDealResource.BidType, isHeader = false }, new { name = "per_period_value", title = CRMDealResource.BidTypePeriod, isHeader = false }, new { name = "responsible", title = CRMDealResource.ResponsibleDeal, isHeader = false }, new { name = "expected_close_date", title = CRMJSResource.ExpectedCloseDate, isHeader = false }, new { name = "actual_close_date", title = CRMJSResource.ActualCloseDate, isHeader = false }, new { name = "deal_milestone", title = CRMDealResource.CurrentDealMilestone, isHeader = false }, new { name = "probability_of_winning", title = CRMDealResource.ProbabilityOfWinning + " %", isHeader = false } }.ToList(); columnSelectorData.AddRange(Global.DaoFactory.GetCustomFieldDao().GetFieldsDescription(EntityType.Opportunity).FindAll(customField => customField.FieldType == CustomFieldType.Date || customField.FieldType == CustomFieldType.TextField || customField.FieldType == CustomFieldType.TextArea || customField.FieldType == CustomFieldType.Heading) .ConvertAll(customField => new { name = "customField_" + customField.ID, title = customField.Label.HtmlEncode(), isHeader = customField.FieldType == CustomFieldType.Heading })); columnSelectorData.AddRange( new[] { new { name = String.Empty, title = CRMDealResource.DealParticipants, isHeader = true }, new { name = "member", title = String.Format("{0} {1}", CRMDealResource.DealParticipant, 1), isHeader = false }, new { name = "member", title = String.Format("{0} {1}", CRMDealResource.DealParticipant, 2), isHeader = false }, new { name = "member", title = String.Format("{0} {1}", CRMDealResource.DealParticipant, 3), isHeader = false }, new { name = "member", title = String.Format("{0} {1}", CRMDealResource.DealParticipant, 4), isHeader = false }, new { name = "member", title = String.Format("{0} {1}", CRMDealResource.DealParticipant, 5), isHeader = false }, new { name = "member", title = String.Format("{0} {1}", CRMDealResource.DealParticipant, 6), isHeader = false }, new { name = "member", title = String.Format("{0} {1}", CRMDealResource.DealParticipant, 7), isHeader = false }, new { name = "member", title = String.Format("{0} {1}", CRMDealResource.DealParticipant, 8), isHeader = false }, new { name = "member", title = String.Format("{0} {1}", CRMDealResource.DealParticipant, 9), isHeader = false }, new { name = "member", title = String.Format("{0} {1}", CRMDealResource.DealParticipant, 10), isHeader = false } }); columnSelectorData.AddRange( new[] { new { name = String.Empty, title = CRMDealResource.DealTags, isHeader = true }, new { name = "tag", title = CRMDealResource.DealTagList, isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMDealResource.DealTag, 1), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMDealResource.DealTag, 2), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMDealResource.DealTag, 3), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMDealResource.DealTag, 4), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMDealResource.DealTag, 5), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMDealResource.DealTag, 6), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMDealResource.DealTag, 7), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMDealResource.DealTag, 8), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMDealResource.DealTag, 9), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMDealResource.DealTag, 10), isHeader = false }, } ); Page.RegisterInlineScript(String.Format(" var columnSelectorData = {0}; ", JavaScriptSerializer.Serialize(columnSelectorData)), onReady: false); var privatePanel = (PrivatePanel)Page.LoadControl(PrivatePanel.Location); privatePanel.CheckBoxLabel = CRMDealResource.PrivatePanelCheckBoxLabel; privatePanel.IsPrivateItem = false; var usersWhoHasAccess = new List <string> { CustomNamingPeople.Substitute <CRMCommonResource>("CurrentUser") }; privatePanel.UsersWhoHasAccess = usersWhoHasAccess; privatePanel.DisabledUsers = new List <Guid> { SecurityContext.CurrentAccount.ID }; privatePanel.HideNotifyPanel = true; _phPrivatePanel.Controls.Add(privatePanel); }
public void RunJob() { Status = (int)Operation.Success; CoreContext.TenantManager.SetCurrentTenant((int)Id); SecurityContext.AuthenticateMe(UserId); if (!SecurityContext.CheckPermissions(Constants.Action_AddRemoveUser)) { Error = Resource.ErrorAccessDenied; IsCompleted = true; return; } try { var jsSerializer = new System.Web.Script.Serialization.JavaScriptSerializer(); var ruleObj = jsSerializer.Deserialize <List <UserData> >(userList); var error = 0; var percentStep = 100.0 / ruleObj.Count; foreach (var userData in ruleObj) { var validateEmail = UserManagerWrapper.ValidateEmail(userData.Email); if (!validateEmail || String.IsNullOrEmpty(userData.FirstName) || String.IsNullOrEmpty(userData.LastName)) { Data.Add(new UserResults { Email = userData.Email, Result = Resource.ImportContactsIncorrectFields, Class = !validateEmail ? "error3" : "error1" }); error++; Percentage += percentStep; continue; } var us = CoreContext.UserManager.GetUserByEmail(userData.Email); if (us.ID != Constants.LostUser.ID) { Data.Add(new UserResults { Email = userData.Email, Result = CustomNamingPeople.Substitute <Resource>("ImportContactsAlreadyExists"), Class = "error2" }); error++; Percentage += percentStep; continue; } if (!importUsersAsCollaborators && TenantStatisticsProvider.GetUsersCount() >= TenantExtra.GetTenantQuota().ActiveUsers) { importUsersAsCollaborators = true; } var userInfo = new UserInfo { Email = userData.Email, FirstName = userData.FirstName, LastName = userData.LastName }; UserManagerWrapper.AddUser(userInfo, UserManagerWrapper.GeneratePassword(), false, true, importUsersAsCollaborators); var messageAction = importUsersAsCollaborators ? MessageAction.GuestImported : MessageAction.UserImported; MessageService.Send(httpHeaders, messageAction, userInfo.DisplayUserName(false)); Data.Add(new UserResults { Email = userData.Email, Result = String.Empty }); Percentage += percentStep; } } catch (Exception ex) { Status = (int)Operation.Error; Error = ex.Message; } IsCompleted = true; }
private String RenderContent() { var newUsers = new List <UserInfo>(); var widgetSettings = SettingsManager.Instance.LoadSettingsFor <NewEmployeeWidgetSettings>(SecurityContext.CurrentAccount.ID); var users = CoreContext.UserManager.GetUsers(); foreach (var user in users) { //search new users if (user.WorkFromDate.HasValue && (newUsers.Find(u => u.ID.Equals(user.ID)) == null)) { if (newUsers.Count < widgetSettings.NewWorkerCount) { newUsers.Add(user); } else { newUsers.Sort(new UserInfoDateComparer(true)); for (int i = newUsers.Count - 1; i >= 0; i--) { var newUser = newUsers[i]; if (newUser.WorkFromDate.Value.CompareTo(user.WorkFromDate) < 0) { newUsers.Remove(newUser); newUsers.Add(user); break; } } } } } newUsers.Sort(new UserInfoDateComparer(true)); StringBuilder sb = new StringBuilder(); if (newUsers.Count > 0) { foreach (var user in newUsers) { sb.Append("<div style='margin-bottom:15px;'>"); var imageURL = user.GetSmallPhotoURL(); sb.Append("<table cellpadding=\"0\" cellspacing=\"0\"><tr valign='top'>"); sb.Append("<td style='width:30px;'><a href=\"" + CommonLinkUtility.GetUserProfile(user.ID, ProductID) + "\"><img class=\"borderBase\" border=0 alt=\"\" src='" + imageURL + "'/></a></td>"); sb.Append("<td style='padding-left:10px;'>"); sb.Append("<div style='margin-top:-3px;'>"); sb.Append("<a class='linkHeaderLightSmall' href=\"" + CommonLinkUtility.GetUserProfile(user.ID, ProductID) + "\">" + user.DisplayUserName() + "</a>"); sb.Append("</div>"); var dep = user.GetUserDepartment(); if (dep != null) { sb.Append("<div style='margin-top:4px;'>"); sb.Append("<a class='linkText' href='" + CommonLinkUtility.GetDepartment(ProductID, dep.ID) + "'>" + dep.Name.HtmlEncode() + "</a>"); sb.Append("</div>"); } sb.Append("</td>"); sb.Append("</tr></table>"); sb.Append("</div>"); } sb.Append("<div style='margin-top: 10px;'>"); //all users sb.Append("<a href=\"" + CommonLinkUtility.GetEmployees(ProductID) + "&sort=InvAdmissionDate\">" + CustomNamingPeople.Substitute <Resources.Resource>("AllEmployees").HtmlEncode() + "</a>"); sb.Append("</div>"); } else { //check access rigths if (SecurityContext.CheckPermissions(ASC.Core.Users.Constants.Action_AddRemoveUser)) { sb.Append("<div class='empty-widget' style='padding:40px; text-align: center;'>"); var url = string.Format("<div style=\"padding-top:3px;\"><a class=\"promoAction\" href=\"javascript:ImportUsersManager.ShowImportControl();\">"); sb.Append(string.Format(CustomNamingPeople.Substitute <Resources.Resource>("InviteEmployeesWidgetTitle").HtmlEncode(), url, "</a></div>")); sb.Append("</div>"); } else { sb.Append("<div class=\"empty-widget\" style=\"padding:40px; text-align: center;\">" + CustomNamingPeople.Substitute <Resources.Resource>("NoNewEmployees").HtmlEncode() + "</div>"); } } return(sb.ToString()); }
[Create(@"register", false)] //NOTE: this method doesn't requires auth!!! public string RegisterUserOnPersonal(string email, string lang, bool spam) { if (!CoreContext.Configuration.Personal) { throw new MethodAccessException("Method is only available on personal.onlyoffice.com"); } try { var cultureInfo = SetupInfo.EnabledCultures.Find(c => String.Equals(c.TwoLetterISOLanguageName, lang, StringComparison.InvariantCultureIgnoreCase)); if (cultureInfo != null) { Thread.CurrentThread.CurrentUICulture = cultureInfo; } email.ThrowIfNull(new ArgumentException(Resource.ErrorEmailEmpty, "email")); if (!email.TestEmailRegex()) { throw new ArgumentException(Resource.ErrorNotCorrectEmail, "email"); } var newUserInfo = CoreContext.UserManager.GetUserByEmail(email); if (CoreContext.UserManager.UserExists(newUserInfo.ID)) { if (!SetupInfo.IsSecretEmail(email) || SecurityContext.IsAuthenticated) { throw new Exception(CustomNamingPeople.Substitute <Resource>("ErrorEmailAlreadyExists")); } try { SecurityContext.AuthenticateMe(Core.Configuration.Constants.CoreSystem); CoreContext.UserManager.DeleteUser(newUserInfo.ID); } finally { SecurityContext.Logout(); } } if (!spam) { try { const string _databaseID = "com"; using (var db = DbManager.FromHttpContext(_databaseID)) { db.ExecuteNonQuery(new SqlInsert("template_unsubscribe", false) .InColumnValue("email", email.ToLowerInvariant()) .InColumnValue("reason", "personal") ); log4net.LogManager.GetLogger("ASC.Web").Debug(String.Format("Write to template_unsubscribe {0}", email.ToLowerInvariant())); } } catch (Exception ex) { log4net.LogManager.GetLogger("ASC.Web").Debug(String.Format("ERROR write to template_unsubscribe {0}, email:{1}", ex.Message, email.ToLowerInvariant())); } } StudioNotifyService.Instance.SendInvitePersonal(email); } catch (Exception ex) { return(ex.Message); } return(string.Empty); }
public string InitDepartmentsDdl() { var sb = new StringBuilder().AppendFormat("<option value='-1' id='ddlDepartment-1'>{0}</option>", CustomNamingPeople.Substitute <ProjectsCommonResource>("AllDepartments").HtmlEncode()); CoreContext.UserManager .GetDepartments() .OrderBy(g => g.Name) .ToList() .ForEach(g => sb.AppendFormat("<option value='{0}' id='ddlDepartment{0}' {2}>{1}</option>", g.ID, g.Name.HtmlEncode(), g.ID == Report.Filter.DepartmentId ? "selected='selected'" : "")); return(sb.ToString()); }
protected void Page_Load(object sender, EventArgs e) { PageTitle = CustomNamingPeople.Substitute <Resource>("ImportContactsHeader"); importUsers.Controls.Add(LoadControl(ImportUsers.Location)); }
private String ParseFilter(ReportType repType, ReportFilter filter) { var sb = new StringBuilder(); var filterData = new StringBuilder(); var row = "<tr><td class='filterRowTitle'>{0}:</td><td>{1}</td></tr>"; var desc = string.Empty; var statuses = string.Empty; filterData.Append("<table cellspacing='0' cellpadding='0' class='filterTable'>"); switch (repType) { case ReportType.MilestonesExpired: desc = String.Format(ReportResource.ReportLateMilestones_Description, "<ul>", "</ul>", "<li>", "</li>"); filterData.AppendFormat(row, ProjectResource.Tags, (filter.ProjectTag != string.Empty && filter.ProjectTag != null) ? filter.ProjectTag.HtmlEncode() : ProjectsCommonResource.All); filterData.AppendFormat(row, ProjectResource.Project, (filter.ProjectIds != null && filter.ProjectIds.Count == 1) ? Global.EngineFactory.GetProjectEngine().GetByID(filter.ProjectIds[0]).Title.HtmlEncode() : ProjectResource.AllProjects); break; case ReportType.MilestonesNearest: desc = String.Format(ReportResource.ReportUpcomingMilestones_Description, "<ul>", "</ul>", "<li>", "</li>"); filterData.AppendFormat(row, ProjectResource.Tags, (filter.ProjectTag != string.Empty && filter.ProjectTag != null) ? filter.ProjectTag.HtmlEncode() : ProjectsCommonResource.All); filterData.AppendFormat(row, ProjectResource.Project, (filter.ProjectIds != null && filter.ProjectIds.Count == 1) ? Global.EngineFactory.GetProjectEngine().GetByID(filter.ProjectIds[0]).Title.HtmlEncode() : ProjectResource.AllProjects); filterData.AppendFormat(row, ReportResource.ChooseTimeInterval, filter.GetFromDate(false).ToString(DateTimeExtension.DateFormatPattern) + " - " + filter.GetToDate(false).ToString(DateTimeExtension.DateFormatPattern)); break; case ReportType.ProjectsList: desc = String.Format(ReportResource.ReportProjectList_Description, "<ul>", "</ul>", "<li>", "</li>"); filterData.AppendFormat(row, CustomNamingPeople.Substitute <ReportResource>("Department").HtmlEncode(), filter.DepartmentId != Guid.Empty ? CoreContext.GroupManager.GetGroupInfo(filter.DepartmentId).Name.HtmlEncode() : CustomNamingPeople.Substitute <ProjectsCommonResource>("AllDepartments")); filterData.AppendFormat(row, ReportResource.User, filter.UserId != Guid.Empty ? CoreContext.UserManager.GetUsers(filter.UserId).DisplayUserName() : CustomNamingPeople.Substitute <ProjectsCommonResource>("AllUsers").HtmlEncode()); if (filter.ProjectStatuses.Count > 0) { for (int i = 0; i < filter.ProjectStatuses.Count; i++) { statuses += ResourceEnumConverter.ConvertToString(filter.ProjectStatuses[i]); statuses += i < filter.TaskStatuses.Count - 1 ? ", " : string.Empty; } } else { statuses += ResourceEnumConverter.ConvertToString(ProjectStatus.Open) + ", "; statuses += ResourceEnumConverter.ConvertToString(ProjectStatus.Closed); } filterData.AppendFormat(row, ReportResource.ProjectsStatus, statuses); break; case ReportType.ProjectsWithoutActiveMilestones: desc = String.Format(ReportResource.ReportProjectsWithoutActiveMilestones_Description, "<ul>", "</ul>", "<li>", "</li>"); filterData.AppendFormat(row, CustomNamingPeople.Substitute <ReportResource>("Department").HtmlEncode(), filter.DepartmentId != Guid.Empty ? CoreContext.GroupManager.GetGroupInfo(filter.DepartmentId).Name.HtmlEncode() : CustomNamingPeople.Substitute <ProjectsCommonResource>("AllDepartments")); filterData.AppendFormat(row, ReportResource.User, filter.UserId != Guid.Empty ? CoreContext.UserManager.GetUsers(filter.UserId).DisplayUserName() : CustomNamingPeople.Substitute <ProjectsCommonResource>("AllUsers").HtmlEncode()); break; case ReportType.ProjectsWithoutActiveTasks: desc = String.Format(ReportResource.ReportProjectsWithoutActiveTasks_Description, "<ul>", "</ul>", "<li>", "</li>"); filterData.AppendFormat(row, CustomNamingPeople.Substitute <ReportResource>("Department").HtmlEncode(), filter.DepartmentId != Guid.Empty ? CoreContext.GroupManager.GetGroupInfo(filter.DepartmentId).Name.HtmlEncode() : CustomNamingPeople.Substitute <ProjectsCommonResource>("AllDepartments")); filterData.AppendFormat(row, ReportResource.User, filter.UserId != Guid.Empty ? CoreContext.UserManager.GetUsers(filter.UserId).DisplayUserName() : CustomNamingPeople.Substitute <ProjectsCommonResource>("AllUsers").HtmlEncode()); break; case ReportType.TasksByProjects: desc = String.Format(ReportResource.ReportTaskList_Description, "<ul>", "</ul>", "<li>", "</li>"); filterData.AppendFormat(row, ProjectResource.Tags, (filter.ProjectTag != string.Empty && filter.ProjectTag != null) ? filter.ProjectTag.HtmlEncode() : ProjectsCommonResource.All); filterData.AppendFormat(row, ProjectResource.Project, (filter.ProjectIds != null && filter.ProjectIds.Count == 1) ? Global.EngineFactory.GetProjectEngine().GetByID(filter.ProjectIds[0]).Title.HtmlEncode() : ProjectResource.AllProjects); filterData.AppendFormat(row, ReportResource.User, filter.UserId != Guid.Empty ? CoreContext.UserManager.GetUsers(filter.UserId).DisplayUserName() : CustomNamingPeople.Substitute <ProjectsCommonResource>("AllUsers").HtmlEncode()); for (int i = 0; i < filter.TaskStatuses.Count; i++) { statuses += ResourceEnumConverter.ConvertToString(filter.TaskStatuses[i]); statuses += i < filter.TaskStatuses.Count - 1 ? ", " : string.Empty; } filterData.AppendFormat(row, ReportResource.TasksStatus, statuses); if (filter.ToDate != DateTime.MinValue && filter.ToDate != DateTime.MaxValue) { filterData.AppendFormat(row, TaskResource.DeadLine, filter.ToDate.ToString(DateTimeExtension.DateFormatPattern)); } break; case ReportType.TasksByUsers: desc = String.Format(ReportResource.ReportUserTasks_Description, "<ul>", "</ul>", "<li>", "</li>"); filterData.AppendFormat(row, CustomNamingPeople.Substitute <ReportResource>("Department").HtmlEncode(), filter.DepartmentId != Guid.Empty ? CoreContext.GroupManager.GetGroupInfo(filter.DepartmentId).Name.HtmlEncode() : CustomNamingPeople.Substitute <ProjectsCommonResource>("AllDepartments")); filterData.AppendFormat(row, ReportResource.User, filter.UserId != Guid.Empty ? CoreContext.UserManager.GetUsers(filter.UserId).DisplayUserName() : CustomNamingPeople.Substitute <ProjectsCommonResource>("AllUsers").HtmlEncode()); for (int i = 0; i < filter.TaskStatuses.Count; i++) { statuses += ResourceEnumConverter.ConvertToString(filter.TaskStatuses[i]); statuses += i < filter.TaskStatuses.Count - 1 ? ", " : string.Empty; } filterData.AppendFormat(row, ReportResource.TasksStatus, statuses); if (filter.ToDate != DateTime.MinValue && filter.ToDate != DateTime.MaxValue) { filterData.AppendFormat(row, TaskResource.DeadLine, filter.ToDate.ToString(DateTimeExtension.DateFormatPattern)); } break; case ReportType.TasksExpired: desc = String.Format(ReportResource.ReportLateTasks_Description, "<ul>", "</ul>", "<li>", "</li>"); filterData.AppendFormat(row, ProjectResource.Tags, (filter.ProjectTag != string.Empty && filter.ProjectTag != null) ? filter.ProjectTag.HtmlEncode() : ProjectsCommonResource.All); filterData.AppendFormat(row, ProjectResource.Project, (filter.ProjectIds != null && filter.ProjectIds.Count == 1) ? Global.EngineFactory.GetProjectEngine().GetByID(filter.ProjectIds[0]).Title.HtmlEncode() : ProjectResource.AllProjects); break; case ReportType.TimeSpend: desc = String.Format(ReportResource.ReportTimeSpendSummary_Description, "<ul>", "</ul>", "<li>", "</li>"); filterData.AppendFormat(row, CustomNamingPeople.Substitute <ReportResource>("Department").HtmlEncode(), filter.DepartmentId != Guid.Empty ? CoreContext.GroupManager.GetGroupInfo(filter.DepartmentId).Name.HtmlEncode() : CustomNamingPeople.Substitute <ProjectsCommonResource>("AllDepartments")); filterData.AppendFormat(row, ReportResource.User, filter.UserId != Guid.Empty ? CoreContext.UserManager.GetUsers(filter.UserId).DisplayUserName() : CustomNamingPeople.Substitute <ProjectsCommonResource>("AllUsers").HtmlEncode()); if (filter.TimeInterval != ReportTimeInterval.Absolute || (filter.TimeInterval != ReportTimeInterval.Absolute && filter.ToDate != DateTime.MaxValue)) { filterData.AppendFormat(row, ReportResource.ChooseTimeInterval, filter.GetFromDate(false).ToString(DateTimeExtension.DateFormatPattern) + " - " + filter.GetToDate(false).ToString(DateTimeExtension.DateFormatPattern)); } filterData.AppendFormat(row, ProjectResource.Project, (filter.ProjectIds != null && filter.ProjectIds.Count == 1) ? Global.EngineFactory.GetProjectEngine().GetByID(filter.ProjectIds[0]).Title.HtmlEncode() : ProjectResource.AllProjects); break; case ReportType.UsersActivity: desc = String.Format(ReportResource.ReportUserActivity_Descripton, "<ul>", "</ul>", "<li>", "</li>"); filterData.AppendFormat(row, CustomNamingPeople.Substitute <ReportResource>("Department").HtmlEncode(), filter.DepartmentId != Guid.Empty ? CoreContext.GroupManager.GetGroupInfo(filter.DepartmentId).Name.HtmlEncode() : CustomNamingPeople.Substitute <ProjectsCommonResource>("AllDepartments")); filterData.AppendFormat(row, ReportResource.User, filter.UserId != Guid.Empty ? CoreContext.UserManager.GetUsers(filter.UserId).DisplayUserName() : CustomNamingPeople.Substitute <ProjectsCommonResource>("AllUsers").HtmlEncode()); if (filter.TimeInterval != ReportTimeInterval.Absolute || (filter.TimeInterval != ReportTimeInterval.Absolute && filter.ToDate != DateTime.MaxValue)) { filterData.AppendFormat(row, ReportResource.ChooseTimeInterval, filter.GetFromDate(false).ToString(DateTimeExtension.DateFormatPattern) + " - " + filter.GetToDate(false).ToString(DateTimeExtension.DateFormatPattern)); } break; case ReportType.UsersWithoutActiveTasks: desc = String.Format(ReportResource.ReportEmployeesWithoutActiveTasks_Description, "<ul>", "</ul>", "<li>", "</li>"); if (filter.ViewType == 0) { filterData.AppendFormat(row, CustomNamingPeople.Substitute <ReportResource>("Department").HtmlEncode(), filter.DepartmentId != Guid.Empty ? CoreContext.GroupManager.GetGroupInfo(filter.DepartmentId).Name.HtmlEncode() : CustomNamingPeople.Substitute <ProjectsCommonResource>("AllDepartments")); filterData.AppendFormat(row, ReportResource.User, filter.UserId != Guid.Empty ? CoreContext.UserManager.GetUsers(filter.UserId).DisplayUserName() : CustomNamingPeople.Substitute <ProjectsCommonResource>("AllUsers").HtmlEncode()); } if (filter.ViewType == 1) { filterData.AppendFormat(row, ProjectResource.Tags, (filter.ProjectTag != string.Empty && filter.ProjectTag != null) ? filter.ProjectTag.HtmlEncode() : ProjectsCommonResource.All); filterData.AppendFormat(row, ProjectResource.Project, (filter.ProjectIds != null && filter.ProjectIds.Count == 1) ? Global.EngineFactory.GetProjectEngine().GetByID(filter.ProjectIds[0]).Title.HtmlEncode() : ProjectResource.AllProjects); filterData.AppendFormat(row, ReportResource.User, filter.UserId != Guid.Empty ? CoreContext.UserManager.GetUsers(filter.UserId).DisplayUserName() : CustomNamingPeople.Substitute <ProjectsCommonResource>("AllUsers").HtmlEncode()); } break; case ReportType.UsersWorkload: desc = String.Format(ReportResource.ReportEmployment_Description, "<ul>", "</ul>", "<li>", "</li>"); if (filter.ViewType == 0) { filterData.AppendFormat(row, CustomNamingPeople.Substitute <ReportResource>("Department").HtmlEncode(), filter.DepartmentId != Guid.Empty ? CoreContext.GroupManager.GetGroupInfo(filter.DepartmentId).Name.HtmlEncode() : CustomNamingPeople.Substitute <ProjectsCommonResource>("AllDepartments")); filterData.AppendFormat(row, ReportResource.User, filter.UserId != Guid.Empty ? CoreContext.UserManager.GetUsers(filter.UserId).DisplayUserName() : CustomNamingPeople.Substitute <ProjectsCommonResource>("AllUsers").HtmlEncode()); } if (filter.ViewType == 1) { filterData.AppendFormat(row, ProjectResource.Tags, (filter.ProjectTag != string.Empty && filter.ProjectTag != null) ? filter.ProjectTag.HtmlEncode() : ProjectsCommonResource.All); filterData.AppendFormat(row, ProjectResource.Project, (filter.ProjectIds != null && filter.ProjectIds.Count == 1) ? Global.EngineFactory.GetProjectEngine().GetByID(filter.ProjectIds[0]).Title.HtmlEncode() : ProjectResource.AllProjects); filterData.AppendFormat(row, ReportResource.User, filter.UserId != Guid.Empty ? CoreContext.UserManager.GetUsers(filter.UserId).DisplayUserName() : CustomNamingPeople.Substitute <ProjectsCommonResource>("AllUsers").HtmlEncode()); } break; } filterData.AppendFormat(row, ReportResource.GenerationDate, TenantUtil.DateTimeNow().ToString(DateTimeExtension.ShortDatePattern)); filterData.Append("</table>"); sb.AppendFormat("<div id='faux'><div id='leftcolumn'>{0}</div><div id='rightcolumn'><table cellspacing='0' cellpadding='0'><tr><td valign='top'><b>{1}:</b></td><td>{2}</td></tr></table></div><div class='clear'></div></div>", filterData.ToString(), ProjectResource.ProjectDescription, desc); return(sb.ToString()); }
private string GetAllUsersDropDownList() { var sb = new StringBuilder().AppendFormat("<option value='-1' id='ddlUser-1'>{0}</option>", CustomNamingPeople.Substitute <ProjectsCommonResource>("AllUsers").HtmlEncode()); CoreContext.UserManager.GetUsers() .Where(u => string.IsNullOrEmpty(u.Department)) .OrderBy(u => u, UserInfoComparer.Default) .ToList() .ForEach(u => sb.AppendFormat("<option value='{0}' id='ddlUser{0}'>{1}</option>", u.ID, u.DisplayUserName())); foreach (var g in CoreContext.GroupManager.GetGroups().OrderBy(g => g.Name)) { sb.AppendFormat("<optgroup label=\"{0}\">", g.Name.HtmlEncode()); foreach (var u in CoreContext.UserManager.GetUsersByGroup(g.ID).OrderBy(u => u.DisplayUserName())) { sb.AppendFormat("<option value='{0}' id='ddlUser{0}'>{1}</option>", u.ID, u.DisplayUserName()); } } return(sb.ToString()); }
public string InitUsersDdlByTag(string tag) { ProjectSecurity.DemandAuthentication(); if (string.IsNullOrEmpty(tag)) { return(GetAllUsersDropDownList()); } else { var sb = new StringBuilder() .AppendFormat("<option value='-1' id='ddlUser-1'>{0}</option>", CustomNamingPeople.Substitute <ProjectsCommonResource>("AllUsers").HtmlEncode()); foreach (var id in Global.EngineFactory.GetTagEngine().GetTagProjects(tag)) { var p = Global.EngineFactory.GetProjectEngine().GetByID(id); if (p != null) { var prjTeam = Global.EngineFactory.GetProjectEngine() .GetTeam(id) .Select(u => u.UserInfo) .OrderBy(u => u, UserInfoComparer.Default) .ToList(); sb.AppendFormat("<optgroup label='{0}'>", Global.EngineFactory.GetProjectEngine().GetByID(id).HtmlTitle.HtmlEncode()); foreach (var u in prjTeam) { if (u.Status != EmployeeStatus.Terminated) { sb.AppendFormat("<option value='{0}' id='ddlUser{0}'>{1}</option>", u.ID, u.DisplayUserName()); } } } } return(sb.ToString()); } }
public string InitUsersDdlByProject(string project) { ProjectSecurity.DemandAuthentication(); var projectID = Convert.ToInt32(project); if (projectID == -1) { return(GetAllUsersDropDownList()); } else { var sb = new StringBuilder().AppendFormat("<option value='-1' id='ddlUser-1'>{0}</option>", CustomNamingPeople.Substitute <ProjectsCommonResource>("AllUsers").HtmlEncode()); var users = Global.EngineFactory.GetProjectEngine() .GetTeam(projectID) .Select(p => p.UserInfo) .OrderBy(u => u, UserInfoComparer.Default) .ToList(); foreach (var u in users) { if (u.Status != EmployeeStatus.Terminated) { sb.AppendFormat("<option value='{0}' id='ddlUser{0}'>{1}</option>", u.ID, u.DisplayUserName()); } } return(sb.ToString()); } }
public string InitUsersDdlByDepartment(string department) { ProjectSecurity.DemandAuthentication(); var departmentID = !string.IsNullOrEmpty(department) && department != "-1" ? new Guid(department) : Guid.Empty; if (departmentID == Guid.Empty) { return(GetAllUsersDropDownList()); } else { var sb = new StringBuilder().AppendFormat("<option value='-1' id='ddlUser-1'>{0}</option>", CustomNamingPeople.Substitute <ProjectsCommonResource>("AllUsers").HtmlEncode()); CoreContext.UserManager .GetUsersByGroup(departmentID) .OrderBy(u => u, UserInfoComparer.Default) .ToList() .ForEach(u => sb.AppendFormat("<option value='{0}' id='ddlUser{0}'>{1}</option>", u.ID, u.DisplayUserName())); return(sb.ToString()); } }
protected void Page_Load(object sender, EventArgs e) { Page.RegisterBodyScripts(ResolveUrl("~/usercontrols/management/confirminviteactivation/js/confirm_invite_activation.js")); Page.RegisterStyleControl(VirtualPathUtility.ToAbsolute("~/usercontrols/management/confirminviteactivation/css/confirm_invite_activation.less")); _tenantInfoSettings = SettingsManager.Instance.LoadSettings <TenantInfoSettings>(TenantProvider.CurrentTenantID); var uid = Guid.Empty; try { uid = new Guid(Request["uid"]); } catch { } var email = GetEmailAddress(); if (_type != ConfirmType.Activation && AccountLinkControl.IsNotEmpty) { var thrd = (AccountLinkControl)LoadControl(AccountLinkControl.Location); thrd.InviteView = true; thrd.ClientCallback = "loginJoinCallback"; thrdParty.Visible = true; thrdParty.Controls.Add(thrd); } Page.Title = HeaderStringHelper.GetPageTitle(Resource.Authorization); UserInfo user; try { SecurityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem); user = CoreContext.UserManager.GetUserByEmail(email); var usr = CoreContext.UserManager.GetUsers(uid); if (usr.ID.Equals(ASC.Core.Users.Constants.LostUser.ID) || usr.ID.Equals(ASC.Core.Configuration.Constants.Guest.ID)) { usr = CoreContext.UserManager.GetUsers(CoreContext.TenantManager.GetCurrentTenant().OwnerId); } _userAvatar = usr.GetMediumPhotoURL(); _userName = usr.DisplayUserName(true); _userPost = (usr.Title ?? "").HtmlEncode(); } finally { SecurityContext.Logout(); } if (_type == ConfirmType.LinkInvite || _type == ConfirmType.EmpInvite) { if (TenantStatisticsProvider.GetUsersCount() >= TenantExtra.GetTenantQuota().ActiveUsers&& _employeeType == EmployeeType.User) { ShowError(UserControlsCommonResource.TariffUserLimitReason); return; } if (!user.ID.Equals(ASC.Core.Users.Constants.LostUser.ID)) { ShowError(CustomNamingPeople.Substitute <Resource>("ErrorEmailAlreadyExists")); return; } } else if (_type == ConfirmType.Activation) { if (user.IsActive) { ShowError(Resource.ErrorConfirmURLError); return; } if (user.ID.Equals(ASC.Core.Users.Constants.LostUser.ID) || user.Status == EmployeeStatus.Terminated) { ShowError(string.Format(Resource.ErrorUserNotFoundByEmail, email)); return; } } if (!IsPostBack) { return; } var firstName = GetFirstName(); var lastName = GetLastName(); var pwd = (Request["pwdInput"] ?? "").Trim(); var repwd = (Request["repwdInput"] ?? "").Trim(); LoginProfile thirdPartyProfile; //thirdPartyLogin confirmInvite if (Request["__EVENTTARGET"] == "thirdPartyLogin") { var valueRequest = Request["__EVENTARGUMENT"]; thirdPartyProfile = new LoginProfile(valueRequest); if (!string.IsNullOrEmpty(thirdPartyProfile.AuthorizationError)) { // ignore cancellation if (thirdPartyProfile.AuthorizationError != "Canceled at provider") { ShowError(HttpUtility.HtmlEncode(thirdPartyProfile.AuthorizationError)); } return; } if (string.IsNullOrEmpty(thirdPartyProfile.EMail)) { ShowError(HttpUtility.HtmlEncode(Resource.ErrorNotCorrectEmail)); return; } } if (Request["__EVENTTARGET"] == "confirmInvite") { if (String.IsNullOrEmpty(email)) { _errorMessage = Resource.ErrorEmptyUserEmail; return; } if (!email.TestEmailRegex()) { _errorMessage = Resource.ErrorNotCorrectEmail; return; } if (String.IsNullOrEmpty(firstName)) { _errorMessage = Resource.ErrorEmptyUserFirstName; return; } if (String.IsNullOrEmpty(lastName)) { _errorMessage = Resource.ErrorEmptyUserLastName; return; } var checkPassResult = CheckPassword(pwd, repwd); if (!String.IsNullOrEmpty(checkPassResult)) { _errorMessage = checkPassResult; return; } } var userID = Guid.Empty; try { SecurityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem); if (_type == ConfirmType.EmpInvite || _type == ConfirmType.LinkInvite) { if (TenantStatisticsProvider.GetUsersCount() >= TenantExtra.GetTenantQuota().ActiveUsers&& _employeeType == EmployeeType.User) { ShowError(UserControlsCommonResource.TariffUserLimitReason); return; } UserInfo newUser; if (Request["__EVENTTARGET"] == "confirmInvite") { var fromInviteLink = _type == ConfirmType.LinkInvite; newUser = CreateNewUser(firstName, lastName, email, pwd, _employeeType, fromInviteLink); userID = newUser.ID; } if (Request["__EVENTTARGET"] == "thirdPartyLogin") { if (!String.IsNullOrEmpty(CheckPassword(pwd, repwd))) { pwd = UserManagerWrapper.GeneratePassword(); } var valueRequest = Request["__EVENTARGUMENT"]; thirdPartyProfile = new LoginProfile(valueRequest); newUser = CreateNewUser(GetFirstName(thirdPartyProfile), GetLastName(thirdPartyProfile), GetEmailAddress(thirdPartyProfile), pwd, _employeeType, false); userID = newUser.ID; if (!String.IsNullOrEmpty(thirdPartyProfile.Avatar)) { SaveContactImage(userID, thirdPartyProfile.Avatar); } var linker = new AccountLinker("webstudio"); linker.AddLink(userID.ToString(), thirdPartyProfile); } } else if (_type == ConfirmType.Activation) { user.ActivationStatus = EmployeeActivationStatus.Activated; user.FirstName = firstName; user.LastName = lastName; CoreContext.UserManager.SaveUserInfo(user); SecurityContext.SetUserPassword(user.ID, pwd); userID = user.ID; //notify if (user.IsVisitor()) { StudioNotifyService.Instance.GuestInfoAddedAfterInvite(user, pwd); } else { StudioNotifyService.Instance.UserInfoAddedAfterInvite(user, pwd); } } } catch (Exception exception) { _errorMessage = HttpUtility.HtmlEncode(exception.Message); return; } finally { SecurityContext.Logout(); } try { var cookiesKey = SecurityContext.AuthenticateMe(userID.ToString(), pwd); CookiesManager.SetCookies(CookiesType.UserID, userID.ToString()); CookiesManager.SetCookies(CookiesType.AuthKey, cookiesKey); StudioNotifyService.Instance.UserHasJoin(); } catch (Exception exception) { (Page as confirm).ErrorMessage = HttpUtility.HtmlEncode(exception.Message); return; } user = CoreContext.UserManager.GetUsers(userID); UserHelpTourHelper.IsNewUser = true; Response.Redirect(user.IsVisitor() ? "~/" : "~/welcome.aspx"); }
protected override void OnInit(EventArgs e) { base.OnInit(e); if (this.Master is IStudioMaster) { var master = this.Master as IStudioMaster; //top navigator if (this.Master is StudioTemplate) { (this.Master as StudioTemplate).TopNavigationPanel.CustomTitle = CustomNamingPeople.Substitute <Resources.Resource>("Employees"); (this.Master as StudioTemplate).TopNavigationPanel.CustomTitleURL = CommonLinkUtility.GetEmployees(); (this.Master as StudioTemplate).TopNavigationPanel.CustomTitleIconURL = WebImageSupplier.GetAbsoluteWebPath("home.png"); } WriteEmployeeActions(this); if (SecurityContext.CheckPermissions(Constants.Action_AddRemoveUser)) { master.SideHolder.Controls.Add(GetEmployeeNavigation()); } var contentControl = (EmployeeViewer)LoadControl(EmployeeViewer.Location); master.ContentHolder.Controls.Add(contentControl); master.SideHolder.Controls.Add(LoadControl(CompanyNavigation.Location)); if (contentControl.WhatView == EmployeeViewer.ViewType.Departments) { var ceoSelector = (SimpleUserSelector)LoadControl(SimpleUserSelector.Location); ceoSelector.Title = CustomNamingPeople.Substitute <Resources.Resource>("CeoNameEditCaption"); ceoSelector.SelectTitle = CustomNamingPeople.Substitute <Resources.Resource>("CEO"); ceoSelector.AdditionalID = "ceo"; var ceo = CoreContext.UserManager.GetCompanyCEO(); ceoSelector.UserID = ceo != null ? ceo.ID : Guid.Empty; ceoSelector.SelectJSCallback = "function(id) { EmployeeService.ChangeCEO(id); window.location.reload(); }"; master.ContentHolder.Controls.Add(ceoSelector); } else if (contentControl.WhatView == EmployeeViewer.ViewType.Department) { var managerSelector = (SimpleUserSelector)LoadControl(SimpleUserSelector.Location); managerSelector.Title = CustomNamingPeople.Substitute <Resources.Resource>("DepEditMaster"); managerSelector.SelectTitle = CustomNamingPeople.Substitute <Resources.Resource>("DepartmentMaster"); managerSelector.AdditionalID = "dep_manager"; managerSelector.UserID = CoreContext.UserManager.GetDepartmentManager(contentControl.DepartmentId); managerSelector.SelectJSCallback = "function(id) { EmployeeService.ChangeDepartmentManager(id,'" + contentControl.DepartmentId + "'); window.location.reload(); }"; master.ContentHolder.Controls.Add(managerSelector); var depNameControl = (Confirm)LoadControl(Confirm.Location); depNameControl.Title = CustomNamingPeople.Substitute <Resources.Resource>("DepartmentTitle"); depNameControl.AdditionalID = "depname"; depNameControl.SelectTitle = Resources.Resource.NewTitle; depNameControl.Value = contentControl.Department != null?HttpUtility.HtmlEncode(contentControl.Department.Name) : ""; depNameControl.SelectJSCallback = @"function(name) { AjaxPro.onLoading = function(b){ if(b) jq('#studio_confirmDialogdepname').block(); else jq('#studio_confirmDialogdepname').unblock(); }; EmployeeService.ChangeDepartmentName('" + contentControl.DepartmentId + @"',name,function(result){ if(result.value.rs1 == '0') jq('#studio_confirmMessage').html('<div class=\'errorBox\'>'+result.value.rs2+'</div>'); else{ window.location.reload(true); jq.unblockUI(); } }); }"; master.ContentHolder.Controls.Add(depNameControl); } } }
public string InitUsersDdl() { var projectIds = Report.Filter.ProjectIds; if (Report.Filter.TagId != 0 && Report.Filter.ProjectIds.Count == 0) { projectIds = Page.EngineFactory.TagEngine.GetTagProjects(Report.Filter.TagId).ToList(); } UserInfo[] users; if (!Report.Filter.DepartmentId.Equals(Guid.Empty)) { users = CoreContext.UserManager.GetUsersByGroup(Report.Filter.DepartmentId); } else if (projectIds.Any()) { users = Page.EngineFactory.ProjectEngine.GetTeam(projectIds).Select(r => r.UserInfo).ToArray(); } else { users = CoreContext.UserManager.GetUsers(); } var sb = new StringBuilder().AppendFormat("<option value='-1' id='ddlUser-1'>{0}</option>", CustomNamingPeople.Substitute <ProjectsCommonResource>("AllUsers").HtmlEncode()); users.OrderBy(u => u, UserInfoComparer.Default).ToList() .ForEach(u => sb.AppendFormat("<option value='{0}' id='ddlUser{0}' {2}>{1}</option>", u.ID, u.DisplayUserName(), u.ID == Report.Filter.UserId || u.ID == Report.Filter.ParticipantId ? "selected='selected'" : "")); return(sb.ToString()); }
public static ReportInfo GetReportInfo(ReportType reportType) { var virtualRoot = CommonLinkUtility.VirtualRoot != "/" ? CommonLinkUtility.VirtualRoot : string.Empty; var virtulaRootPath = CommonLinkUtility.ServerRootPath + virtualRoot; var mileColumns = new[] { ProjectResource.Project, MilestoneResource.Milestone, ReportResource.DeadLine, virtulaRootPath }; var projColumns = new[] { ProjectsCommonResource.Title, ProjectResource.ProjectLeader, ProjectsCommonResource.Status, GrammaticalResource.MilestoneGenitivePlural, TaskResource.Tasks, ReportResource.Participiants, ReportResource.ClickToSortByThisColumn, CommonLinkUtility.ServerRootPath, virtualRoot }; var userColumns = new[] { ReportResource.User, "Not Accept", ResourceEnumConverter.ConvertToString(TaskStatus.Open), ReportResource.ActiveTasks, ResourceEnumConverter.ConvertToString(TaskStatus.Closed), ProjectsCommonResource.Total, ReportResource.ClickToSortByThisColumn, CommonLinkUtility.ServerRootPath }; var taskColumns = new[] { ProjectResource.Project, MilestoneResource.Milestone, TaskResource.Task, TaskResource.TaskResponsible, ProjectsCommonResource.Status, TaskResource.UnsortedTask, ReportResource.DeadLine, ReportResource.NoMilestonesAndTasks, CommonLinkUtility.ServerRootPath, virtualRoot }; var taskExpiredColumns = new[] { ProjectResource.Project, MilestoneResource.Milestone, TaskResource.Task, TaskResource.TaskResponsible, ProjectsCommonResource.Status, TaskResource.UnsortedTask, TaskResource.DeadLine, ReportResource.NoMilestonesAndTasks, CommonLinkUtility.ServerRootPath, virtualRoot }; switch (reportType) { case ReportType.MilestonesExpired: return(new ReportInfo( String.Format(ReportResource.ReportLateMilestones_Description, "<ul>", "</ul>", "<li>", "</li>"), ReportResource.ReportLateMilestones_Title, mileColumns)); case ReportType.MilestonesNearest: return(new ReportInfo( String.Format(ReportResource.ReportUpcomingMilestones_Description, "<ul>", "</ul>", "<li>", "</li>"), ReportResource.ReportUpcomingMilestones_Title, mileColumns)); case ReportType.UsersWithoutActiveTasks: return(new ReportInfo( String.Format(ReportResource.ReportEmployeesWithoutActiveTasks_Description, "<ul>", "</ul>", "<li>", "</li>"), CustomNamingPeople.Substitute <ReportResource>("ReportEmployeesWithoutActiveTasks_Title").HtmlEncode(), userColumns)); case ReportType.ProjectsWithoutActiveMilestones: return(new ReportInfo( String.Format(ReportResource.ReportProjectsWithoutActiveMilestones_Description, "<ul>", "</ul>", "<li>", "</li>"), ReportResource.ReportProjectsWithoutActiveMilestones_Title, projColumns)); case ReportType.ProjectsWithoutActiveTasks: return(new ReportInfo( String.Format(ReportResource.ReportProjectsWithoutActiveTasks_Description, "<ul>", "</ul>", "<li>", "</li>"), ReportResource.ReportProjectsWithoutActiveTasks_Title, projColumns)); case ReportType.UsersActivity: return(new ReportInfo( String.Format(ReportResource.ReportUserActivity_Descripton, "<ul>", "</ul>", "<li>", "</li>"), ReportResource.ReportUserActivity_Title, new[] { ReportResource.User, TaskResource.Tasks, MilestoneResource.Milestones, MessageResource.Messages, ProjectsFileResource.Files, ProjectsCommonResource.Total, ReportResource.ClickToSortByThisColumn, CommonLinkUtility.ServerRootPath })); case ReportType.UsersWorkload: return(new ReportInfo( String.Format(ReportResource.ReportEmployment_Description, "<ul>", "</ul>", "<li>", "</li>"), ReportResource.ReportEmployment_Title, userColumns)); case ReportType.ProjectsList: return(new ReportInfo( String.Format(ReportResource.ReportProjectList_Description, "<ul>", "</ul>", "<li>", "</li>"), ReportResource.ReportProjectList_Title, projColumns)); case ReportType.TimeSpend: return(new ReportInfo( String.Format(ReportResource.ReportTimeSpendSummary_Description, "<ul>", "</ul>", "<li>", "</li>"), ReportResource.ReportTimeSpendSummary_Title, new[] { ReportResource.User, ProjectsCommonResource.SpentTotally, ProjectsCommonResource.Title, ReportResource.ClickToSortByThisColumn, CommonLinkUtility.ServerRootPath, virtualRoot })); case ReportType.TasksByProjects: return(new ReportInfo( String.Format(ReportResource.ReportTaskList_Description, "<ul>", "</ul>", "<li>", "</li>"), ReportResource.ReportTaskList_Title, taskColumns)); case ReportType.TasksByUsers: return(new ReportInfo( String.Format(ReportResource.ReportUserTasks_Description, "<ul>", "</ul>", "<li>", "</li>"), ReportResource.ReportUserTasks_Title, taskColumns)); case ReportType.TasksExpired: return(new ReportInfo( String.Format(ReportResource.ReportLateTasks_Description, "<ul>", "</ul>", "<li>", "</li>"), ReportResource.ReportLateTasks_Title, taskExpiredColumns)); } ; return(ReportInfo.Empty); }
protected override IEnumerable <KeyValuePair <string, object> > GetClientVariables(HttpContext context) { yield return(RegisterObject("AddDepartmentDlgTitle", CustomNamingPeople.Substitute <PeopleResource>("AddDepartmentDlgTitle").HtmlEncode())); yield return(RegisterObject("DepartmentMaster", CustomNamingPeople.Substitute <PeopleResource>("DepartmentMaster").HtmlEncode())); }
public string SendEmailActivationInstructions(Guid userID, string email) { if (userID == Guid.Empty) { throw new ArgumentNullException("userID"); } email = (email ?? "").Trim(); if (String.IsNullOrEmpty(email)) { throw new ArgumentNullException(Resource.ErrorEmailEmpty); } if (!email.TestEmailRegex()) { throw new InvalidEmailException(Resource.ErrorNotCorrectEmail); } try { var viewer = CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID); var user = CoreContext.UserManager.GetUsers(userID); if (user == null) { throw new UserNotFoundException(Resource.ErrorUserNotFound); } if (viewer == null) { throw new AccessDeniedException(Resource.ErrorAccessDenied); } if (viewer.IsAdmin() || viewer.ID == user.ID) { var existentUser = CoreContext.UserManager.GetUserByEmail(email); if (existentUser.ID != ASC.Core.Users.Constants.LostUser.ID && existentUser.ID != userID) { throw new InputException(CustomNamingPeople.Substitute <Resource>("ErrorEmailAlreadyExists")); } user.Email = email; if (user.ActivationStatus == EmployeeActivationStatus.Activated) { user.ActivationStatus = EmployeeActivationStatus.NotActivated; } CoreContext.UserManager.SaveUserInfo(user); } else { email = user.Email; } if (user.ActivationStatus == EmployeeActivationStatus.Pending) { if (user.IsVisitor()) { StudioNotifyService.Instance.GuestInfoActivation(user); } else { StudioNotifyService.Instance.UserInfoActivation(user); } } else { StudioNotifyService.Instance.SendEmailActivationInstructions(user, email); } MessageService.Send(HttpContext.Current.Request, MessageAction.UserSentActivationInstructions, user.DisplayUserName(false)); return(String.Format(Resource.MessageEmailActivationInstuctionsSentOnEmail, "<b>" + email + "</b>")); } catch (UserNotFoundException) { throw; } catch (AccessDeniedException) { throw; } catch (InputException) { throw; } catch (Exception) { throw new Exception(Resource.UnknownError); } }
protected void Page_Load(object sender, EventArgs e) { Utility.RegisterTypeForAjax(typeof(ImportFromCSVView)); Page.ClientScript.RegisterClientScriptInclude(GetType(), "ajaxupload_script", WebPath.GetPath("js/ajaxupload.3.5.js")); var columnSelectorData = new[] { new { name = String.Empty, title = CRMContactResource.NoMatchSelect, isHeader = false }, new { name = "-1", title = CRMContactResource.DoNotImportThisField, isHeader = false }, new { name = String.Empty, title = CRMContactResource.GeneralInformation, isHeader = true }, new { name = "firstName", title = CRMContactResource.FirstName, isHeader = false }, new { name = "lastName", title = CRMContactResource.LastName, isHeader = false }, new { name = "title", title = CRMContactResource.JobTitle, isHeader = false }, new { name = "companyName", title = CRMContactResource.CompanyName, isHeader = false }, new { name = "notes", title = CRMContactResource.About, isHeader = false }, new { name = "tag", title = CRMContactResource.Tags, isHeader = false } }.ToList(); foreach (ContactInfoType infoTypeEnum in Enum.GetValues(typeof(ContactInfoType))) { foreach (Enum categoryEnum in Enum.GetValues(ContactInfo.GetCategory(infoTypeEnum))) { var localName = String.Format("contactInfo_{0}_{1}", infoTypeEnum, Convert.ToInt32(categoryEnum)); var localTitle = String.Format("{1} ({0})", categoryEnum.ToLocalizedString().ToLower(), infoTypeEnum.ToLocalizedString()); if (infoTypeEnum == ContactInfoType.Address) { foreach (AddressPart addressPartEnum in Enum.GetValues(typeof(AddressPart))) { columnSelectorData.Add(new { name = String.Format(localName + "_{0}", addressPartEnum), title = String.Format(localTitle + " {0}", addressPartEnum.ToLocalizedString().ToLower()), isHeader = false }); } } else { columnSelectorData.Add(new { name = localName, title = localTitle, isHeader = false }); } } } columnSelectorData.AddRange(Global.DaoFactory.GetCustomFieldDao().GetFieldsDescription(EntityType.Contact).FindAll(customField => customField.FieldType == CustomFieldType.TextField || customField.FieldType == CustomFieldType.TextArea || customField.FieldType == CustomFieldType.Heading) .ConvertAll(customField => new { name = "customField_" + customField.ID, title = customField.Label.HtmlEncode(), isHeader = customField.FieldType == CustomFieldType.Heading })); Page.ClientScript.RegisterClientScriptBlock(GetType(), Guid.NewGuid().ToString(), String.Format(" var {0} = {1}; ", "columnSelectorData", JavaScriptSerializer.Serialize(columnSelectorData)), true); var privatePanel = (PrivatePanel)Page.LoadControl(PrivatePanel.Location); privatePanel.CheckBoxLabel = CRMContactResource.PrivatePanelCheckBoxLabelForContact; privatePanel.IsPrivateItem = false; var usersWhoHasAccess = new List <string> { CustomNamingPeople.Substitute <CRMCommonResource>("CurrentUser").HtmlEncode() }; privatePanel.UsersWhoHasAccess = usersWhoHasAccess; privatePanel.DisabledUsers = new List <Guid> { SecurityContext.CurrentAccount.ID }; privatePanel.HideNotifyPanel = true; _phPrivatePanel.Controls.Add(privatePanel); }
protected void Page_Load(object sender, EventArgs e) { Page.RegisterBodyScripts("~/js/third-party/xregexp.js", "~/UserControls/Management/ConfirmInviteActivation/js/confirm_invite_activation.js") .RegisterStyle("~/UserControls/Management/ConfirmInviteActivation/css/confirm_invite_activation.less"); var uid = Guid.Empty; try { uid = new Guid(Request["uid"]); } catch { } var email = GetEmailAddress(); if (_type != ConfirmType.Activation && AccountLinkControl.IsNotEmpty && !CoreContext.Configuration.Personal) { var thrd = (AccountLinkControl)LoadControl(AccountLinkControl.Location); thrd.InviteView = true; thrd.ClientCallback = "loginJoinCallback"; thrdParty.Visible = true; thrdParty.Controls.Add(thrd); } Page.Title = HeaderStringHelper.GetPageTitle(Resource.Authorization); UserInfo user; try { SecurityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem); user = CoreContext.UserManager.GetUserByEmail(email); var usr = CoreContext.UserManager.GetUsers(uid); if (usr.ID.Equals(Constants.LostUser.ID) || usr.ID.Equals(ASC.Core.Configuration.Constants.Guest.ID)) { usr = CoreContext.UserManager.GetUsers(CoreContext.TenantManager.GetCurrentTenant().OwnerId); } var photoData = UserPhotoManager.GetUserPhotoData(usr.ID, UserPhotoManager.MediumFotoSize); _userAvatar = photoData == null?usr.GetMediumPhotoURL() : "data:image/png;base64," + Convert.ToBase64String(photoData); _userName = usr.DisplayUserName(true); _userPost = (usr.Title ?? "").HtmlEncode(); } finally { SecurityContext.Logout(); } if (_type == ConfirmType.LinkInvite || _type == ConfirmType.EmpInvite) { if (TenantStatisticsProvider.GetUsersCount() >= TenantExtra.GetTenantQuota().ActiveUsers&& _employeeType == EmployeeType.User) { ShowError(UserControlsCommonResource.TariffUserLimitReason); return; } if (!user.ID.Equals(Constants.LostUser.ID)) { ShowError(CustomNamingPeople.Substitute <Resource>("ErrorEmailAlreadyExists")); return; } } else if (_type == ConfirmType.Activation) { if (user.IsActive) { Response.Redirect(CommonLinkUtility.GetDefault()); return; } if (user.ID.Equals(Constants.LostUser.ID) || user.Status == EmployeeStatus.Terminated) { ShowError(string.Format(Resource.ErrorUserNotFoundByEmail, email)); return; } } var tenant = CoreContext.TenantManager.GetCurrentTenant(); if (tenant != null) { var settings = IPRestrictionsSettings.Load(); if (settings.Enable && !IPSecurity.IPSecurity.Verify(tenant)) { ShowError(Resource.ErrorAccessRestricted); return; } } if (!IsPostBack) { return; } var firstName = GetFirstName(); var lastName = GetLastName(); var passwordHash = (Request["passwordHash"] ?? "").Trim(); var analytics = (Request["analytics"] ?? "").Trim() == "True"; var mustChangePassword = false; LoginProfile thirdPartyProfile; //thirdPartyLogin confirmInvite if (Request["__EVENTTARGET"] == "thirdPartyLogin") { var valueRequest = Request["__EVENTARGUMENT"]; thirdPartyProfile = new LoginProfile(valueRequest); if (!string.IsNullOrEmpty(thirdPartyProfile.AuthorizationError)) { // ignore cancellation if (thirdPartyProfile.AuthorizationError != "Canceled at provider") { ShowError(HttpUtility.HtmlEncode(thirdPartyProfile.AuthorizationError)); } return; } if (string.IsNullOrEmpty(thirdPartyProfile.EMail)) { ShowError(HttpUtility.HtmlEncode(Resource.ErrorNotCorrectEmail)); return; } } if (Request["__EVENTTARGET"] == "confirmInvite") { if (String.IsNullOrEmpty(email)) { _errorMessage = Resource.ErrorEmptyUserEmail; return; } if (!email.TestEmailRegex()) { _errorMessage = Resource.ErrorNotCorrectEmail; return; } if (String.IsNullOrEmpty(firstName)) { _errorMessage = Resource.ErrorEmptyUserFirstName; return; } if (String.IsNullOrEmpty(lastName)) { _errorMessage = Resource.ErrorEmptyUserLastName; return; } if (String.IsNullOrEmpty(passwordHash)) { _errorMessage = Resource.ErrorPasswordEmpty; return; } } var userID = Guid.Empty; try { SecurityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem); if (_type == ConfirmType.EmpInvite || _type == ConfirmType.LinkInvite) { if (TenantStatisticsProvider.GetUsersCount() >= TenantExtra.GetTenantQuota().ActiveUsers&& _employeeType == EmployeeType.User) { ShowError(UserControlsCommonResource.TariffUserLimitReason); return; } UserInfo newUser; if (Request["__EVENTTARGET"] == "confirmInvite") { var fromInviteLink = _type == ConfirmType.LinkInvite; newUser = CreateNewUser(firstName, lastName, email, passwordHash, _employeeType, fromInviteLink); var messageAction = _employeeType == EmployeeType.User ? MessageAction.UserCreatedViaInvite : MessageAction.GuestCreatedViaInvite; MessageService.Send(HttpContext.Current.Request, MessageInitiator.System, messageAction, MessageTarget.Create(newUser.ID), newUser.DisplayUserName(false)); userID = newUser.ID; var settings = TenantAnalyticsSettings.LoadForCurrentUser(); settings.Analytics = analytics; settings.SaveForCurrentUser(); } if (Request["__EVENTTARGET"] == "thirdPartyLogin") { if (String.IsNullOrEmpty(passwordHash)) { passwordHash = UserManagerWrapper.GeneratePassword(); mustChangePassword = true; } var valueRequest = Request["__EVENTARGUMENT"]; thirdPartyProfile = new LoginProfile(valueRequest); newUser = CreateNewUser(GetFirstName(thirdPartyProfile), GetLastName(thirdPartyProfile), GetEmailAddress(thirdPartyProfile), passwordHash, _employeeType, false); var messageAction = _employeeType == EmployeeType.User ? MessageAction.UserCreatedViaInvite : MessageAction.GuestCreatedViaInvite; MessageService.Send(HttpContext.Current.Request, MessageInitiator.System, messageAction, MessageTarget.Create(newUser.ID), newUser.DisplayUserName(false)); userID = newUser.ID; if (!String.IsNullOrEmpty(thirdPartyProfile.Avatar)) { SaveContactImage(userID, thirdPartyProfile.Avatar); } var linker = new AccountLinker("webstudio"); linker.AddLink(userID.ToString(), thirdPartyProfile); } } else if (_type == ConfirmType.Activation) { if (!UserFormatter.IsValidUserName(firstName, lastName)) { throw new Exception(Resource.ErrorIncorrectUserName); } SecurityContext.SetUserPasswordHash(user.ID, passwordHash); user.ActivationStatus = EmployeeActivationStatus.Activated; user.FirstName = firstName; user.LastName = lastName; CoreContext.UserManager.SaveUserInfo(user); userID = user.ID; //notify if (user.IsVisitor()) { StudioNotifyService.Instance.GuestInfoAddedAfterInvite(user); MessageService.Send(HttpContext.Current.Request, MessageInitiator.System, MessageAction.GuestActivated, MessageTarget.Create(user.ID), user.DisplayUserName(false)); } else { StudioNotifyService.Instance.UserInfoAddedAfterInvite(user); MessageService.Send(HttpContext.Current.Request, MessageInitiator.System, MessageAction.UserActivated, MessageTarget.Create(user.ID), user.DisplayUserName(false)); } } } catch (SecurityContext.PasswordException) { _errorMessage = HttpUtility.HtmlEncode(Resource.ErrorPasswordRechange); return; } catch (Exception exception) { _errorMessage = HttpUtility.HtmlEncode(exception.Message); return; } finally { SecurityContext.Logout(); } user = CoreContext.UserManager.GetUsers(userID); try { var cookiesKey = SecurityContext.AuthenticateMe(user.Email, passwordHash); CookiesManager.SetCookies(CookiesType.AuthKey, cookiesKey); MessageService.Send(HttpContext.Current.Request, MessageAction.LoginSuccess); StudioNotifyService.Instance.UserHasJoin(); if (mustChangePassword) { StudioNotifyService.Instance.UserPasswordChange(user); } } catch (Exception exception) { (Page as Confirm).ErrorMessage = HttpUtility.HtmlEncode(exception.Message); return; } UserHelpTourHelper.IsNewUser = true; if (CoreContext.Configuration.Personal) { PersonalSettings.IsNewUser = true; } Response.Redirect(CommonLinkUtility.GetDefault()); }
public void RunJob() { Status = (int)Operation.Success; CoreContext.TenantManager.SetCurrentTenant((int)Id); SecurityContext.CurrentUser = UserId; if (!SecurityContext.CheckPermissions(Constants.Action_AddRemoveUser)) { Error = Resource.ErrorAccessDenied; IsCompleted = true; return; } try { var jsSerializer = new System.Web.Script.Serialization.JavaScriptSerializer(); var ruleObj = jsSerializer.Deserialize <List <UserData> >(userList); var error = 0; Address address; GetUserCounter = ruleObj.Count; foreach (var userData in ruleObj) { var isGuest = userData.Status == EmployeeType.All ? importUsersAsCollaborators : userData.Status == EmployeeType.Visitor; var isValidEmail = Parser.TryParseAddress(userData.Email, out address); if (!isValidEmail || String.IsNullOrEmpty(userData.FirstName) || String.IsNullOrEmpty(userData.LastName)) { Data.Add(new UserResults { Email = userData.Email, Result = Resource.ImportContactsIncorrectFields, Class = !isValidEmail ? "error3" : "error1" }); error++; Percentage++; continue; } var us = CoreContext.UserManager.GetUserByEmail(userData.Email); if (us.ID != Constants.LostUser.ID) { Data.Add(new UserResults { Email = userData.Email, Result = CustomNamingPeople.Substitute <Resource>("ImportContactsAlreadyExists"), Class = "error2" }); error++; Percentage++; continue; } if (isGuest && !(CoreContext.Configuration.Standalone || CoreContext.UserManager.GetUsersByGroup(Constants.GroupVisitor.ID).Length < Constants.CoefficientOfVisitors * TenantExtra.GetTenantQuota().ActiveUsers)) { break; } var userInfo = new UserInfo { Email = userData.Email, FirstName = userData.FirstName, LastName = userData.LastName }; UserManagerWrapper.AddUser(userInfo, UserManagerWrapper.GeneratePassword(), false, true, isGuest, false, true, true); var messageAction = isGuest ? MessageAction.GuestImported : MessageAction.UserImported; MessageService.Send(httpHeaders, messageAction, MessageTarget.Create(userInfo.ID), string.Format("{0} ({1})", userInfo.DisplayUserName(false), userInfo.Email)); Data.Add(new UserResults { Email = userData.Email, Result = String.Empty }); Percentage++; } } catch (Exception ex) { Status = (int)Operation.Error; Error = ex.Message; } IsCompleted = true; }
protected void InitForCase() { StartImportLabel = CRMCasesResource.StartImport; ImportFromCSVStepOneHeaderLabel = CRMCasesResource.ImportFromCSVStepOneHeader; ImportFromCSVStepTwoHeaderLabel = CRMCasesResource.ImportFromCSVStepTwoHeader; ImportFromCSVStepOneDescriptionLabel = CRMCasesResource.ImportFromCSVStepOneDescription; ImportFromCSVStepTwoDescriptionLabel = CRMCasesResource.ImportFromCSVStepTwoDescription; ImportStartingPanelHeaderLabel = CRMCasesResource.ImportStartingPanelHeader; ImportStartingPanelDescriptionLabel = CRMCasesResource.ImportStartingPanelDescription; ImportStartingPanelButtonLabel = CRMCasesResource.ImportStartingPanelButton; ImportImgSrc = WebImageSupplier.GetAbsoluteWebPath("import-cases.png", ProductEntryPoint.ID); var columnSelectorData = new[] { new { name = String.Empty, title = CRMContactResource.NoMatchSelect, isHeader = false }, new { name = "-1", title = CRMContactResource.DoNotImportThisField, isHeader = false }, new { name = String.Empty, title = CRMContactResource.GeneralInformation, isHeader = true }, new { name = "title", title = CRMCasesResource.CaseTitle, isHeader = false } }.ToList(); columnSelectorData.AddRange(Global.DaoFactory.GetCustomFieldDao().GetFieldsDescription(EntityType.Case).FindAll(customField => customField.FieldType == CustomFieldType.Date || customField.FieldType == CustomFieldType.TextField || customField.FieldType == CustomFieldType.TextArea || customField.FieldType == CustomFieldType.Heading) .ConvertAll(customField => new { name = "customField_" + customField.ID, title = customField.Label.HtmlEncode(), isHeader = customField.FieldType == CustomFieldType.Heading })); columnSelectorData.AddRange( new[] { new { name = String.Empty, title = CRMCasesResource.CasesParticipants, isHeader = true }, new { name = "member", title = String.Format("{0} {1}", CRMCasesResource.CasesParticipant, 1), isHeader = false }, new { name = "member", title = String.Format("{0} {1}", CRMCasesResource.CasesParticipant, 2), isHeader = false }, new { name = "member", title = String.Format("{0} {1}", CRMCasesResource.CasesParticipant, 3), isHeader = false }, new { name = "member", title = String.Format("{0} {1}", CRMCasesResource.CasesParticipant, 4), isHeader = false }, new { name = "member", title = String.Format("{0} {1}", CRMCasesResource.CasesParticipant, 5), isHeader = false }, new { name = "member", title = String.Format("{0} {1}", CRMCasesResource.CasesParticipant, 6), isHeader = false }, new { name = "member", title = String.Format("{0} {1}", CRMCasesResource.CasesParticipant, 7), isHeader = false }, new { name = "member", title = String.Format("{0} {1}", CRMCasesResource.CasesParticipant, 8), isHeader = false }, new { name = "member", title = String.Format("{0} {1}", CRMCasesResource.CasesParticipant, 9), isHeader = false }, new { name = "member", title = String.Format("{0} {1}", CRMCasesResource.CasesParticipant, 10), isHeader = false } }); columnSelectorData.AddRange( new[] { new { name = String.Empty, title = CRMCasesResource.CasesTag, isHeader = true }, new { name = "tag", title = CRMCasesResource.CasesTagList, isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMCasesResource.CasesTag, 1), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMCasesResource.CasesTag, 2), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMCasesResource.CasesTag, 3), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMCasesResource.CasesTag, 4), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMCasesResource.CasesTag, 5), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMCasesResource.CasesTag, 6), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMCasesResource.CasesTag, 7), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMCasesResource.CasesTag, 8), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMCasesResource.CasesTag, 9), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMCasesResource.CasesTag, 10), isHeader = false } } ); Page.RegisterInlineScript(String.Format(" var columnSelectorData = {0}; ", JavaScriptSerializer.Serialize(columnSelectorData)), onReady: false); var privatePanel = (PrivatePanel)Page.LoadControl(PrivatePanel.Location); privatePanel.CheckBoxLabel = CRMCasesResource.PrivatePanelCheckBoxLabel; privatePanel.IsPrivateItem = false; var usersWhoHasAccess = new List <string> { CustomNamingPeople.Substitute <CRMCommonResource>("CurrentUser") }; privatePanel.UsersWhoHasAccess = usersWhoHasAccess; privatePanel.DisabledUsers = new List <Guid> { SecurityContext.CurrentAccount.ID }; privatePanel.HideNotifyPanel = true; _phPrivatePanel.Controls.Add(privatePanel); }
protected void Page_Load(object sender, EventArgs e) { LinkText = CustomNamingPeople.Substitute <Resources.Resource>("InviteUsersToPortalLink").HtmlEncode(); }
public override string GetReportFileName() { return(CustomNamingPeople.Substitute <ReportResource>("ReportEmployeesWithoutActiveTasks_Title").HtmlEncode()); }
protected override IEnumerable <KeyValuePair <string, object> > GetClientVariables(HttpContext context) { return(new List <KeyValuePair <string, object> >(10) { RegisterResourceSet("ProjectsJSResource", ProjectsJSResource.ResourceManager), RegisterResourceSet("ProjectsFilterResource", ProjectsFilterResource.ResourceManager), RegisterResourceSet("ImportResource", ImportResource.ResourceManager), RegisterResourceSet("TasksResource", TaskResource.ResourceManager), RegisterResourceSet("CommonResource", ProjectsCommonResource.ResourceManager), RegisterResourceSet("TimeTrackingResource", TimeTrackingResource.ResourceManager), RegisterResourceSet("MessageResource", MessageResource.ResourceManager), RegisterResourceSet("ProjectResource", ProjectResource.ResourceManager), RegisterResourceSet("MilestoneResource", MilestoneResource.ResourceManager), RegisterResourceSet("ProjectTemplatesResource", ProjectTemplatesResource.ResourceManager), RegisterResourceSet("ProjectsFileResource", ProjectsFileResource.ResourceManager), RegisterResourceSet("ReportResource", ReportResource.ResourceManager), RegisterObject( new { ViewByDepartments = CustomNamingPeople.Substitute <ReportResource>("ViewByDepartments").HtmlEncode(), ViewByUsers = CustomNamingPeople.Substitute <ReportResource>("ViewByUsers").HtmlEncode(), AllDepartments = CustomNamingPeople.Substitute <ProjectsCommonResource>("AllDepartments").HtmlEncode(), AllUsers = CustomNamingPeople.Substitute <ProjectsCommonResource>("AllUsers").HtmlEncode(), PaymentStatus = new { NotChargeable = ResourceEnumConverter.ConvertToString(PaymentStatus.NotChargeable), NotBilled = ResourceEnumConverter.ConvertToString(PaymentStatus.NotBilled), Billed = ResourceEnumConverter.ConvertToString(PaymentStatus.Billed) }, GrammaticalResource.DayGenitiveSingular, GrammaticalResource.MonthNominative, GrammaticalResource.MonthGenitiveSingular, GrammaticalResource.MonthGenitivePlural, ProjectStatus = new[] { new { id = ProjectStatus.Open, title = ProjectsJSResource.StatusOpenProject }, new { id = ProjectStatus.Paused, title = ProjectsJSResource.StatusSuspendProject }, new { id = ProjectStatus.Closed, title = ProjectsJSResource.StatusClosedProject } }, StartModules = new[] { StartModule.TaskModule, StartModule.ProjectsModule, StartModule.DiscussionModule, StartModule.TimeTrackingModule }.Select(r => new { r.Page, r.StartModuleType, Title = r.Title() }), Statuses = CustomTaskStatus.GetDefaults().Select(r => new { id = r.Id, image = r.Image, imageType = r.ImageType, title = r.Title, description = r.Description, color = r.Color, statusType = r.StatusType, isDefault = r.IsDefault, available = r.Available, canChangeAvailable = r.CanChangeAvailable }) }) }); }
public object SendJoinInviteMail(string email) { try { if (!EnabledJoin) { throw new MethodAccessException("Method not available"); } if (!email.TestEmailRegex()) { throw new Exception(Resource.ErrorNotCorrectEmail); } var user = CoreContext.UserManager.GetUserByEmail(email); if (!user.ID.Equals(Constants.LostUser.ID)) { throw new Exception(CustomNamingPeople.Substitute <Resource>("ErrorEmailAlreadyExists")); } var tenant = CoreContext.TenantManager.GetCurrentTenant(); var settings = IPRestrictionsSettings.Load(); if (settings.Enable && !IPSecurity.IPSecurity.Verify(tenant)) { throw new Exception(Resource.ErrorAccessRestricted); } var trustedDomainSettings = StudioTrustedDomainSettings.Load(); var emplType = trustedDomainSettings.InviteUsersAsVisitors ? EmployeeType.Visitor : EmployeeType.User; var enableInviteUsers = TenantStatisticsProvider.GetUsersCount() < TenantExtra.GetTenantQuota().ActiveUsers; if (!enableInviteUsers) { emplType = EmployeeType.Visitor; } switch (tenant.TrustedDomainsType) { case TenantTrustedDomainsType.Custom: { var address = new MailAddress(email); if ( tenant.TrustedDomains.Any( d => address.Address.EndsWith("@" + d, StringComparison.InvariantCultureIgnoreCase))) { StudioNotifyService.Instance.SendJoinMsg(email, emplType); MessageService.Send(HttpContext.Current.Request, MessageInitiator.System, MessageAction.SentInviteInstructions, email); return(new { Status = 1, Message = Resource.FinishInviteJoinEmailMessage }); } throw new Exception(Resource.ErrorEmailDomainNotAllowed); } case TenantTrustedDomainsType.All: { StudioNotifyService.Instance.SendJoinMsg(email, emplType); MessageService.Send(HttpContext.Current.Request, MessageInitiator.System, MessageAction.SentInviteInstructions, email); return(new { Status = 1, Message = Resource.FinishInviteJoinEmailMessage }); } default: throw new Exception(Resource.ErrorNotCorrectEmail); } } catch (FormatException) { return(new { Status = 0, Message = Resource.ErrorNotCorrectEmail }); } catch (Exception e) { return(new { Status = 0, Message = e.Message.HtmlEncode() }); } }
protected void InitForContacts() { StartImportLabel = CRMContactResource.StartImport; ImportFromCSVStepOneHeaderLabel = CRMContactResource.ImportFromCSVStepOneHeader; ImportFromCSVStepTwoHeaderLabel = CRMContactResource.ImportFromCSVStepTwoHeader; ImportFromCSVStepOneDescriptionLabel = CRMContactResource.ImportFromCSVStepOneDescription; ImportFromCSVStepTwoDescriptionLabel = CRMContactResource.ImportFromCSVStepTwoDescription; ImportStartingPanelHeaderLabel = CRMContactResource.ImportStartingPanelHeader; ImportStartingPanelDescriptionLabel = CRMContactResource.ImportStartingPanelDescription; ImportStartingPanelButtonLabel = CRMContactResource.ImportStartingPanelButton; ImportImgSrc = WebImageSupplier.GetAbsoluteWebPath("import_contacts.png", ProductEntryPoint.ID); var columnSelectorData = new[] { new { name = String.Empty, title = CRMContactResource.NoMatchSelect, isHeader = false }, new { name = "-1", title = CRMContactResource.DoNotImportThisField, isHeader = false }, new { name = String.Empty, title = CRMContactResource.GeneralInformation, isHeader = true }, new { name = "firstName", title = CRMContactResource.FirstName, isHeader = false }, new { name = "lastName", title = CRMContactResource.LastName, isHeader = false }, new { name = "title", title = CRMContactResource.JobTitle, isHeader = false }, new { name = "companyName", title = CRMContactResource.CompanyName, isHeader = false }, new { name = "notes", title = CRMContactResource.About, isHeader = false } }.ToList(); foreach (ContactInfoType infoTypeEnum in Enum.GetValues(typeof(ContactInfoType))) { foreach (Enum categoryEnum in Enum.GetValues(ContactInfo.GetCategory(infoTypeEnum))) { var localName = String.Format("contactInfo_{0}_{1}", infoTypeEnum, Convert.ToInt32(categoryEnum)); var localTitle = String.Format("{1} ({0})", categoryEnum.ToLocalizedString().ToLower(), infoTypeEnum.ToLocalizedString()); if (infoTypeEnum == ContactInfoType.Address) { foreach (AddressPart addressPartEnum in Enum.GetValues(typeof(AddressPart))) { columnSelectorData.Add(new { name = String.Format(localName + "_{0}", addressPartEnum), title = String.Format(localTitle + " {0}", addressPartEnum.ToLocalizedString().ToLower()), isHeader = false }); } } else { columnSelectorData.Add(new { name = localName, title = localTitle, isHeader = false }); } } } columnSelectorData.AddRange(Global.DaoFactory.GetCustomFieldDao().GetFieldsDescription(EntityType.Contact).FindAll(customField => customField.FieldType == CustomFieldType.TextField || customField.FieldType == CustomFieldType.TextArea || customField.FieldType == CustomFieldType.Heading) .ConvertAll(customField => new { name = "customField_" + customField.ID, title = customField.Label.HtmlEncode(), isHeader = customField.FieldType == CustomFieldType.Heading })); columnSelectorData.AddRange( new[] { new { name = String.Empty, title = CRMContactResource.ContactTags, isHeader = true }, new { name = "tag", title = CRMContactResource.ContactTagList, isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMContactResource.ContactTag, 1), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMContactResource.ContactTag, 2), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMContactResource.ContactTag, 3), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMContactResource.ContactTag, 4), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMContactResource.ContactTag, 5), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMContactResource.ContactTag, 6), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMContactResource.ContactTag, 7), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMContactResource.ContactTag, 8), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMContactResource.ContactTag, 9), isHeader = false }, new { name = "tag", title = String.Format("{0} {1}", CRMContactResource.ContactTag, 10), isHeader = false }, }.ToList() ); Page.ClientScript.RegisterClientScriptBlock(GetType(), Guid.NewGuid().ToString(), String.Format(" var {0} = {1}; ", "columnSelectorData", JavaScriptSerializer.Serialize(columnSelectorData)), true); var privatePanel = (PrivatePanel)Page.LoadControl(PrivatePanel.Location); privatePanel.CheckBoxLabel = CRMContactResource.PrivatePanelCheckBoxLabelForContact; privatePanel.IsPrivateItem = false; var usersWhoHasAccess = new List <string> { CustomNamingPeople.Substitute <CRMCommonResource>("CurrentUser") }; privatePanel.UsersWhoHasAccess = usersWhoHasAccess; privatePanel.DisabledUsers = new List <Guid> { SecurityContext.CurrentAccount.ID }; privatePanel.HideNotifyPanel = true; _phPrivatePanel.Controls.Add(privatePanel); }