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)); } }
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; }
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); }