public override FileUploadResult ProcessUpload(HttpContext context) { if (context.Request.Files.Count == 0) { return(Error("No files.")); } if (!TenantExtra.GetTenantQuota().HasBackup) { return(Error("Backup not allowed.")); } if (!SecurityContext.CheckPermissions(SecutiryConstants.EditPortalSettings)) { return(Error("Access denied.")); } HttpPostedFile file = context.Request.Files[0]; if (file.ContentLength <= 0 || file.ContentLength > MaxBackupFileSize) { return(Error("File size must be greater than 0 and less than {0} bytes", MaxBackupFileSize)); } var filePath = GetFilePath(); file.SaveAs(filePath); return(Success(filePath)); }
public string SendNotificationToChange(string userId) { var user = CoreContext.UserManager.GetUsers( string.IsNullOrEmpty(userId) ? SecurityContext.CurrentAccount.ID : new Guid(userId)); var canChange = user.IsMe() || SecurityContext.CheckPermissions(new UserSecurityProvider(user.ID), ASC.Core.Users.Constants.Action_EditUser); if (!canChange) { throw new SecurityAccessDeniedException(Resource.ErrorAccessDenied); } user.MobilePhoneActivationStatus = MobilePhoneActivationStatus.NotActivated; CoreContext.UserManager.SaveUserInfo(user); if (user.IsMe()) { return(CommonLinkUtility.GetConfirmationUrl(user.Email, ConfirmType.PhoneActivation)); } StudioNotifyService.Instance.SendMsgMobilePhoneChange(user); return(string.Empty); }
private void AddStudioItems() { if (SecurityContext.IsAuthenticated && !(Page is Wizard) && !(Page is confirm)) { //all products this.NavigationItems.Add(new NavigationItem() { Name = Resources.UserControlsCommonResource.AllProductsTitle, URL = CommonLinkUtility.GetDefault(), //Selected = Page is ASC.Web.Studio._Default }); //settings if (SecurityContext.CheckPermissions(ASC.Core.Users.Constants.Action_AddRemoveUser, ASC.Core.Users.Constants.Action_EditUser, ASC.Core.Users.Constants.Action_EditGroups)) { this.NavigationItems.Add(new NavigationItem() { //Selected = UserOnlineManager.Instance.IsAdministrationPage(), URL = CommonLinkUtility.GetAdministration(ManagementType.General), Name = Resources.Resource.Administration }); } } }
private static void UpdateDepartments(IEnumerable <Guid> department, UserInfo user) { if (SecurityContext.CheckPermissions(Core.Users.Constants.Action_EditGroups)) { if (department != null) { var groups = CoreContext.UserManager.GetUserGroups(user.ID); foreach (var groupInfo in groups) { CoreContext.UserManager.RemoveUserFromGroup(user.ID, groupInfo.ID); user.Department = ""; } foreach (var guid in department) { var userDepartment = CoreContext.GroupManager.GetGroupInfo(guid); if (userDepartment != Core.Users.Constants.LostGroupInfo) { user.Department = userDepartment.Name; user.Title = ""; CoreContext.UserManager.AddUserIntoGroup(user.ID, guid); } } } } }
protected void Page_Load(object sender, EventArgs e) { if (!SecurityContext.CheckPermissions(Constants.Action_AddRemoveUser)) { Response.Redirect(CommonLinkUtility.GetDefault()); } var tariff = (ASC.Web.Studio.UserControls.Management.TariffLimitExceed)LoadControl(Studio.UserControls.Management.TariffLimitExceed.Location); Tariff.Controls.Add(tariff); var quota = TenantExtra.GetTenantQuota(); PeopleLimit = Math.Min(quota.ActiveUsers - TenantStatisticsProvider.GetUsersCount(), 0); FreeTariff = (quota.Free || quota.NonProfit || quota.Trial) && !quota.Open; HelpLink = CommonLinkUtility.GetHelpLink(); icon.Options.IsPopup = true; icon.Options.PopupContainerCssClass = "okcss popupContainerClass"; icon.Options.OnCancelButtonClick = "ASC.People.Import.hideInfoWindow('okcss');"; limitPanel.Options.IsPopup = true; limitPanel.Options.OnCancelButtonClick = "ASC.People.Import.hideImportUserLimitPanel();"; Utility.RegisterTypeForAjax(GetType()); RegisterScript(); }
public static bool CheckPermissions(ISecurityObjectId objectId, ISecurityObjectProvider securityObjProvider, params IAction[] actions) { if (IsAdministrator()) { return(true); } return(SecurityContext.CheckPermissions(objectId, securityObjProvider, actions)); }
public AllowedActions(UserInfo userInfo) { var isOwner = userInfo.IsOwner(); var isMe = userInfo.IsMe(); AllowAddOrDelete = SecurityContext.CheckPermissions(Constants.Action_AddRemoveUser) && (!isOwner || isMe); AllowEdit = SecurityContext.CheckPermissions(new UserSecurityProvider(userInfo.ID), Constants.Action_EditUser) && (!isOwner || isMe); }
public bool CheckPermissions(Guid shortcutID, string currentUrl) { if (shortcutID.Equals(new Guid("499FCB8B-F715-45b2-A112-E99826F4B401"))) //News { return(SecurityContext.CheckPermissions(NewsConst.Action_Edit)); } return(true); }
private void InitUserTypeSelector() { var canAddUser = TenantStatisticsProvider.GetUsersCount() < TenantExtra.GetTenantQuota().ActiveUsers; var canEditType = SecurityContext.CheckPermissions(Constants.Action_AddRemoveUser) && (!(ProfileIsAdmin || ProfileIsAnyModuleAdmin) || !IsPageEditProfileFlag); var isVisitorType = (ProfileIsMe && !IsPageEditProfileFlag) ? Request["type"] == "guest" : ProfileIsVisitor; if (canAddUser) { if (isVisitorType && !canEditType) { UserTypeSelectorClass = "disabled"; UserTypeSelectorGuestItemClass = "active"; UserTypeSelectorUserItemClass = "disabled"; } else { if (canEditType) { UserTypeSelectorClass = ""; UserTypeSelectorGuestItemClass = isVisitorType ? "active" : ""; UserTypeSelectorUserItemClass = isVisitorType ? "" : "active"; } else { UserTypeSelectorClass = "disabled"; UserTypeSelectorGuestItemClass = "disabled"; UserTypeSelectorUserItemClass = "active"; } } } else { if (isVisitorType || !IsPageEditProfileFlag) { UserTypeSelectorClass = canEditType ? "" : "disabled"; UserTypeSelectorGuestItemClass = "active"; UserTypeSelectorUserItemClass = "disabled"; } else { if (canEditType) { UserTypeSelectorClass = ""; UserTypeSelectorGuestItemClass = isVisitorType ? "active" : ""; UserTypeSelectorUserItemClass = isVisitorType ? "" : "active"; } else { UserTypeSelectorClass = "disabled"; UserTypeSelectorGuestItemClass = "disabled"; UserTypeSelectorUserItemClass = "active"; } } } }
protected void Page_Load(object sender, EventArgs e) { IsPageEditProfileFlag = (Request["action"] == "edit"); ProfileHelper = new ProfileHelper(Request["user"]); UserInfo = ProfileHelper.UserInfo; if ((IsPageEditProfileFlag && !(UserInfo.IsMe() || CanEdit())) || (!IsPageEditProfileFlag && !IsAdmin())) { Response.Redirect("~/products/people/", true); } Page.RegisterBodyScripts("~/usercontrols/users/userprofile/js/userprofileeditcontrol.js"); Page.RegisterStyle("~/usercontrols/users/userprofile/css/profileeditcontrol_style.less"); CanAddUser = TenantStatisticsProvider.GetUsersCount() < TenantExtra.GetTenantQuota().ActiveUsers; CanEditType = SecurityContext.CheckPermissions(Constants.Action_AddRemoveUser) && (!(UserInfo.IsAdmin() || IsModuleAdmin()) || !IsPageEditProfileFlag); if (IsPageEditProfileFlag) { Phone = UserInfo.MobilePhone.HtmlEncode(); ProfileGender = UserInfo.Sex.HasValue ? UserInfo.Sex.Value ? "1" : "0" : "-1"; Departments = CoreContext.UserManager.GetUserGroups(UserInfo.ID); SocContacts = ProfileHelper.Contacts; OtherContacts = new List <MyContact>(); OtherContacts.AddRange(ProfileHelper.Emails); OtherContacts.AddRange(ProfileHelper.Messengers); OtherContacts.AddRange(ProfileHelper.Phones); var deps = Departments.ToList(); var script = String.Format( @"<script type='text/javascript'> var departmentsList = {0}; var socContacts = {1}; var otherContacts = {2}; var userId= {3}; </script>", JsonConvert.SerializeObject(deps.ConvertAll(item => new { id = item.ID, title = item.Name.HtmlEncode() })), JsonConvert.SerializeObject(SocContacts), JsonConvert.SerializeObject(OtherContacts), JsonConvert.SerializeObject(UserInfo.ID)); Page.ClientScript.RegisterStartupScript(GetType(), Guid.NewGuid().ToString(), script); } var photoControl = (LoadPhotoControl)LoadControl(LoadPhotoControl.Location); loadPhotoWindow.Controls.Add(photoControl); Page.Title = HeaderStringHelper.GetPageTitle(GetTitle()); }
public static string GetCreateContentPageUrl() { if (SecurityContext.CheckPermissions(NewsConst.Action_Add)) { return(FeedUrls.EditNewsUrl); } return(null); }
public static string GetCreateContentPageUrl() { if (SecurityContext.CheckPermissions(new PersonalBlogSecObject(CoreContext.UserManager.GetUsers( SecurityContext.CurrentAccount.ID)), Constants.Action_AddPost)) { return(VirtualPathUtility.ToAbsolute(Constants.BaseVirtualPath + "AddBlog.aspx")); } return(null); }
protected override void OnPreInit(EventArgs e) { base.OnPreInit(e); if (!SecurityContext.CheckPermissions(SecutiryConstants.EditPortalSettings)) { Response.Redirect(VirtualPathUtility.ToAbsolute("~/")); return; } }
public bool CheckPermissions(Guid shortcutID, string currentUrl) { if (shortcutID.Equals(new Guid("98DB8D88-EDF2-4f82-B3AF-B95E87E3EE5C")) || shortcutID.Equals(new Guid("20673DF0-665E-4fc8-9B44-D48B2A783508"))) { return(SecurityContext.CheckPermissions(new PersonalBlogSecObject(CoreContext.UserManager.GetUsers( SecurityContext.CurrentAccount.ID)), Constants.Action_AddPost)); } return(false); }
//new user private static void WriteNewUserAction(SideActions actionsControl) { if (SecurityContext.CheckPermissions(Constants.Action_AddRemoveUser)) { actionsControl.Controls.Add(new NavigationItem { Name = CustomNamingPeople.Substitute <Resources.Resource>("RegistryNewEmployeeButton"), URL = "javascript:StudioUserMaker.ShowNewUserDialog();", IsPromo = (SetupInfo.WorkMode == WorkMode.Promo) }); } }
protected override void OnPreInit(EventArgs e) { base.OnPreInit(e); if (CoreContext.Configuration.YourDocs) { Context.Response.Redirect(CommonLinkUtility.FilesBaseAbsolutePath); } if (!SecurityContext.CheckPermissions(SecutiryConstants.EditPortalSettings)) { Response.Redirect(VirtualPathUtility.ToAbsolute("~/")); } }
protected override void OnPreInit(EventArgs e) { base.OnPreInit(e); if (CoreContext.Configuration.Personal) { Context.Response.Redirect(FilesLinkUtility.FilesBaseAbsolutePath); } if (!SecurityContext.CheckPermissions(SecutiryConstants.EditPortalSettings)) { Response.Redirect(CommonLinkUtility.GetDefault()); } TenantAccess = TenantAccessSettings.Load(); }
//new department private static void WriteAddDepartmentAction(Page page, SideActions actionsControl) { if (SecurityContext.CheckPermissions(ASC.Core.Users.Constants.Action_EditGroups)) { var depAddControl = (DepartmentAdd)page.LoadControl(DepartmentAdd.Location); depAddControl.ProductID = CommonLinkUtility.GetProductID(); actionsControl.Controls.Add(depAddControl); actionsControl.Controls.Add(new NavigationItem() { Name = CustomNamingPeople.Substitute <Resources.Resource>("RegistryNewDepartmentButton"), URL = "javascript:StudioManagement.AddDepartmentOpenDialog();", IsPromo = (SetupInfo.WorkMode == WorkMode.Promo) }); } }
//user import private static void WriteAddEmployeesAction(Page page, SideActions actionsControl) { if (SecurityContext.CheckPermissions(Constants.Action_AddRemoveUser)) { actionsControl.Controls.Add(new ImportUsersWebControl()); const string onclickJavascript = "ImportUsersManager.ShowImportControl();"; var importUsersHtml = String.Format(@"<a href='javascript:void(0);' class='linkAction{0}' onclick=""{2} return false;"">{1}</a>", (SetupInfo.WorkMode == WorkMode.Promo) ? " promoAction" : string.Empty, CustomNamingPeople.Substitute <Resources.Resource>("AddEmployeesButton").HtmlEncode(), onclickJavascript); actionsControl.Controls.Add(new HtmlMenuItem(importUsersHtml)); } }
public FileUploadResult ProcessUpload(HttpContext context) { var result = new FileUploadResult(); try { SecurityContext.CheckPermissions(Constants.Action_AddRemoveUser); if (context.Request.Files.Count != 0) { var logo = context.Request.Files[0]; var ext = FileUtility.GetFileExtension(logo.FileName); if (ext != ".csv") { result.Success = false; result.Message = Resource.ErrorEmptyUploadFileSelected; return(result); } IUserImporter importer = context.Request["obj"] == "txt" ? new TextFileUserImporter(logo.InputStream) { DefaultHeader = "Email;FirstName;LastName", } : new OutlookCSVUserImporter(logo.InputStream); var users = importer.GetDiscoveredUsers(); result.Success = true; result.Message = JsonContacts(users); } else { result.Success = false; result.Message = Resource.ErrorEmptyUploadFileSelected; } } catch (Exception ex) { result.Success = false; result.Message = ex.Message.HtmlEncode(); } return(result); }
private bool CheckPermissions(ISecurityObject securityObj, ASC.Common.Security.Authorizing.Action action, bool silent) { if (securityObj == null) { throw new Exception(Resources.CalendarApiResource.ErrorItemNotFound); } if (silent) { return(SecurityContext.CheckPermissions(securityObj, action)); } else { SecurityContext.DemandPermissions(securityObj, action); } return(true); }
//resend invites to pending users private static void WriteResendInvitesAction(Page page, SideActions actionsControl) { if (SecurityContext.CheckPermissions(Constants.Action_AddRemoveUser)) { var users = new List <UserInfo>(CoreContext.UserManager.GetUsers()).FindAll(u => u.ActivationStatus == EmployeeActivationStatus.Pending); if (users.Count > 0) { var control = page.LoadControl(ResendInvitesControl.Location); actionsControl.Controls.Add(control); actionsControl.Controls.Add(new NavigationItem { Name = CustomNamingPeople.Substitute <Resources.Resource>("ResendInvitesToPendingUsersAction"), URL = ResendInvitesControl.GetHrefAction(), IsPromo = (SetupInfo.WorkMode == WorkMode.Promo) }); } } }
private static void UpdateDepartments(IEnumerable <Guid> department, UserInfo user) { if (!SecurityContext.CheckPermissions(Core.Users.Constants.Action_EditGroups)) { return; } if (department == null) { return; } var groups = CoreContext.UserManager.GetUserGroups(user.ID); var managerGroups = new List <Guid>(); foreach (var groupInfo in groups) { CoreContext.UserManager.RemoveUserFromGroup(user.ID, groupInfo.ID); var managerId = CoreContext.UserManager.GetDepartmentManager(groupInfo.ID); if (managerId == user.ID) { managerGroups.Add(groupInfo.ID); CoreContext.UserManager.SetDepartmentManager(groupInfo.ID, Guid.Empty); } } foreach (var guid in department) { var userDepartment = CoreContext.GroupManager.GetGroupInfo(guid); if (userDepartment != Core.Users.Constants.LostGroupInfo) { CoreContext.UserManager.AddUserIntoGroup(user.ID, guid); if (managerGroups.Contains(guid)) { CoreContext.UserManager.SetDepartmentManager(guid, user.ID); } } } }
public FileUploadResult ProcessUpload(HttpContext context) { if (context.Request.Files.Count == 0) { return(Error("No files.")); } if (!SecurityContext.CheckPermissions(SecutiryConstants.EditPortalSettings)) { return(Error("Access denied.")); } HttpPostedFile file = context.Request.Files[0]; if (file.ContentLength <= 0 || file.ContentLength > MaxBackupFileSize) { return(Error("File size must be greater than 0 and less than {0} bytes", MaxBackupFileSize)); } try { var filePath = GetFilePath(); if (File.Exists(filePath)) { File.Delete(filePath); } file.SaveAs(filePath); return(Success()); } catch (Exception error) { return(Error(error.Message)); } }
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 FileUploadResult ProcessUpload(HttpContext context) { var result = new ContactsUploaderResult(); try { SecurityContext.CheckPermissions(Constants.Action_AddRemoveUser); if (context.Request.Files.Count == 0) { result.Success = false; result.Message = Resource.ErrorEmptyUploadFileSelected; return(result); } var file = context.Request.Files[0]; const int maxFileSize = 512000; if (file.ContentLength > maxFileSize) { result.Success = false; result.Message = String.Format(Resource.ImportContactsFromFileErrorTooLarge, (maxFileSize / 1024)); return(result); } var ext = FileUtility.GetFileExtension(file.FileName); if (ext != ".csv") { result.Success = false; result.Message = Resource.ErrorEmptyUploadFileSelected; return(result); } var param = new FileParameters { Encode = Convert.ToInt32(context.Request["enc"]), Separator = Convert.ToInt32(context.Request["sep"]), Delimiter = Convert.ToInt32(context.Request["del"]), Position = Convert.ToInt32(context.Request["pos"]), IsRaw = Convert.ToBoolean(context.Request["raw"]), UserHeader = context.Request["head"] }; IUserImporter importer = new TextFileUserImporter(file.InputStream, param); var users = (param.IsRaw) ? (IEnumerable)importer.GetRawUsers() : importer.GetDiscoveredUsers(); result.Message = JsonConvert.SerializeObject(users); result.Columns = JsonConvert.SerializeObject(ContactInfo.GetColumns()); result.Success = true; } catch (Exception ex) { result.Success = false; result.Message = ex.Message.HtmlEncode(); } return(result); }
public object SaveUsers(string userList, bool importUsersAsCollaborators) { if (!SecurityContext.CheckPermissions(Constants.Action_AddRemoveUser)) { return new { Status = (int)Operation.Error, Message = Resources.Resource.ErrorAccessDenied } } ; var coll = new List <UserResults>(); try { var jsSerializer = new System.Web.Script.Serialization.JavaScriptSerializer(); var ruleObj = jsSerializer.Deserialize <List <UserData> >(userList); var error = 0; foreach (var userData in ruleObj) { var validateEmail = UserManagerWrapper.ValidateEmail(userData.Email); if (!validateEmail || String.IsNullOrEmpty(userData.FirstName) || String.IsNullOrEmpty(userData.LastName)) { coll.Add(new UserResults { Email = userData.Email, Result = Resources.Resource.ImportContactsIncorrectFields, Class = !validateEmail ? "error3" : "error1" }); error++; continue; } var us = CoreContext.UserManager.GetUserByEmail(userData.Email); if (us.ID != Constants.LostUser.ID) { coll.Add(new UserResults { Email = userData.Email, Result = Resources.Resource.ImportContactsAlreadyExists, Class = "error2" }); error++; continue; } if (error != 0) { continue; } if (!importUsersAsCollaborators && TenantStatisticsProvider.GetUsersCount() >= TenantExtra.GetTenantQuota().ActiveUsers) { importUsersAsCollaborators = true; } UserManagerWrapper.AddUser(new UserInfo { Email = userData.Email, FirstName = userData.FirstName, LastName = userData.LastName }, UserManagerWrapper.GeneratePassword(), false, true, importUsersAsCollaborators); coll.Add(new UserResults { Email = userData.Email, Result = String.Empty }); } return(new { Status = (int)Operation.Success, Data = coll }); } catch (Exception ex) { return(new { Status = (int)Operation.Error, Message = ex.Message }); } }
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; }
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 = 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()); }