示例#1
0
        public bool HasPermission <TUserPermission>(TUserPermission permission)
            where TUserPermission : Enum, IConvertible
        {
            var principal = principalService.GetCurrentPrincipal();

            var user = userRepository.GetByUsername(principal.Identity.Name);

            if (user == null)
            {
                return(false);
            }

            var permissions = EnumHelper.ConvertTo <TUserPermission>(user.Permissions);
            var userType    = (UserType)user.Type;

            switch (userType)
            {
            case UserType.Super:
            case UserType.Octacom:
                return(true);

            case UserType.Administrator:
                // Administrators should have ViewAudit permission if they want to access the Audit page.
                // It's not activated by default. Only super users have access with no restriction.
                return(Convert.ToInt32(permission) != ((int)UserPermission.ViewAudits));

            default:
                return(permissions.HasFlag(permission));
            }
        }
示例#2
0
        public virtual void SaveDocumentToDisk(TDocument document, byte[] bytes, string originalFilename)
        {
            var diskFile = storageService.GenerateUniqueUploadFilePath(Path.GetExtension(originalFilename));

            var saveResult = storageService.UploadFile(bytes, diskFile.FileName);
            var principal  = principalService.GetCurrentPrincipal();

            document.CaptureDate   = DateTime.Now;
            document.DirectoryId   = saveResult.OdissDirectory.Id;
            document.FileName      = diskFile.FileName;
            document.SubmittedBy   = principal.Identity.Name;
            document.UserSubmitted = true;
        }
示例#3
0
        public void LogActivity(string activityType, object data)
        {
            AuditTypeEnum?auditType = 0;
            var           principal = principalService.GetCurrentPrincipal();

            var appId = HttpContext.Current.Request.UrlReferrer.GetApplicationIdFromUri();

            var audit = new Audit
            {
                IDApplication = appId,
                Action        = auditType,
                UserName      = principal?.Identity?.Name,
                Recorded      = DateTime.Now,
                Data          = data
            };

            Audit.Save(audit);
        }