private List <ITagValue> CreateArgs(string region, string url) { var args = new List <ITagValue>() { new TagValue(Tags.RegionName, TransferResourceHelper.GetRegionDescription(region)), new TagValue(Tags.PortalUrl, url) }; if (!string.IsNullOrEmpty(url)) { args.Add(new TagValue(CommonTags.VirtualRootPath, url)); args.Add(new TagValue(CommonTags.ProfileUrl, url + CommonLinkUtility.GetMyStaff())); args.Add(new TagValue(CommonTags.LetterLogo, TenantLogoManager.GetLogoDark(true))); } return(args); }
public static string GetPartUrl(PersonalPart part) { switch (part) { case PersonalPart.Settings: return(CommonLinkUtility.GetAdministration(ManagementType.General)); case PersonalPart.Backup: return(CommonLinkUtility.GetAdministration(ManagementType.Account)); case PersonalPart.Profile: return(CommonLinkUtility.GetMyStaff()); } return(CommonLinkUtility.GetDefault()); }
private static void BeforeTransferRequest(NotifyEngine sender, NotifyRequest request) { var aid = Guid.Empty; var aname = string.Empty; if (SecurityContext.IsAuthenticated) { aid = SecurityContext.CurrentAccount.ID; if (CoreContext.UserManager.UserExists(aid)) { aname = CoreContext.UserManager.GetUsers(aid).DisplayUserName(false) .Replace(">", ">") .Replace("<", "<"); } } IProduct product; IModule module; CommonLinkUtility.GetLocationByRequest(out product, out module); if (product == null && CallContext.GetData("asc.web.product_id") != null) { product = WebItemManager.Instance[(Guid)CallContext.GetData("asc.web.product_id")] as IProduct; } var logoText = TenantLogoManager.GetLogoText(); var logoTextTM = String.Equals(logoText, TenantWhiteLabelSettings.DefaultLogo, StringComparison.Ordinal) ? String.Format("{0}™", logoText.ToUpper()) : logoText; request.Arguments.Add(new TagValue(CommonTags.AuthorID, aid)); request.Arguments.Add(new TagValue(CommonTags.AuthorName, aname)); request.Arguments.Add(new TagValue(CommonTags.AuthorUrl, CommonLinkUtility.GetFullAbsolutePath(CommonLinkUtility.GetUserProfile(aid)))); request.Arguments.Add(new TagValue(CommonTags.VirtualRootPath, CommonLinkUtility.GetFullAbsolutePath("~").TrimEnd('/'))); request.Arguments.Add(new TagValue(CommonTags.ProductID, product != null ? product.ID : Guid.Empty)); request.Arguments.Add(new TagValue(CommonTags.ModuleID, module != null ? module.ID : Guid.Empty)); request.Arguments.Add(new TagValue(CommonTags.ProductUrl, CommonLinkUtility.GetFullAbsolutePath(product != null ? product.StartURL : "~"))); request.Arguments.Add(new TagValue(CommonTags.DateTime, TenantUtil.DateTimeNow())); request.Arguments.Add(new TagValue(CommonTags.Helper, new PatternHelper())); request.Arguments.Add(new TagValue(CommonTags.RecipientID, Context.SYS_RECIPIENT_ID)); request.Arguments.Add(new TagValue(CommonTags.RecipientSubscriptionConfigURL, CommonLinkUtility.GetMyStaff())); request.Arguments.Add(new TagValue("Partner", GetPartnerInfo())); request.Arguments.Add(new TagValue(Constants.LetterLogo, CommonLinkUtility.GetFullAbsolutePath(TenantLogoManager.GetLogoDark(true)))); request.Arguments.Add(new TagValue(Constants.LetterLogoText, logoText)); request.Arguments.Add(new TagValue(Constants.LetterLogoTextTM, logoTextTM)); request.Arguments.Add(new TagValue(Constants.MailWhiteLabelSettings, MailWhiteLabelSettings.Instance)); if (!request.Arguments.Any(x => CommonTags.SendFrom.Equals(x.Tag))) { request.Arguments.Add(new TagValue(CommonTags.SendFrom, CoreContext.TenantManager.GetCurrentTenant().Name)); } }
private UserInfo SyncLDAPUser(UserInfo ldapUserInfo, List <UserInfo> ldapUsers, out LdapChangeCollection changes, bool onlyGetChanges = false) { UserInfo result; changes = new LdapChangeCollection(); UserInfo userToUpdate; var userBySid = CoreContext.UserManager.GetUserBySid(ldapUserInfo.Sid); if (Equals(userBySid, Constants.LostUser)) { var userByEmail = CoreContext.UserManager.GetUserByEmail(ldapUserInfo.Email); if (Equals(userByEmail, Constants.LostUser)) { if (ldapUserInfo.Status != EmployeeStatus.Active) { if (onlyGetChanges) { changes.SetSkipUserChange(ldapUserInfo); } _log.DebugFormat("SyncUserLDAP(SID: {0}, Username: '******') ADD failed: Status is {2}", ldapUserInfo.Sid, ldapUserInfo.UserName, Enum.GetName(typeof(EmployeeStatus), ldapUserInfo.Status)); return(Constants.LostUser); } if (!TryAddLDAPUser(ldapUserInfo, onlyGetChanges, out result)) { if (onlyGetChanges) { changes.SetSkipUserChange(ldapUserInfo); } return(Constants.LostUser); } if (onlyGetChanges) { changes.SetAddUserChange(result, _log); } if (!onlyGetChanges && LdapSettings.Load().SendWelcomeEmail&& (ldapUserInfo.ActivationStatus != EmployeeActivationStatus.AutoGenerated)) { var client = LdapNotifyHelper.StudioNotifyClient; var confirmLink = CommonLinkUtility.GetConfirmationUrl(ldapUserInfo.Email, ConfirmType.EmailActivation); client.SendNoticeToAsync( NotifyConstants.ActionLdapActivation, null, new[] { new DirectRecipient(ldapUserInfo.Email, null, new[] { ldapUserInfo.Email }, false) }, new[] { ASC.Core.Configuration.Constants.NotifyEMailSenderSysName }, null, new TagValue(NotifyConstants.TagUserName, ldapUserInfo.DisplayUserName()), new TagValue(NotifyConstants.TagUserEmail, ldapUserInfo.Email), new TagValue(NotifyConstants.TagMyStaffLink, CommonLinkUtility.GetFullAbsolutePath(CommonLinkUtility.GetMyStaff())), NotifyConstants.TagGreenButton(Resource.NotifyButtonJoin, confirmLink), new TagValue(NotifyCommonTags.WithoutUnsubscribe, true)); } return(result); } if (userByEmail.IsLDAP()) { if (ldapUsers == null || ldapUsers.Any(u => u.Sid.Equals(userByEmail.Sid))) { if (onlyGetChanges) { changes.SetSkipUserChange(ldapUserInfo); } _log.DebugFormat( "SyncUserLDAP(SID: {0}, Username: '******') ADD failed: Another ldap user with email '{2}' already exists", ldapUserInfo.Sid, ldapUserInfo.UserName, ldapUserInfo.Email); return(Constants.LostUser); } } userToUpdate = userByEmail; } else { userToUpdate = userBySid; } UpdateLdapUserContacts(ldapUserInfo, userToUpdate.Contacts); if (!NeedUpdateUser(userToUpdate, ldapUserInfo)) { _log.DebugFormat("SyncUserLDAP(SID: {0}, Username: '******') No need to update, skipping", ldapUserInfo.Sid, ldapUserInfo.UserName); if (onlyGetChanges) { changes.SetNoneUserChange(ldapUserInfo); } return(userBySid); } _log.DebugFormat("SyncUserLDAP(SID: {0}, Username: '******') Userinfo is outdated, updating", ldapUserInfo.Sid, ldapUserInfo.UserName); if (!TryUpdateUserWithLDAPInfo(userToUpdate, ldapUserInfo, onlyGetChanges, out result)) { if (onlyGetChanges) { changes.SetSkipUserChange(ldapUserInfo); } return(Constants.LostUser); } if (onlyGetChanges) { changes.SetUpdateUserChange(ldapUserInfo, result, _log); } return(result); }
private static void BeforeTransferRequest(NotifyEngine sender, NotifyRequest request) { var aid = Guid.Empty; var aname = string.Empty; var tenant = CoreContext.TenantManager.GetCurrentTenant(); if (SecurityContext.IsAuthenticated) { aid = SecurityContext.CurrentAccount.ID; var user = CoreContext.UserManager.GetUsers(tenant.TenantId, aid); if (CoreContext.UserManager.UserExists(user)) { aname = user.DisplayUserName(false) .Replace(">", ">") .Replace("<", "<"); } } //TODOL httpContext CommonLinkUtility.GetLocationByRequest(tenant, out var product, out var module, null); if (product == null && CallContext.GetData("asc.web.product_id") != null) { product = WebItemManager.Instance[(Guid)CallContext.GetData("asc.web.product_id")] as IProduct; } var logoText = TenantWhiteLabelSettings.DefaultLogoText; if ((TenantExtra.Enterprise || CoreContext.Configuration.CustomMode) && !MailWhiteLabelSettings.Instance.IsDefault) { logoText = TenantLogoManager.GetLogoText(); } request.Arguments.Add(new TagValue(CommonTags.AuthorID, aid)); request.Arguments.Add(new TagValue(CommonTags.AuthorName, aname)); request.Arguments.Add(new TagValue(CommonTags.AuthorUrl, CommonLinkUtility.GetFullAbsolutePath(CommonLinkUtility.GetUserProfile(tenant.TenantId, aid)))); request.Arguments.Add(new TagValue(CommonTags.VirtualRootPath, CommonLinkUtility.GetFullAbsolutePath("~").TrimEnd('/'))); request.Arguments.Add(new TagValue(CommonTags.ProductID, product != null ? product.ID : Guid.Empty)); request.Arguments.Add(new TagValue(CommonTags.ModuleID, module != null ? module.ID : Guid.Empty)); request.Arguments.Add(new TagValue(CommonTags.ProductUrl, CommonLinkUtility.GetFullAbsolutePath(product != null ? product.StartURL : "~"))); request.Arguments.Add(new TagValue(CommonTags.DateTime, TenantUtil.DateTimeNow())); request.Arguments.Add(new TagValue(CommonTags.RecipientID, Context.SYS_RECIPIENT_ID)); request.Arguments.Add(new TagValue(CommonTags.ProfileUrl, CommonLinkUtility.GetFullAbsolutePath(CommonLinkUtility.GetMyStaff()))); request.Arguments.Add(new TagValue(CommonTags.HelpLink, CommonLinkUtility.GetHelpLink(false))); request.Arguments.Add(new TagValue(CommonTags.LetterLogoText, logoText)); request.Arguments.Add(new TagValue(CommonTags.MailWhiteLabelSettings, MailWhiteLabelSettings.Instance)); if (!request.Arguments.Any(x => CommonTags.SendFrom.Equals(x.Tag))) { request.Arguments.Add(new TagValue(CommonTags.SendFrom, tenant.Name)); } AddLetterLogo(request); }
private static string GetMyStaffLink() { return(CommonLinkUtility.GetFullAbsolutePath(CommonLinkUtility.GetMyStaff())); }
protected void Page_Load(object sender, EventArgs e) { if (SecurityContext.DemoMode || (CoreContext.TenantManager.GetCurrentTenant().Public&& !SecurityContext.CurrentAccount.IsAuthenticated)) { Response.Redirect("~/default.aspx"); } (this.Master as IStudioMaster).DisabledSidePanel = true; var _userInfo = CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID); var type = Request["type"] ?? ""; var myToolsItems = WebItemManager.Instance.GetItems(WebZoneType.MyTools); IRenderMyTools myToolsRender = null; foreach (var item in myToolsItems) { myToolsRender = WebItemManager.Instance[item.ID] as IRenderMyTools; if (myToolsRender != null && String.Equals(myToolsRender.ParameterName, type, StringComparison.InvariantCultureIgnoreCase)) { break; } myToolsRender = null; } #region top panel bool isDefault; var enumType = typeof(MyStaffType).TryParseEnum <MyStaffType>(Request["type"] ?? "", MyStaffType.General, out isDefault); if (String.IsNullOrEmpty(Request["type"])) { isDefault = false; } //top panel ((StudioTemplate)this.Master).TopNavigationPanel.CustomTitle = Resources.Resource.MyStaff; ((StudioTemplate)this.Master).TopNavigationPanel.CustomTitleURL = CommonLinkUtility.GetMyStaff(MyStaffType.General); ((StudioTemplate)this.Master).TopNavigationPanel.CustomTitleIconURL = WebImageSupplier.GetAbsoluteWebPath("staff.gif"); //profile ((StudioTemplate)this.Master).TopNavigationPanel.NavigationItems.Add(new NavigationItem() { Name = Resources.Resource.Profile, URL = CommonLinkUtility.GetMyStaff(MyStaffType.General), Selected = (enumType == MyStaffType.General && !isDefault) }); //activity ((StudioTemplate)this.Master).TopNavigationPanel.NavigationItems.Add(new NavigationItem() { Name = Resources.Resource.RecentActivity, URL = CommonLinkUtility.GetMyStaff(MyStaffType.Activity), Selected = (enumType == MyStaffType.Activity) }); //subscriptions ((StudioTemplate)this.Master).TopNavigationPanel.NavigationItems.Add(new NavigationItem() { Name = Resources.Resource.Subscriptions, URL = CommonLinkUtility.GetMyStaff(MyStaffType.Subscriptions), Selected = (enumType == MyStaffType.Subscriptions) }); //Customisation ((StudioTemplate)this.Master).TopNavigationPanel.NavigationItems.Add(new NavigationItem() { Name = Resources.Resource.Customization, URL = CommonLinkUtility.GetMyStaff(MyStaffType.Customization), Selected = (enumType == MyStaffType.Customization) }); foreach (var item in myToolsItems) { var render = WebItemManager.Instance[item.ID] as IRenderMyTools; if (render == null) { continue; } ((StudioTemplate)this.Master).TopNavigationPanel.NavigationItems.Add(new NavigationItem() { Name = render.TabName, URL = CommonLinkUtility.GetMyStaff(render.ParameterName), Selected = String.Equals(Request["type"] ?? "", render.ParameterName, StringComparison.InvariantCultureIgnoreCase) }); } #endregion if (String.Equals(type, MyStaffType.Activity.ToString(), StringComparison.InvariantCultureIgnoreCase)) { _myStaffContainer.BreadCrumbs.Add(new ASC.Web.Controls.BreadCrumb() { Caption = Resources.Resource.RecentActivity }); ClientScriptManager cs = Page.ClientScript; StringBuilder helpcstext = new StringBuilder(); helpcstext.Append("<script type=text/javascript> var header = jq('.mainContainerClass>.containerHeaderBlock table td div').last();"); helpcstext.Append("header.css('float', 'left');"); helpcstext.Append("header.after('<div class=\"HelpCenterSwitcher title big\" id=\"QuestionForHelpActivityPortal\" title=\"" + String.Format(Resources.Resource.HelpQuestionActivityPortal) + "\"></div>');"); helpcstext.Append("jq('#QuestionForHelpActivityPortal').click(function() {jq(this).helper({ BlockHelperID: 'AnswerForHelpActivityPortal' });}); </"); helpcstext.Append("script>"); cs.RegisterStartupScript(this.GetType(), "HelpScript", helpcstext.ToString()); StringBuilder helptext = new StringBuilder(); helptext.Append("<div id='AnswerForHelpActivityPortal' class='popup_helper'>"); helptext.Append("<p>" + String.Format(Resources.Resource.HelpAnswerActivityPortal, "<br />", "<b>", "</b>") + "</p>"); helptext.Append("</div>"); _contentHolder.Controls.Add(new Literal() { Text = helptext.ToString() }); bool isFirst = true; foreach (var product in WebItemManager.Instance.GetItems(WebZoneType.All).OfType <IProduct>()) { if (product.Context != null && product.Context.UserActivityControlLoader != null) { StringBuilder sb = new StringBuilder(); sb.Append("<div id='studio_product_activityBox_" + product.ID + "' class='borderBase tintMedium clearFix' style='border-left:none; border-right:none; margin-top:-1px; padding:10px;'>"); sb.Append("<div class='headerBase' style='float:left; cursor:pointer;' onclick=\"StudioManager.ToggleProductActivity('" + product.ID + "');\">"); string logoURL = product.GetIconAbsoluteURL(); if (!String.IsNullOrEmpty(logoURL)) { sb.Append("<img alt='' style='margin-right:5px;' align='absmiddle' src='" + logoURL + "'/>"); } sb.Append(product.Name.HtmlEncode()); sb.Append("<img alt='' align='absmiddle' id='studio_activityProductState_" + product.ID + "' style='margin-left:15px;' src='" + WebImageSupplier.GetAbsoluteWebPath(isFirst ? "collapse_down_dark.png" : "collapse_right_dark.png") + "'/>"); sb.Append("</div>"); sb.Append("</div>"); sb.Append("<div id=\"studio_product_activity_" + product.ID + "\" style=\"padding-left:40px; " + (isFirst ? "" : "display:none;") + " padding-top:20px;\">"); _contentHolder.Controls.Add(new Literal() { Text = sb.ToString() }); var activityControl = product.Context.UserActivityControlLoader.LoadControl(_userInfo.ID); _contentHolder.Controls.Add(activityControl); sb = new StringBuilder(); sb.Append("</div>"); _contentHolder.Controls.Add(new Literal() { Text = sb.ToString() }); isFirst = false; } } } else if (String.Equals(type, MyStaffType.Subscriptions.ToString(), StringComparison.InvariantCultureIgnoreCase)) { _myStaffContainer.BreadCrumbs.Add(new ASC.Web.Controls.BreadCrumb() { Caption = Resources.Resource.Subscriptions }); var userSubscriptions = LoadControl(UserSubscriptions.Location) as UserSubscriptions; _contentHolder.Controls.Add(userSubscriptions); } else if (String.Equals(type, MyStaffType.Customization.ToString(), StringComparison.InvariantCultureIgnoreCase)) { _myStaffContainer.BreadCrumbs.Add(new ASC.Web.Controls.BreadCrumb() { Caption = Resources.Resource.Customization }); var userCustomisationControl = LoadControl(UserCustomisationControl.Location) as UserCustomisationControl; _contentHolder.Controls.Add(userCustomisationControl); } else if (myToolsRender != null) { _myStaffContainer.BreadCrumbs.Add(new ASC.Web.Controls.BreadCrumb() { Caption = myToolsRender.TabName }); var control = myToolsRender.LoadMyToolsControl(this); if (control is IFullScreenControl) { _myStaffContainer.Visible = false; (this.Master as IStudioMaster).ContentHolder.Controls.Add(control); } else { _contentHolder.Controls.Add(control); } } else { _myStaffContainer.BreadCrumbs.Add(new ASC.Web.Controls.BreadCrumb() { Caption = _userInfo.DisplayUserName(false) }); var userProfileControl = LoadControl(UserProfileControl.Location) as UserProfileControl; userProfileControl.UserInfo = _userInfo; userProfileControl.MyStaffMode = true; _contentHolder.Controls.Add(userProfileControl); } this.Title = HeaderStringHelper.GetPageTitle(Resources.Resource.MyStaff, null, null); }
private static string GetMyStaffLink() { return(CommonLinkUtility.GetMyStaff(MyStaffType.General)); }
static object GetRecipientSubscriptionConfigURL() { return(CommonLinkUtility.GetFullAbsolutePath( CommonLinkUtility.GetMyStaff(MyStaffType.Subscriptions))); }