Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- override def vote(user: Tid, evidence: Tid, action: String, attribute: Option[String] = None): Future[Boolean] = {
- allTrueSequentially(
- evidenceRepo.isEvidenceExist(evidence),
- isSharedInternal(user, evidence, action) || isSharedExternal(user, evidence, action)
- )
- }
- private[this] def hasRequiredPermission(user: Tid, evidence: Tid, action: String): Future[Boolean] = {
- for {
- isCEW <- evidenceRepo.isCEW(evidence)
- requiredPerms = requiredPermission(isCEW, action)
- granted <- hasPermissions(requiredPerms.toSeq: _*)(user)
- } yield granted
- }
- private[this] def isSharedInternal(user: Tid, evidence: Tid, action: String): Future[Boolean] = {
- lazy val isShared = isSharedWithOpcodes(user, evidence, action, isInternal = true) ||
- isRoleBasedSharedWithUser(user, evidence, action)
- userRepo.isNotLiteTier(user) && isShared
- }
- private[this] def isSharedExternal(user: Tid, evidence: Tid, action: String): Future[Boolean] = {
- isSharedWithOpcodes(user, evidence, action, isInternal = false) ||
- isRoleBasedSharedWithUser(user, evidence, action)
- }
- private[this] def isRoleBasedSharedWithUser(user: Tid, evidence: Tid, action: String): Future[Boolean] = {
- evidenceRepo.isRoleBasedSharedWithUser(user = user, evidence = evidence) &&
- hasRequiredPermission(user, evidence, action)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement