package com.l7tech.external.assertions.gatewaymanagement.server;

import com.l7tech.gateway.api.impl.AddAssignmentsContext;
import com.l7tech.gateway.common.security.rbac.OperationType;
import com.l7tech.gateway.common.security.rbac.Role;
import com.l7tech.objectmodel.ObjectModelException;
import com.l7tech.util.Eithers;
import com.l7tech.util.Eithers.E2;
import java.util.List;
import java.util.Map;

class ce
   implements ResourceFactorySupport.TransactionalCallback<E2<ResourceFactory.ResourceNotFoundException, ResourceFactory.InvalidResourceException, Object>> {
   final Map val$selectorMap;
   final AddAssignmentsContext val$addAssignmentsContext;
   final RbacRoleResourceFactory this$0;

   ce(RbacRoleResourceFactory var1, Map var2, AddAssignmentsContext var3) {
      this.this$0 = var1;
      this.val$selectorMap = var2;
      this.val$addAssignmentsContext = var3;
   }

   public E2<ResourceFactory.ResourceNotFoundException, ResourceFactory.InvalidResourceException, Object> execute() throws ObjectModelException {
      try {
         Role var1 = this.this$0.selectEntity(this.val$selectorMap);
         this.this$0.checkPermitted(OperationType.UPDATE, null, var1);
         List var2 = this.val$addAssignmentsContext.getAssignments();
         Role var3 = new Role();
         this.this$0.a(var3, var2);
         this.this$0.e(var3.getRoleAssignments());
         this.this$0.a(var1, var3.getRoleAssignments(), false);
         return Eithers.right2(RbacRoleResourceFactory.s);
      } catch (ResourceFactory.ResourceNotFoundException var4) {
         return Eithers.left2_1(var4);
      } catch (ResourceFactory.InvalidResourceException var5) {
         return Eithers.left2_2(var5);
      }
   }
}
