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()
Example #3
0
 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")
Example #4
0
 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')
Example #5
0
 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')
Example #6
0
 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)
Example #7
0
 def test_convert_to_boolean_bool(self):
     self.assertIs(attributes.convert_to_boolean(True), True)
     self.assertIs(attributes.convert_to_boolean(False), False)
Example #8
0
 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)
Example #9
0
 def test_convert_to_boolean_bool(self):
     self.assertIs(attributes.convert_to_boolean(True), True)
     self.assertIs(attributes.convert_to_boolean(False), False)