示例#1
0
 public WorkflowController(IWorkflowRepository workflowRepository, IWorkflowService workflowService, IServiceLogRepository log,
                           IPrivilegesRepository privilegesRepository) : base(log)
 {
     _workflowService    = workflowService;
     _workflowRepository = workflowRepository;
     _privilegesManager  = new PrivilegesManager(privilegesRepository);
 }
 public EmailSettingsService(PrivilegesManager privilegesManager, IUserRepository userRepository, IEmailHelper emailHelper, IWebsiteAddressService websiteAddressService, IInstanceSettingsRepository instanceSettingsRepository, IIncomingEmailService incomingEmailService)
 {
     _privilegesManager          = privilegesManager;
     _userRepository             = userRepository;
     _emailHelper                = emailHelper;
     _websiteAddressService      = websiteAddressService;
     _instanceSettingsRepository = instanceSettingsRepository;
     _incomingEmailService       = incomingEmailService;
 }
示例#3
0
 internal GroupsController(IGroupRepository groupRepository, IPrivilegesRepository privilegesRepository, IApplicationSettingsRepository applicationSettingsRepository, IServiceLogRepository serviceLogRepository, IItemInfoRepository itemInfoRepository, ISendMessageExecutor sendMessageExecutor, ISqlHelper sqlHelper)
 {
     _groupRepository               = groupRepository;
     _privilegesManager             = new PrivilegesManager(privilegesRepository);
     _applicationSettingsRepository = applicationSettingsRepository;
     _serviceLogRepository          = serviceLogRepository;
     _itemInfoRepository            = itemInfoRepository;
     _sendMessageExecutor           = sendMessageExecutor;
     _sqlHelper = sqlHelper;
 }
示例#4
0
 public ArtifactController
 (
     IArtifactRepository instanceRepository,
     IArtifactPermissionsRepository artifactPermissionsRepository,
     IPrivilegesRepository privilegesRepository,
     IServiceLogRepository log) : base(log)
 {
     _artifactRepository            = instanceRepository;
     _artifactPermissionsRepository = artifactPermissionsRepository;
     _privilegesManager             = new PrivilegesManager(privilegesRepository);
 }
示例#5
0
 public ArtifactController
 (
     IArtifactRepository instanceRepository,
     IArtifactPermissionsRepository artifactPermissionsRepository,
     IReviewsRepository reviewsRepository,
     IPrivilegesRepository privilegesRepository)
 {
     _artifactRepository            = instanceRepository;
     _artifactPermissionsRepository = artifactPermissionsRepository;
     _reviewsRepository             = reviewsRepository;
     _privilegesManager             = new PrivilegesManager(privilegesRepository);
 }
示例#6
0
 public InstanceController
 (
     IInstanceRepository instanceRepository,
     IServiceLogRepository log,
     IArtifactPermissionsRepository artifactPermissionsRepository,
     IPrivilegesRepository privilegesRepository,
     IInstanceService instanceService) : base(log)
 {
     _instanceRepository            = instanceRepository;
     _artifactPermissionsRepository = artifactPermissionsRepository;
     _instanceService      = instanceService;
     _privilegesManager    = new PrivilegesManager(privilegesRepository);
     _privilegesRepository = privilegesRepository;
 }
示例#7
0
文件: Client.cs 项目: radtek/BackO
        public Client()
        {
            AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionHandler;
            AppDomain.CurrentDomain.AssemblyResolve    += ResolveLibs;

            // Useful on Windows only. We need to elevate COM privileges to get VSS working properly (system writer in particular)
            PrivilegesManager pm = new PrivilegesManager();

            pm.Grant();
            // haven't received yet configuration from hub, we set a default value
            if (ConfigManager.GetValue("Logger.Level") == null)
            {
                ConfigManager.SetValue("Logger.Level", "TRIVIA");
            }
            Console.WriteLine("TEMP DEBUG : Client() instanciated");
            user = new User();
        }
示例#8
0
 internal UsersController
 (
     IAuthenticationRepository authenticationRepository, IUserRepository userRepository,
     ISqlSettingsRepository settingsRepository, IEmailHelper emailHelper,
     IApplicationSettingsRepository applicationSettingsRepository, IServiceLogRepository log,
     IHttpClientProvider httpClientProvider, IPrivilegesRepository privilegesRepository,
     IItemInfoRepository itemInfoRepository, ISendMessageExecutor sendMessageExecutor, IImageService imageService, ISqlHelper sqlHelper)
 {
     _authenticationRepository = authenticationRepository;
     _userRepository           = userRepository;
     _settingsRepository       = settingsRepository;
     _emailHelper = emailHelper;
     _applicationSettingsRepository = applicationSettingsRepository;
     _log = log;
     _httpClientProvider  = httpClientProvider;
     _privilegesManager   = new PrivilegesManager(privilegesRepository);
     _itemInfoRepository  = itemInfoRepository;
     _sendMessageExecutor = sendMessageExecutor;
     _imageService        = imageService;
     _sqlHelper           = sqlHelper;
 }
示例#9
0
        private Dictionary <int, Win32Api.UsnEntry> GetUsnRecordsDictionary()
        {
            PrivilegesManager pm = new PrivilegesManager();

            pm.Grant();
            Dictionary <int, Win32Api.UsnEntry> uEntries = new Dictionary <int, Win32Api.UsnEntry>();

            using (usnJ = new NtfsUsnJournal(/*brd.SystemDrive.MountPoint*/ brd /*.Snapshot.MountPoint*/)){
                Logger.Append(Severity.DEBUG, "Reading USN journal " + journalId + " for '" + brd.SystemDrive.MountPoint
                              + "' from seq " + prevTransactionId + " to seq " + transactionId
                              + " (changed entries from " + Utilities.Utils.GetLocalDateTimeFromUnixTime(refTimeStamp).ToString()
                              + " to " + Utilities.Utils.GetLocalDateTimeFromUnixTime(brd.Snapshot.TimeStamp).ToLocalTime().ToString() + ")");
                Win32Api.USN_JOURNAL_DATA stateJd = new Win32Api.USN_JOURNAL_DATA();
                stateJd.UsnJournalID = journalId;
                stateJd.NextUsn      = prevTransactionId;
                Win32Api.USN_JOURNAL_DATA newState          = new Win32Api.USN_JOURNAL_DATA();        // unused, as we maintain our own state
                List <Win32Api.UsnEntry>  changedUsnEntries = new List <Win32Api.UsnEntry>();
                usnJ.GetUsnJournalState(ref newState);
                NtfsUsnJournal.UsnJournalReturnCode retCode = usnJ.GetUsnJournalEntries(stateJd, refTimeStamp, 0xFFFFFFFF, out changedUsnEntries, out newState);

                if (retCode != NtfsUsnJournal.UsnJournalReturnCode.USN_JOURNAL_SUCCESS)
                {
                    throw new Exception(retCode.ToString());
                }

                int entryId = 0;
                foreach (Win32Api.UsnEntry ue in changedUsnEntries)
                {
                    if (ue != null && ue.Reason > 0)
                    {
                        entryId = (int)(ue.FileReferenceNumber);

                        //if(ue.Name.StartsWith("grut"))
                        //Console.WriteLine ("|--------| USN seq="+ue.USN+", item "+entryId+" ("+ue.Name+") "+((NtfsUsnJournal.UsnReasonCode)ue.Reason).ToString());

                        if (!uEntries.ContainsKey(entryId))
                        {
                            uEntries[entryId] = ue;
                        }
                        else                          // cumulate reason flags
                                                      // ignore created+deleted (temporary or short-lived (between 2 backups) items
                        {
                            if (
                                ((Win32Api.UsnReasonCode)ue.Reason).HasFlag(Win32Api.UsnReasonCode.USN_REASON_FILE_DELETE) &&
                                ((Win32Api.UsnReasonCode)uEntries[entryId].Reason).HasFlag(Win32Api.UsnReasonCode.USN_REASON_FILE_CREATE)
                                )
                            {
                                Console.WriteLine("***  item " + ue.Name + " CREATED+DELETED");
                                continue;
                            }

                            // file ID reused (file delete + new create) : totally replace previous entry
                            else if (
                                ((Win32Api.UsnReasonCode)ue.Reason).HasFlag(Win32Api.UsnReasonCode.USN_REASON_FILE_CREATE) &&
                                ((Win32Api.UsnReasonCode)uEntries[entryId].Reason).HasFlag(Win32Api.UsnReasonCode.USN_REASON_FILE_DELETE)
                                )
                            {
                                uEntries[entryId] = ue;
                            }

                            // cumulate flags
                            else if (!((Win32Api.UsnReasonCode)uEntries[entryId].Reason).HasFlag(((Win32Api.UsnReasonCode)ue.Reason)))
                            {
                                Win32Api.UsnReasonCode newReason = ((Win32Api.UsnReasonCode)uEntries[entryId].Reason) | ((Win32Api.UsnReasonCode)ue.Reason);
                                uEntries[entryId]        = ue;
                                uEntries[entryId].Reason = (uint)newReason;
                            }
                            // only keep the last rename operation

                            /*if(((NtfsUsnJournal.UsnReasonCode)ue.Reason).HasFlag(NtfsUsnJournal.UsnReasonCode.USN_REASON_RENAME_NEW_NAME) ){
                             *      Console.WriteLine ("***  item "+ue.Name+" RENAMED (reasons="+((NtfsUsnJournal.UsnReasonCode)ue.Reason).ToString());
                             *      NtfsUsnJournal.UsnReasonCode newReason = ((NtfsUsnJournal.UsnReasonCode)entries[entryId].Reason) ;
                             *      if(!((NtfsUsnJournal.UsnReasonCode)entries[entryId].Reason).HasFlag(NtfsUsnJournal.UsnReasonCode.USN_REASON_RENAME_NEW_NAME) )
                             *              newReason |=  NtfsUsnJournal.UsnReasonCode.USN_REASON_RENAME_NEW_NAME;
                             *      entries[entryId] = ue;
                             *      entries[entryId].Reason = (uint)newReason;
                             * }*/
                        }
                    }
                }
                Logger.Append(Severity.TRIVIA, "Done reading USN journal " + journalId + " for '" + brd.SystemDrive.MountPoint);
            }            //end using
            return(uEntries);
        }