def _check_is_authorize_user(self,request,info): if 'resource' in info and info['resource']=='users' and 'method' in info \ and info['method']=='PUT' and 'userid' in info and info['userid'] \ and 'action' in info and info['action']=='authorize_user': print '[auth] authorize user' userid=info['userid'] body=json.loads(request.body) session=Session() try: session.query(User).filter_by(id=userid).one() except: raise webob.exc.HTTPBadRequest(detail="User doesn't exist.") #body : 'vnspolciy' , 'vcspolicy' , 'vnsitespolicy' , 'vnlinkspolicy' , 'sitespolicy' if 'vnspolicy' in body['user']: vnspolicy=body['user']['vnspolicy'] for vnpolicy_key,vnpolicy_value in vnspolicy.iteritems(): if vnpolicy_key in ['create_vn',]: session=Session() query=session.query(VnsPolicy).filter_by(userid=userid) if query.count(): userpolicy=query.one() userpolicy.update({vnpolicy_key:attributes.convert_to_boolean(vnpolicy_value)}) session.commit() else: vnkwargs={vnpolicy_key:attributes.convert_to_boolean(vnpolicy_value)} session.add(VnsPolicy(id=uuid4().get_hex(),userid=userid,**vnkwargs)) session.commit() if 'vcspolicy' in body['user']: vcspolicy=body['user']['vcspolicy'] for vcpolicy_key,vcpolicy_value in vcspolicy.iteritems(): if vcpolicy_key in ['create_vc',]: session=Session() query=session.query(VcsPolicy).filter_by(userid=userid) if query.count(): userpolicy=query.one() userpolicy.update({vcpolicy_key:attributes.convert_to_boolean(vcpolicy_value)}) session.commit() else: vckwargs={vcpolicy_key:attributes.convert_to_boolean(vcpolicy_value)} session.add(VcsPolicy(id=uuid4().get_hex(),userid=userid,**vckwargs)) session.commit() if 'vnsitespolicy' in body['user']: pass if 'vnlinkspolicy' in body['user']: pass if 'sitespolicy' in body['user']: pass return True return False
def authorize_user(self,context,id,body,**kwargs): #return None print "[plugin] authorize_user" action = "users:authorize_user" try: if policy.enforce(context, action, body['user']) == False: raise webob.exc.HTTPNotFound() except exceptions.PolicyNotAuthorized: raise webob.exc.HTTPNotFound() if 'user' in body: try: tenantinfo=context.session.query(huawei_models_v2.TenantInformation).filter_by(tenantid=self._a2b(id)).one() except: raise webob.exc.HTTPNotFound() for policy_key,policy_value in body['user'].iteritems(): if policy_key in ["vcspolicy","vnspolicy","vnsitespolicy", "vnlinkspolicy","sitespolicy"]: if policy_key == "vcspolicy": for vcpolicy_key,vcpolicy_value in policy_value.iteritems(): if vcpolicy_key in ["create_vc",]: vcbool=convert_to_boolean(vcpolicy_value) if vcbool == True: self.write_policy_true(vcpolicy_key,tenantinfo.username) else: raise webob.exc.HTTPNotFound() elif policy_key == "vnspolicy": for vnpolicy_key,vnpolicy_value in policy_value.iteritems(): if vnpolicy_key in ["create_vn",]: vnbool=convert_to_boolean(vnpolicy_value) if vnbool == True: self.write_policy_true(vnpolicy_key,tenantinfo.username) elif policy_key == "vnsitespolicy": pass elif policy_key == "vnlinkspolicy": pass elif policy_key == "sitespolicy": pass else: raise webob.exc.HTTPNotFound() else: raise webob.exc.HTTPBadRequest()
def test_convert_to_boolean_str(self): self.assertIs(attributes.convert_to_boolean("True"), True) self.assertIs(attributes.convert_to_boolean("true"), True) self.assertIs(attributes.convert_to_boolean("False"), False) self.assertIs(attributes.convert_to_boolean("false"), False) self.assertIs(attributes.convert_to_boolean("0"), False) self.assertIs(attributes.convert_to_boolean("1"), True) self.assertRaises(q_exc.InvalidInput, attributes.convert_to_boolean, "7")
def test_convert_to_boolean_str(self): self.assertIs(attributes.convert_to_boolean('True'), True) self.assertIs(attributes.convert_to_boolean('true'), True) self.assertIs(attributes.convert_to_boolean('False'), False) self.assertIs(attributes.convert_to_boolean('false'), False) self.assertIs(attributes.convert_to_boolean('0'), False) self.assertIs(attributes.convert_to_boolean('1'), True) self.assertRaises(q_exc.InvalidInput, attributes.convert_to_boolean, '7')
def test_convert_to_boolean_int(self): self.assertIs(attributes.convert_to_boolean(0), False) self.assertIs(attributes.convert_to_boolean(1), True) self.assertRaises(q_exc.InvalidInput, attributes.convert_to_boolean, 7)
def test_convert_to_boolean_bool(self): self.assertIs(attributes.convert_to_boolean(True), True) self.assertIs(attributes.convert_to_boolean(False), False)