mirror of
https://github.com/PostHog/posthog.git
synced 2024-11-28 17:54:41 +01:00
533c7df105
* Backend changes to implement #1461
* Added the missing migration files
* Fixes Typecheck errors
* Refactor request.user.team_set.get() to use request.user.team
* Updated user patch method to change current_team on team id instead of name
* Merged migration file
* Changes team property to return first item in queryset
* Fixes failing tests
* Changed User api to return the ids of the teams they are currently part of
* Frontend for changing teams
* Update and simplify migrations
* Improve team and user buttons
* Make team changing backend more logical
* Improve current_team mechanics
* Update test_team.py
* Fix Team.objects.create_with_data
* Update migration
* Update tests
* Make setup_review more convenient
* Add Organization and OrganizationMembership
* Replace is_admin with level
* Extend API
* Update team.py
* Improve modeling
* Improve handling of new mechanics
* Add proper migration
* Remove _ensure_organization_and_team
* Update 0084_org_team_user.py
* Improve user, org and team creation
* Make MembershipLevel more flexible for the future
* Add member deletion
* Fix naive datetime warnings
* Update setup_review.py
* Update API route
* Make PersonalAPIKey changes
* Update models and migrations, fix typing
* Fix typing
* Use MAC-less UUID v1 instead of v4 for better performance
* Add abstract UUIDModel
* Update utils.py
* Update utils.py
* Fix multi/unicast bit
* Update APIs, frontend and tests
* Update pull_request_template.md
* Fix comment
* Fix migration error
* Compress migrations
* Updates with minimal renaming
* More updates
* Make further updates
* Update test_team_user.py
* Fix issues
* Add migration
* Satisfy mypy
* Remove Signup redirect on logged in
* Use uuid1_macless in Person
* Fix typing
* Update tests
* Update /api/team/signup to /api/organization/signup
* Fix mypy issues and update tests
The remaining failures are actually missing functionality (TDD applied), so filling these in.
* Update 0086_org_live
* Make small improvements
* Implement permissions
* Remove now unneccesary membership check
* Update setup_dev.py
* Make small frontend improvements
* Add drf-nested-routers as requirement
* Remove unused import
* Implemented nested routes
* Remove cruft
* Add relevant org/proj/user name to headings
* Fix imports
* Update migration
* Replace unreliable drf-nested-routers with drf-extensions
* Improve unset team handling
* Make org and team creation proper
* Update migration
* Fix migration
* Update TopContent
* Update command palette for new sidebar structure
* Remove deprecated demo data deletion
* Assume that each org has a project and fix typing
* Require paid plan for multiple orgs and projects
* Make HogFlix demo a separate team
* Update migration
* Slightly improve style
* Adjust page layout bottom padding
* Make user dropdown nicer
* Fix base app tests
* Satisfy mypy
* Fix test_leave_organization
* Improve wording
* Possibly fix import
* Remove misplaced None check
* Enhance org and teams APIs and add tests
* Fix /api/projects for particular Team
* Improve invites and demo data
* Address feedback
* Put everything related to billing on Organization
* Fix minor issues
* Simplify invitation creation
* Update team model
* Make orgs and projects premium only on self-hosted
* Improve testing
* Update migration
* Remove extra License import
* Fix minor issues
* Fix Django tests
* Fix Cypress
* Fix yarn build
* Fix TeamSignupViewset
* Fix posthog-production incompatibility
* Remove extraneous insight endpoint registration
* Adjust tests for posthog-production
* Simplify invitations and fix email validation
* Address all feedback
* Satisfy mypy
* Update migration
* Fix constraint removal in migration
* Update tests
* Fix test creation edge case
* Run posthog-production CI tests against this branch and teams-live
* Ensure that js_posthog_api_key is always passed
* Fix preflight check pre-login
* Update cypress tests
* Update instanceStatus.js
* Bring ee tets up to par
* Bring actions-ux-201012 back
* Cypress retry in cypress.json
* Revert "Run posthog-production CI tests against this branch and teams-live"
This reverts commit d79cb844d8
.
Co-authored-by: anna <ms.annaphilips@gmail.com>
Co-authored-by: Anna Philips <aphilips@matmacorp.com>
46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
from typing import Any
|
|
|
|
import requests
|
|
from django.db import models
|
|
|
|
|
|
class LicenseError(Exception):
|
|
"""Exception raised for licensing errors.
|
|
|
|
Attributes:
|
|
code -- code of the exception
|
|
detail -- message of the exception
|
|
"""
|
|
|
|
def __init__(self, code, detail):
|
|
self.code = code
|
|
self.detail = detail
|
|
|
|
|
|
class LicenseManager(models.Manager):
|
|
def create(self, *args: Any, **kwargs: Any) -> "License":
|
|
validate = requests.post("https://license.posthog.com/licenses/activate", data={"key": kwargs["key"]})
|
|
resp = validate.json()
|
|
if not validate.ok:
|
|
raise LicenseError(resp["code"], resp["detail"])
|
|
|
|
kwargs["valid_until"] = resp["valid_until"]
|
|
kwargs["plan"] = resp["plan"]
|
|
return self._create(*args, **kwargs)
|
|
|
|
def _create(self, *args: Any, **kwargs: Any) -> "License":
|
|
return super().create(*args, **kwargs)
|
|
|
|
|
|
class License(models.Model):
|
|
objects = LicenseManager()
|
|
|
|
created_at: models.DateTimeField = models.DateTimeField(auto_now_add=True)
|
|
plan: models.CharField = models.CharField(max_length=200)
|
|
valid_until: models.DateTimeField = models.DateTimeField()
|
|
key: models.CharField = models.CharField(max_length=200)
|
|
|
|
ENTERPRISE_PLAN = "enterprise"
|
|
ENTERPRISE_FEATURES = ["zapier", "organizations_projects"]
|
|
PLANS = {ENTERPRISE_PLAN: ENTERPRISE_FEATURES}
|