equal
deleted
inserted
replaced
1047 def __call__(self, cls, req, rset=None, row=None, col=0, **kwargs): |
1047 def __call__(self, cls, req, rset=None, row=None, col=0, **kwargs): |
1048 if kwargs.get('entity'): |
1048 if kwargs.get('entity'): |
1049 return self.score_entity(kwargs['entity']) |
1049 return self.score_entity(kwargs['entity']) |
1050 if rset is None: |
1050 if rset is None: |
1051 return 0 |
1051 return 0 |
1052 user = req.user |
|
1053 action = self.action |
|
1054 if row is None: |
1052 if row is None: |
1055 score = 0 |
1053 score = 0 |
1056 need_local_check = [] |
1054 need_local_check = [] |
1057 geteschema = req.vreg.schema.eschema |
1055 geteschema = req.vreg.schema.eschema |
|
1056 user = req.user |
|
1057 action = self.action |
1058 for etype in rset.column_types(0): |
1058 for etype in rset.column_types(0): |
1059 if etype in BASE_TYPES: |
1059 if etype in BASE_TYPES: |
1060 return 0 |
1060 return 0 |
1061 eschema = geteschema(etype) |
1061 eschema = geteschema(etype) |
1062 if not user.matching_groups(eschema.get_groups(action)): |
1062 if not user.matching_groups(eschema.get_groups(action)): |
1069 return 0 |
1069 return 0 |
1070 score += 1 |
1070 score += 1 |
1071 if need_local_check: |
1071 if need_local_check: |
1072 # check local role for entities of necessary types |
1072 # check local role for entities of necessary types |
1073 for i, row in enumerate(rset): |
1073 for i, row in enumerate(rset): |
1074 if not rset.description[i][0] in need_local_check: |
1074 if not rset.description[i][col] in need_local_check: |
1075 continue |
1075 continue |
1076 if not self.score(req, rset, i, col): |
1076 if not self.score(req, rset, i, col): |
1077 return 0 |
1077 return 0 |
1078 score += 1 |
1078 score += 1 |
1079 return score |
1079 return score |