Exemple #1
0
        public object GetWhiteLabelSizes()
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            if (!TenantLogoManager.WhiteLabelEnabled)
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "WhiteLabel");
            }

            return
                (new[]
            {
                new { type = (int)WhiteLabelLogoTypeEnum.LightSmall, name = WhiteLabelLogoTypeEnum.LightSmall.ToString(), height = TenantWhiteLabelSettings.logoLightSmallSize.Height, width = TenantWhiteLabelSettings.logoLightSmallSize.Width },
                new { type = (int)WhiteLabelLogoTypeEnum.Dark, name = WhiteLabelLogoTypeEnum.Dark.ToString(), height = TenantWhiteLabelSettings.logoDarkSize.Height, width = TenantWhiteLabelSettings.logoDarkSize.Width },
                new { type = (int)WhiteLabelLogoTypeEnum.Favicon, name = WhiteLabelLogoTypeEnum.Favicon.ToString(), height = TenantWhiteLabelSettings.logoFaviconSize.Height, width = TenantWhiteLabelSettings.logoFaviconSize.Width },
                new { type = (int)WhiteLabelLogoTypeEnum.DocsEditor, name = WhiteLabelLogoTypeEnum.DocsEditor.ToString(), height = TenantWhiteLabelSettings.logoDocsEditorSize.Height, width = TenantWhiteLabelSettings.logoDocsEditorSize.Width }
            });
        }
Exemple #2
0
        public EmployeeWraperFull DeleteMemberPhoto(string userid)
        {
            var user = GetUserInfo(userid);

            if (CoreContext.UserManager.IsSystemUser(user.ID))
            {
                throw new SecurityException();
            }

            SecurityContext.DemandPermissions(new UserSecurityProvider(user.ID), Core.Users.Constants.Action_EditUser);

            UserPhotoManager.RemovePhoto(Guid.Empty, user.ID);

            CoreContext.UserManager.SaveUserInfo(user);
            MessageService.Send(Request, MessageAction.UserDeletedAvatar, user.DisplayUserName(false));

            return(new EmployeeWraperFull(user));
        }
Exemple #3
0
        private static void DeleteContacts(IEnumerable <Contact> contacts, UserInfo user)
        {
            SecurityContext.DemandPermissions(new UserSecurityProvider(user.ID), Core.Users.Constants.Action_EditUser);
            if (contacts == null)
            {
                return;
            }

            foreach (var contact in contacts)
            {
                var index = user.Contacts.IndexOf(contact.Type);
                if (index != -1)
                {
                    //Remove existing
                    user.Contacts.RemoveRange(index, 2);
                }
            }
        }
        public void RestoreWhiteLabelOptions()
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            if (!TenantLogoManager.WhiteLabelEnabled || !TenantLogoManager.WhiteLabelPaid)
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "WhiteLabel");
            }

            var _tenantWhiteLabelSettings = TenantWhiteLabelSettings.Load();

            _tenantWhiteLabelSettings.RestoreDefault();

            var _tenantInfoSettings = TenantInfoSettings.Load();

            _tenantInfoSettings.RestoreDefaultLogo();
            _tenantInfoSettings.Save();
        }
Exemple #5
0
        private static void BulkDownloadFile(HttpContext context)
        {
            if (!SecurityContext.AuthenticateMe(CookiesManager.GetCookies(CookiesType.AuthKey)))
            {
                context.Response.StatusCode = (int)HttpStatusCode.Forbidden;
                return;
            }

            var store = Global.GetStore();
            var path  = string.Format(@"{0}\{1}.zip", SecurityContext.CurrentAccount.ID, FileConstant.DownloadTitle);

            if (!store.IsFile(FileConstant.StorageDomainTmp, path))
            {
                Global.Logger.ErrorFormat("BulkDownload file error. File is not exist on storage. UserId: {0}.", SecurityContext.CurrentAccount.ID);
                context.Response.StatusCode = (int)HttpStatusCode.NotFound;
                return;
            }

            if (store.IsSupportedPreSignedUri)
            {
                var url = store.GetPreSignedUri(FileConstant.StorageDomainTmp, path, TimeSpan.FromHours(1), null).ToString();
                context.Response.Redirect(url);
                return;
            }

            context.Response.Clear();
            context.Response.ContentType = "application/zip";
            context.Response.AddHeader("Content-Disposition", ContentDispositionUtil.GetHeaderValue(FileConstant.DownloadTitle + ".zip"));

            using (var readStream = store.GetReadStream(FileConstant.StorageDomainTmp, path))
            {
                context.Response.AddHeader("Content-Length", readStream.Length.ToString());
                readStream.StreamCopyTo(context.Response.OutputStream);
            }
            try
            {
                context.Response.Flush();
                context.Response.End();
            }
            catch (HttpException)
            {
            }
        }
        public string TimaAndLanguage(string lng, string timeZoneID)
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            var tenant  = CoreContext.TenantManager.GetCurrentTenant();
            var culture = CultureInfo.GetCultureInfo(lng);

            var changelng = false;

            if (SetupInfo.EnabledCultures.Find(c => String.Equals(c.Name, culture.Name, StringComparison.InvariantCultureIgnoreCase)) != null)
            {
                if (!String.Equals(tenant.Language, culture.Name, StringComparison.InvariantCultureIgnoreCase))
                {
                    tenant.Language = culture.Name;
                    changelng       = true;
                }
            }

            var oldTimeZone = tenant.TimeZone;
            var timeZones   = TimeZoneInfo.GetSystemTimeZones().ToList();

            if (timeZones.All(tz => tz.Id != "UTC"))
            {
                timeZones.Add(TimeZoneInfo.Utc);
            }
            tenant.TimeZone = timeZones.FirstOrDefault(tz => tz.Id == timeZoneID) ?? TimeZoneInfo.Utc;

            CoreContext.TenantManager.SaveTenant(tenant);

            if (!tenant.TimeZone.Id.Equals(oldTimeZone.Id) || changelng)
            {
                if (!tenant.TimeZone.Id.Equals(oldTimeZone.Id))
                {
                    MessageService.Send(HttpContext.Current.Request, MessageAction.TimeZoneSettingsUpdated);
                }
                if (changelng)
                {
                    MessageService.Send(HttpContext.Current.Request, MessageAction.LanguageSettingsUpdated);
                }
            }

            return(Resource.SuccessfullySaveSettingsMessage);
        }
Exemple #7
0
 public CrmSecurity(SecurityContext securityContext,
                    AuthorizationManager authorizationManager,
                    UserManager userManager,
                    DisplayUserSettingsHelper displayUserSettingsHelper,
                    DaoFactory daoFactory,
                    WebItemSecurity webItemSecurity,
                    PermissionContext permissionContext,
                    CurrencyProvider currencyProvider,
                    TenantManager tenantManager)
 {
     _securityContext           = securityContext;
     _authorizationManager      = authorizationManager;
     _userManager               = userManager;
     _displayUserSettingsHelper = displayUserSettingsHelper;
     _daoFactory        = daoFactory;
     _webItemSecurity   = webItemSecurity;
     _permissionContext = permissionContext;
     _currencyProvider  = currencyProvider;
 }
        public string CreateLoginHistoryReport()
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            DemandAuditPermission();

            var tenantId = TenantProvider.CurrentTenantID;

            var settings = TenantAuditSettings.LoadForTenant(tenantId);

            var to   = DateTime.UtcNow;
            var from = to.Subtract(TimeSpan.FromDays(settings.LoginHistoryLifeTime));

            var reportName = string.Format(AuditReportResource.LoginHistoryReportName + ".csv", from.ToShortDateString(), to.ToShortDateString());
            var events     = LoginEventsRepository.GetByFilter(from: from, to: to);
            var result     = AuditReportCreator.CreateCsvReport(events, reportName);

            MessageService.Send(Request, MessageAction.LoginHistoryReportDownloaded);
            return(result);
        }
        public string CreateLoginHistoryReport()
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            if (!SetupInfo.IsVisibleSettings(ManagementType.LoginHistory.ToString()) ||
                CoreContext.Configuration.Standalone && !CoreContext.TenantManager.GetTenantQuota(TenantProvider.CurrentTenantID).Audit)
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "Audit");
            }

            var to   = DateTime.UtcNow;
            var from = to.AddMonths(-6);

            var reportName = string.Format(AuditReportResource.LoginHistoryReportName + ".csv", from.ToString("MM.dd.yyyy"), to.ToString("MM.dd.yyyy"));
            var events     = LoginEventsRepository.Get(CurrentTenant, from, to);
            var result     = AuditReportCreator.CreateCsvReport(events, reportName);

            MessageService.Send(Request, MessageAction.LoginHistoryReportDownloaded);
            return(result);
        }
        public IEnumerable <EmployeeWraperFull> UpdateEmployeeActivationStatus(EmployeeActivationStatus activationstatus, IEnumerable <Guid> userIds)
        {
            var retuls = new List <EmployeeWraperFull>();

            foreach (var id in userIds.Where(userId => !CoreContext.UserManager.IsSystemUser(userId)))
            {
                SecurityContext.DemandPermissions(new UserSecurityProvider(id), Core.Users.Constants.Action_EditUser);
                var u = CoreContext.UserManager.GetUsers(id);
                if (u.ID == Core.Users.Constants.LostUser.ID || u.IsLDAP())
                {
                    continue;
                }

                u.ActivationStatus = activationstatus;
                CoreContext.UserManager.SaveUserInfo(u);
                retuls.Add(new EmployeeWraperFull(u));
            }

            return(retuls);
        }
Exemple #11
0
        public bool SmsSettings(bool enable)
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            if (!StudioSmsNotificationSettings.IsVisibleSettings || CoreContext.PaymentManager.GetApprovedPartner() != null)
            {
                throw new Exception(Resource.SmsNotAvailable);
            }

            if (enable && StudioSmsNotificationSettings.LeftSms <= 0)
            {
                throw new Exception(Resource.SmsNotPaidError);
            }

            StudioSmsNotificationSettings.Enable = enable;

            MessageService.Send(Request, MessageAction.TwoFactorAuthenticationSettingsUpdated);

            return(StudioSmsNotificationSettings.Enable);
        }
        public bool SmsSettings(bool enable)
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            if (!StudioSmsNotificationSettings.IsVisibleSettings)
            {
                throw new Exception(Resource.SmsNotAvailable);
            }

            if (enable && !SmsProviderManager.Enabled())
            {
                throw new MethodAccessException();
            }

            StudioSmsNotificationSettings.Enable = enable;

            MessageService.Send(Request, MessageAction.TwoFactorAuthenticationSettingsUpdated);

            return(StudioSmsNotificationSettings.Enable);
        }
Exemple #13
0
        public TenantAuditSettings SetAuditSettings(TenantAuditSettings settings)
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            if (settings.LoginHistoryLifeTime <= 0 || settings.LoginHistoryLifeTime > TenantAuditSettings.MaxLifeTime)
            {
                throw new ArgumentException("LoginHistoryLifeTime");
            }

            if (settings.AuditTrailLifeTime <= 0 || settings.AuditTrailLifeTime > TenantAuditSettings.MaxLifeTime)
            {
                throw new ArgumentException("AuditTrailLifeTime");
            }

            settings.SaveForTenant(TenantProvider.CurrentTenantID);

            MessageService.Send(Request, MessageAction.AuditSettingsUpdated);

            return(settings);
        }
        public EmployeeWraperFull AddMember(bool isVisitor, string email, string firstname, string lastname, Guid[] department, string title, string location, string sex, ApiDateTime birthday, ApiDateTime worksfrom, string comment, IEnumerable <Contact> contacts, string files)
        {
            SecurityContext.DemandPermissions(Core.Users.Constants.Action_AddRemoveUser);
            var password = UserManagerWrapper.GeneratePassword();
            var user     = new UserInfo();

            //Validate email
            var address = new MailAddress(email);

            user.Email = address.Address;
            //Set common fields
            user.FirstName = firstname;
            user.LastName  = lastname;
            user.Title     = title;
            user.Location  = location;
            user.Notes     = comment;
            user.Sex       = "male".Equals(sex, StringComparison.OrdinalIgnoreCase)
                           ? true
                           : ("female".Equals(sex, StringComparison.OrdinalIgnoreCase) ? (bool?)false : null);

            user.BirthDate = birthday != null?TenantUtil.DateTimeFromUtc(Convert.ToDateTime(birthday)) : (DateTime?)null;

            user.WorkFromDate = worksfrom != null?TenantUtil.DateTimeFromUtc(Convert.ToDateTime(worksfrom)) : DateTime.UtcNow.Date;

            UpdateContacts(contacts, user);

            user = UserManagerWrapper.AddUser(user, password, false, true, isVisitor);

            var messageAction = isVisitor ? MessageAction.GuestCreated : MessageAction.UserCreated;

            MessageService.Send(Request, messageAction, user.DisplayUserName(false));

            UpdateDepartments(department, user);

            if (files != UserPhotoManager.GetDefaultPhotoAbsoluteWebPath())
            {
                UpdatePhotoUrl(files, user);
            }

            return(new EmployeeWraperFull(user));
        }
Exemple #15
0
        public IEnumerable <SecurityWrapper> SetAccessToWebItems(IEnumerable <ItemKeyValuePair <String, Boolean> > items)
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            var itemList = new ItemDictionary <String, Boolean>();

            foreach (ItemKeyValuePair <String, Boolean> item in items)
            {
                if (!itemList.ContainsKey(item.Key))
                {
                    itemList.Add(item.Key, item.Value);
                }
            }

            foreach (var item in itemList)
            {
                Guid[] subjects = null;

                if (item.Value)
                {
                    var webItem = WebItemManager.Instance[new Guid(item.Key)] as IProduct;
                    if (webItem != null)
                    {
                        var productInfo    = WebItemSecurity.GetSecurityInfo(item.Key);
                        var selectedGroups = productInfo.Groups.Select(group => group.ID).ToList();
                        var selectedUsers  = productInfo.Users.Select(user => user.ID).ToList();
                        selectedUsers.AddRange(selectedGroups);
                        if (selectedUsers.Count > 0)
                        {
                            subjects = selectedUsers.ToArray();
                        }
                    }
                }

                WebItemSecurity.SetSecurity(item.Key, item.Value, subjects);
            }

            MessageService.Send(Request, MessageAction.ProductsListUpdated);

            return(GetWebItemSecurityInfo(itemList.Keys.ToList()));
        }
        public GroupWrapperFull AddGroup(GroupModel groupModel)
        {
            SecurityContext.DemandPermissions(Tenant, Constants.Action_EditGroups, Constants.Action_AddRemoveUser);

            var group = CoreContext.UserManager.SaveGroupInfo(Tenant, new GroupInfo {
                Name = groupModel.GroupName
            });

            TransferUserToDepartment(groupModel.GroupManager, @group, true);
            if (groupModel.Members != null)
            {
                foreach (var member in groupModel.Members)
                {
                    TransferUserToDepartment(member, group, false);
                }
            }

            MessageService.Send(MessageAction.GroupCreated, MessageTarget.Create(group.ID), group.Name);

            return(new GroupWrapperFull(group, true, ApiContext));
        }
        public object SetProductAdministrator(SecurityModel model)
        {
            SecurityContext.DemandPermissions(Tenant, SecutiryConstants.EditPortalSettings);

            WebItemSecurity.SetProductAdministrator(Tenant, model.ProductId, model.UserId, model.Administrator);

            var admin = CoreContext.UserManager.GetUsers(model.UserId);

            if (model.ProductId == Guid.Empty)
            {
                var messageAction = model.Administrator ? MessageAction.AdministratorOpenedFullAccess : MessageAction.AdministratorDeleted;
                MessageService.Send(messageAction, MessageTarget.Create(admin.ID), admin.DisplayUserName(false));
            }
            else
            {
                var messageAction = model.Administrator ? MessageAction.ProductAddedAdministrator : MessageAction.ProductDeletedAdministrator;
                MessageService.Send(messageAction, MessageTarget.Create(admin.ID), GetProductName(model.ProductId), admin.DisplayUserName(false));
            }

            return(new { model.ProductId, model.UserId, model.Administrator });
        }
        public void DeleteCustomNavigationItem(Guid id)
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            var settings = CustomNavigationSettings.Load();

            var terget = settings.Items.FirstOrDefault(item => item.Id == id);

            if (terget == null)
            {
                return;
            }

            StorageHelper.DeleteLogo(terget.SmallImg);
            StorageHelper.DeleteLogo(terget.BigImg);

            settings.Items.Remove(terget);
            settings.Save();

            MessageService.Send(HttpContext.Current.Request, MessageAction.CustomNavigationSettingsUpdated);
        }
        public object SetProductAdministrator(Guid productid, Guid userid, bool administrator)
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            WebItemSecurity.SetProductAdministrator(productid, userid, administrator);

            var admin = CoreContext.UserManager.GetUsers(userid);

            if (productid == Guid.Empty)
            {
                var messageAction = administrator ? MessageAction.AdministratorOpenedFullAccess : MessageAction.AdministratorDeleted;
                MessageService.Send(Request, messageAction, MessageTarget.Create(admin.ID), admin.DisplayUserName(false));
            }
            else
            {
                var messageAction = administrator ? MessageAction.ProductAddedAdministrator : MessageAction.ProductDeletedAdministrator;
                MessageService.Send(Request, messageAction, MessageTarget.Create(admin.ID), GetProductName(productid), admin.DisplayUserName(false));
            }

            return(new { ProductId = productid, UserId = userid, Administrator = administrator });
        }
        public Dictionary <int, string> GetWhiteLabelLogos(bool retina)
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            if (!TenantLogoManager.WhiteLabelEnabled)
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "WhiteLabel");
            }

            var _tenantWhiteLabelSettings = TenantWhiteLabelSettings.Load();


            var result = new Dictionary <int, string>();

            result.Add((int)WhiteLabelLogoTypeEnum.LightSmall, CommonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettings.GetAbsoluteLogoPath(WhiteLabelLogoTypeEnum.LightSmall, !retina)));
            result.Add((int)WhiteLabelLogoTypeEnum.Dark, CommonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettings.GetAbsoluteLogoPath(WhiteLabelLogoTypeEnum.Dark, !retina)));
            result.Add((int)WhiteLabelLogoTypeEnum.Favicon, CommonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettings.GetAbsoluteLogoPath(WhiteLabelLogoTypeEnum.Favicon, !retina)));
            result.Add((int)WhiteLabelLogoTypeEnum.DocsEditor, CommonLinkUtility.GetFullAbsolutePath(_tenantWhiteLabelSettings.GetAbsoluteLogoPath(WhiteLabelLogoTypeEnum.DocsEditor, !retina)));

            return(result);
        }
Exemple #21
0
        public IEnumerable <EmployeeWraperFull> UpdateUserStatus(EmployeeStatus status, IEnumerable <Guid> userIds)
        {
            SecurityContext.DemandPermissions(Core.Users.Constants.Action_EditUser);

            var users = userIds
                        .Where(userId => !CoreContext.UserManager.IsSysytemUser(userId))
                        .Select(userId => CoreContext.UserManager.GetUsers(userId))
                        .ToList();

            foreach (var user in users)
            {
                if (user.IsOwner() || user.IsMe())
                {
                    continue;
                }

                switch (status)
                {
                case EmployeeStatus.Active:
                    if (user.Status == EmployeeStatus.Terminated)
                    {
                        if (TenantStatisticsProvider.GetUsersCount() < TenantExtra.GetTenantQuota().ActiveUsers || user.IsVisitor())
                        {
                            user.Status = EmployeeStatus.Active;
                            CoreContext.UserManager.SaveUserInfo(user);
                        }
                    }
                    break;

                case EmployeeStatus.Terminated:
                    user.Status = EmployeeStatus.Terminated;
                    CoreContext.UserManager.SaveUserInfo(user);
                    break;
                }
            }

            MessageService.Send(Request, MessageAction.UsersUpdatedStatus, users.Select(x => x.DisplayUserName(false)));

            return(users.Select(user => new EmployeeWraperFull(user)).ToSmartList());
        }
 public PortalController(
     IOptionsMonitor <ILog> options,
     ApiContext apiContext,
     UserManager userManager,
     TenantManager tenantManager,
     PaymentManager paymentManager,
     CommonLinkUtility commonLinkUtility,
     UrlShortener urlShortener,
     AuthContext authContext,
     WebItemSecurity webItemSecurity,
     SecurityContext securityContext,
     SettingsManager settingsManager,
     IMobileAppInstallRegistrator mobileAppInstallRegistrator,
     TenantExtra tenantExtra,
     IConfiguration configuration,
     CoreBaseSettings coreBaseSettings,
     LicenseReader licenseReader,
     SetupInfo setupInfo,
     DocumentServiceLicense documentServiceLicense
     )
 {
     Log                         = options.CurrentValue;
     ApiContext                  = apiContext;
     UserManager                 = userManager;
     TenantManager               = tenantManager;
     PaymentManager              = paymentManager;
     CommonLinkUtility           = commonLinkUtility;
     UrlShortener                = urlShortener;
     AuthContext                 = authContext;
     WebItemSecurity             = webItemSecurity;
     SecurityContext             = securityContext;
     SettingsManager             = settingsManager;
     MobileAppInstallRegistrator = mobileAppInstallRegistrator;
     Configuration               = configuration;
     CoreBaseSettings            = coreBaseSettings;
     LicenseReader               = licenseReader;
     SetupInfo                   = setupInfo;
     DocumentServiceLicense      = documentServiceLicense;
     TenantExtra                 = tenantExtra;
 }
Exemple #23
0
        public static bool CheckPermissions(ISecurityObjectId objectId, ISecurityObjectProvider securityObjProvider, params IAction[] actions)
        {
            if (IsAdministrator())
            {
                return(true);
            }
            if (IsOutsider())
            {
                var actionArray        = actions ?? new IAction[0];
                var containsReadAction = false;
                foreach (var action in actionArray)
                {
                    containsReadAction = action.ID.Equals(new Guid("{E0759A42-47F0-4763-A26A-D5AA665BEC35}"));//"Read forum post action"
                }
                if (!containsReadAction)
                {
                    return(false);
                }
            }

            return(SecurityContext.CheckPermissions(objectId, securityObjProvider, actions));
        }
        protected static bool AuthByCookies(string cookiesKey)
        {
            var result = false;

            if (!string.IsNullOrEmpty(cookiesKey))
            {
                try
                {
                    if (SecurityContext.AuthenticateMe(cookiesKey))
                    {
                        result = true;
                        WebItemManager.Instance.ItemGlobalHandlers.Login(SecurityContext.CurrentAccount.ID);
                    }
                }
                catch (Exception ex)
                {
                    LogManager.GetLogger("ASC.Web").ErrorFormat("AutoAuthByCookies Error {0}", ex);
                }
            }

            return(result);
        }
        public void SaveWhiteLabelSettings(WhiteLabelModel model)
        {
            SecurityContext.DemandPermissions(Tenant, SecutiryConstants.EditPortalSettings);

            if (!TenantLogoManager.WhiteLabelEnabled || !TenantLogoManager.WhiteLabelPaid)
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "WhiteLabel");
            }

            var _tenantWhiteLabelSettings = TenantWhiteLabelSettings.Load();

            if (model.Logo != null)
            {
                var logoDict = new Dictionary <int, string>();
                model.Logo.ToList().ForEach(n => logoDict.Add(n.Key, n.Value));

                _tenantWhiteLabelSettings.SetLogo(Tenant.TenantId, logoDict);
            }

            _tenantWhiteLabelSettings.LogoText = model.LogoText;
            _tenantWhiteLabelSettings.Save(Tenant.TenantId);
        }
        public EmployeeWraperFull ChangeUserPassword(Guid userid, String password, String email)
        {
            SecurityContext.DemandPermissions(new UserSecurityProvider(userid), Core.Users.Constants.Action_EditUser);

            if (!CoreContext.UserManager.UserExists(userid))
            {
                return(null);
            }

            var user = CoreContext.UserManager.GetUsers(userid);

            if (CoreContext.UserManager.IsSystemUser(user.ID))
            {
                throw new SecurityException();
            }

            if (!string.IsNullOrEmpty(email))
            {
                var address = new MailAddress(email);
                if (!string.Equals(address.Address, user.Email, StringComparison.OrdinalIgnoreCase))
                {
                    user.Email            = address.Address.ToLowerInvariant();
                    user.ActivationStatus = EmployeeActivationStatus.Activated;
                    CoreContext.UserManager.SaveUserInfo(user);
                }
            }

            if (!string.IsNullOrEmpty(password))
            {
                SecurityContext.SetUserPassword(userid, password);
                MessageService.Send(HttpContext.Current.Request, MessageAction.UserUpdatedPassword);

                CookiesManager.ResetUserCookie();
                MessageService.Send(HttpContext.Current.Request, MessageAction.CookieSettingsUpdated);
            }

            return(new EmployeeWraperFull(GetUserInfo(userid.ToString())));
        }
        public CdnStorageSettings UpdateCdn(StorageModel model)
        {
            SecurityContext.DemandPermissions(Tenant, SecutiryConstants.EditPortalSettings);
            if (!CoreContext.Configuration.Standalone)
            {
                return(null);
            }

            var consumer = ConsumerFactory.GetByName(model.Module);

            if (!consumer.IsSet)
            {
                throw new ArgumentException("module");
            }

            var settings = CdnStorageSettings.Load();

            if (settings.Module == model.Module)
            {
                return(settings);
            }

            settings.Module = model.Module;
            settings.Props  = model.Props.ToDictionary(r => r.Key, b => b.Value);

            try
            {
                using var migrateClient = new ServiceClient();
                migrateClient.UploadCdn(Tenant.TenantId, "/", WebHostEnvironment.ContentRootPath, settings);
            }
            catch (Exception e)
            {
                LogManager.GetLogger("ASC").Error("UpdateCdn", e);
                throw;
            }

            return(settings);
        }
        public void SaveWhiteLabelSettings(string logoText, IEnumerable <ItemKeyValuePair <int, string> > logo)
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            if (!TenantLogoManager.WhiteLabelEnabled || !TenantLogoManager.WhiteLabelPaid)
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "WhiteLabel");
            }

            var tenantId = TenantProvider.CurrentTenantID;
            var _tenantWhiteLabelSettings = TenantWhiteLabelSettings.Load();

            if (logo != null)
            {
                var logoDict = new Dictionary <int, string>();
                logo.ToList().ForEach(n => logoDict.Add(n.Key, n.Value));

                _tenantWhiteLabelSettings.SetLogo(logoDict);
            }

            _tenantWhiteLabelSettings.LogoText = logoText;
            _tenantWhiteLabelSettings.Save(tenantId);
        }
        public void ResetStorageToDefault()
        {
            SecurityContext.DemandPermissions(Tenant, SecutiryConstants.EditPortalSettings);
            if (!CoreContext.Configuration.Standalone)
            {
                return;
            }

            var settings = StorageSettings.Load();

            settings.Module = null;
            settings.Props  = null;

            try
            {
                StartMigrate(settings);
            }
            catch (Exception e)
            {
                LogManager.GetLogger("ASC").Error("ResetStorageToDefault", e);
                throw;
            }
        }
Exemple #30
0
        public GroupWrapperFull UpdateGroup(Guid groupid, Guid groupManager, string groupName, IEnumerable <Guid> members)
        {
            SecurityContext.DemandPermissions(Core.Users.Constants.Action_EditGroups, Core.Users.Constants.Action_AddRemoveUser);
            var group = CoreContext.GroupManager.GetGroups().SingleOrDefault(x => x.ID == groupid).NotFoundIfNull("group not found");

            if (group.ID == Core.Users.Constants.LostGroupInfo.ID)
            {
                throw new ItemNotFoundException("group not found");
            }

            group.Name = groupName ?? group.Name;
            CoreContext.GroupManager.SaveGroupInfo(group);

            TransferUserToDepartment(groupManager, @group, true);
            if (members != null)
            {
                foreach (var member in members)
                {
                    TransferUserToDepartment(member, group, false);
                }
            }
            return(GetById(groupid));
        }