def setUp(self): org_name = randstring(6) org_url_prefix = randstring(6) tmp_user = self.create_user(email='%s@%s.com' % (randstring(6), randstring(6))) org_creator = tmp_user.username org_id = ccnet_api.create_org(org_name, org_url_prefix, org_creator) self.org = ccnet_api.get_org_by_id(org_id) self.url = reverse('api-v2.1-admin-organization', args=[self.org.org_id]) self.login_as(self.admin)
def setUp(self): self.user_name = self.user.username self.admin_name = self.admin.username if LOCAL_PRO_DEV_ENV: self.org_name = randstring(6) self.org_url_prefix = randstring(6) tmp_user = self.create_user(email='%s@%s.com' % (randstring(6), randstring(6))) self.org_creator = tmp_user.username self.org_id = ccnet_api.create_org(self.org_name, self.org_url_prefix, self.org_creator) self.org_users_url = reverse('api-v2.1-admin-org-users', args=[self.org_id])
def post(self, request): """ Create an organization Permission checking: 1. only admin can perform this action. """ if not (CLOUD_MODE and MULTI_TENANCY): error_msg = 'Feature is not enabled.' return api_error(status.HTTP_403_FORBIDDEN, error_msg) org_name = request.data.get('org_name', None) if not org_name: error_msg = 'org_name invalid.' return api_error(status.HTTP_400_BAD_REQUEST, error_msg) admin_email = request.data.get('admin_email', None) if not admin_email or not is_valid_email(admin_email): error_msg = 'admin_email invalid.' return api_error(status.HTTP_400_BAD_REQUEST, error_msg) admin_name = request.data.get('admin_name') password = request.data.get('password', None) if not password: error_msg = 'password invalid.' return api_error(status.HTTP_400_BAD_REQUEST, error_msg) url_prefix = gen_org_url_prefix(5, 20) if ccnet_api.get_org_by_url_prefix(url_prefix): error_msg = 'Failed to create organization, please try again later.' return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg) try: User.objects.get(email=admin_email) except User.DoesNotExist: pass else: error_msg = "User %s already exists." % admin_email return api_error(status.HTTP_400_BAD_REQUEST, error_msg) # check profile if Profile.objects.filter(contact_email=admin_email).exists(): error_msg = "User %s already exists." % admin_email return api_error(status.HTTP_400_BAD_REQUEST, error_msg) try: new_user = User.objects.create_user(admin_email, password, is_staff=False, is_active=True) except User.DoesNotExist as e: logger.error(e) error_msg = 'Failed to add user %s.' % admin_email return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg) # update profile nickname if admin_name: Profile.objects.add_or_update(new_user.username, nickname=admin_name) try: org_id = ccnet_api.create_org(org_name, url_prefix, new_user.username) except Exception as e: logger.error(e) error_msg = 'Internal Server Error' return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg) org = ccnet_api.get_org_by_id(org_id) OrgSettings.objects.add_or_update(org, ORG_DEFAULT) try: org_info = get_org_info(org) except Exception as e: logger.error(e) error_msg = 'Internal Server Error' return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg) return Response(org_info)
def post(self, request): """ Create an organization Permission checking: 1. only admin can perform this action. """ if not MULTI_TENANCY: error_msg = 'Feature is not enabled.' return api_error(status.HTTP_403_FORBIDDEN, error_msg) if not request.user.admin_permissions.other_permission(): return api_error(status.HTTP_403_FORBIDDEN, 'Permission denied.') org_name = request.data.get('org_name', None) if not org_name: error_msg = 'org_name invalid.' return api_error(status.HTTP_400_BAD_REQUEST, error_msg) owner_email = request.data.get('owner_email', None) if not owner_email or not is_valid_email(owner_email): error_msg = 'email invalid.' return api_error(status.HTTP_400_BAD_REQUEST, error_msg) owner_password = request.data.get('owner_password', None) if not owner_password: error_msg = 'owner_password invalid.' return api_error(status.HTTP_400_BAD_REQUEST, error_msg) url_prefix = gen_org_url_prefix(5, 20) if ccnet_api.get_org_by_url_prefix(url_prefix): error_msg = 'Failed to create organization, please try again later.' return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg) try: User.objects.get(email=owner_email) except User.DoesNotExist: pass else: error_msg = "User %s already exists." % owner_email return api_error(status.HTTP_400_BAD_REQUEST, error_msg) try: new_user = User.objects.create_user(owner_email, owner_password, is_staff=False, is_active=True) except User.DoesNotExist as e: logger.error(e) error_msg = 'Failed to add user %s.' % owner_email return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg) try: org_id = ccnet_api.create_org(org_name, url_prefix, new_user.username) except Exception as e: logger.error(e) error_msg = 'Internal Server Error' return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg) org = ccnet_api.get_org_by_id(org_id) try: org_info = get_org_info(org) except Exception as e: logger.error(e) error_msg = 'Internal Server Error' return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg) return Response(org_info)
def create_org(org_name, url_prefix, creator): return ccnet_api.create_org(org_name, url_prefix, creator)