コード例 #1
0
 public TenantAuditSettings GetAuditSettings()
 {
     if (!SetupInfo.IsVisibleSettings(ManagementType.LoginHistory.ToString()))
     {
         throw new BillingException(Resource.ErrorNotAllowedOption, "Audit");
     }
     SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
     return(TenantAuditSettings.LoadForTenant(TenantProvider.CurrentTenantID));
 }
コード例 #2
0
        public IEnumerable <AuditEventWrapper> GetLastAuditEvents()
        {
            if (!SetupInfo.IsVisibleSettings(ManagementType.AuditTrail.ToString()))
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "Audit");
            }
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            return(AuditEventsRepository.GetLast(TenantProvider.CurrentTenantID, 20).Select(x => new AuditEventWrapper(x)));
        }
コード例 #3
0
 public EncryptionLoginProvider(
     SecurityContext securityContext,
     Signature signature,
     InstanceCrypto instanceCrypto,
     IOptionsSnapshot <AccountLinker> snapshot)
 {
     SecurityContext = securityContext;
     Signature       = signature;
     InstanceCrypto  = instanceCrypto;
     Snapshot        = snapshot;
 }
コード例 #4
0
        [Create(@"", false)]//NOTE: this method doesn't requires auth!!!
        public AuthenticationTokenData AuthenticateMe(string userName, string password)
        {
            userName.ThrowIfNull(new ArgumentException("userName empty", "userName"));
            password.ThrowIfNull(new ArgumentException("password empty", "password"));
            var token = SecurityContext.AuthenticateMe(userName, password);

            if (string.IsNullOrEmpty(token))
            {
                throw new AuthenticationException("User authentication failed");
            }
            return(new AuthenticationTokenData()
            {
                Expires = new ApiDateTime(DateTime.UtcNow.AddYears(1)), Token = token
            });
        }
コード例 #5
0
        public string CreateLoginHistoryReport()
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            var tenantId = TenantProvider.CurrentTenantID;

            if (!TenantExtra.GetTenantQuota().Audit || !SetupInfo.IsVisibleSettings(ManagementType.LoginHistory.ToString()))
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "Audit");
            }

            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.Get(tenantId, from, to);
            var result     = AuditReportCreator.CreateCsvReport(events, reportName);

            MessageService.Send(Request, MessageAction.LoginHistoryReportDownloaded);
            return(result);
        }
コード例 #6
0
        public TenantAuditSettings SetAuditSettings(TenantAuditSettings settings)
        {
            if (!TenantExtra.GetTenantQuota().Audit || !SetupInfo.IsVisibleSettings(ManagementType.LoginHistory.ToString()))
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "Audit");
            }
            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);
        }
コード例 #7
0
 public VoIPController(CrmSecurity crmSecurity,
                       DaoFactory daoFactory,
                       Global global,
                       ContactPhotoManager contactPhotoManager,
                       StorageFactory storageFactory,
                       CommonLinkUtility commonLinkUtility,
                       SecurityContext securityContext,
                       TenantUtil tenantUtil,
                       VoipEngine voipEngine,
                       ApiContext apiContext,
                       SignalrServiceClient signalrServiceClient,
                       IMapper mapper)
     : base(daoFactory, crmSecurity, mapper)
 {
     _global = global;
     _contactPhotoManager  = contactPhotoManager;
     _storageFactory       = storageFactory;
     _commonLinkUtility    = commonLinkUtility;
     _securityContext      = securityContext;
     _tenantUtil           = tenantUtil;
     _voipEngine           = voipEngine;
     _apiContext           = apiContext;
     _signalrServiceClient = signalrServiceClient;
 }