Merge branch 'main' into ldap-tls

This commit is contained in:
primetheus 2023-08-17 12:55:46 -04:00 коммит произвёл GitHub
Родитель 7c06824ad2 e9dff9336f
Коммит 46eea47c89
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
11 изменённых файлов: 1011 добавлений и 1050 удалений

Просмотреть файл

@ -67,6 +67,8 @@ OKTA_PRIVATE_KEY='{"kty": "RSA", ...}'
## Who to assign the issues to
#ISSUE_ASSIGNEE=githubber
## Sync schedule, cron style schedule
## Shortcode for emu accounts
#EMU_SHORTCODE=volcano
## Default (hourly): 0 * * * *
SYNC_SCHEDULE=0 * * * *

2
.github/workflows/codeql.yml поставляемый
Просмотреть файл

@ -1,6 +1,6 @@
name: "CodeQL analysis"
on: [push, pull_request]
on: [pull_request]
jobs:
build:

16
.vscode/launch.json поставляемый Normal file
Просмотреть файл

@ -0,0 +1,16 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true
}
]
}

Просмотреть файл

@ -7,7 +7,7 @@ verify_ssl = true
pytest = "*"
pytest-mock = "*"
isort = "*"
black = "==21.11b1"
black = "*"
pre-commit = "*"
pylint = "*"
seed-isort-config = "*"

1989
Pipfile.lock сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -197,6 +197,7 @@ ISSUE_ASSIGNEE=githubber
SYNC_SCHEDULE=0 * * * *
TEST_MODE=false
SYNCMAP_ONLY=false
EMU_SHORTCODE=volcano
### Automatically add users missing from the organization
ADD_MEMBER=false
@ -204,6 +205,22 @@ ADD_MEMBER=false
REMOVE_ORG_MEMBERS_WITHOUT_TEAM=false
```
### Sample `.env` setting for flask app
```env
####################
## Flask Settings ##
####################
## Default: app, comment out to run once as a script
FLASK_APP=app
## Default: production
FLASK_ENV=development
## Default: 5000
FLASK_RUN_PORT=5000
## Default: 127.0.0.1
FLASK_RUN_HOST=0.0.0.0
```
### Sample `syncmap.yml` custom mapping file
```yaml
---

16
app.py
Просмотреть файл

@ -382,11 +382,15 @@ def get_directory_from_slug(slug, custom_map, org):
return custom_map[slug]
thread = threading.Thread(target=sync_all_teams)
thread.start()
if "FLASK_APP" in os.environ:
thread = threading.Thread(target=sync_all_teams)
thread.start()
if __name__ == "__main__":
app.run(
host=os.environ.get("FLASK_RUN_HOST", "0.0.0.0"),
port=os.environ.get("FLASK_RUN_PORT", "5000"),
)
if "FLASK_APP" in os.environ:
app.run(
host=os.environ.get("FLASK_RUN_HOST", "0.0.0.0"),
port=os.environ.get("FLASK_RUN_PORT", "5000"),
)
else:
sync_all_teams()

Просмотреть файл

@ -108,6 +108,8 @@ class AzureAD:
username = user_info[self.USERNAME_ATTRIBUTE]
if self.AZURE_USER_IS_UPN:
username = username.split("@")[0]
if "EMU_SHORTCODE" in os.environ:
username = username + "_" + os.environ["EMU_SHORTCODE"]
user = {
"username": username,
"email": user_info["mail"],

Просмотреть файл

@ -131,7 +131,10 @@ class LDAPClient:
).casefold()
else:
email = None
if "EMU_SHORTCODE" in os.environ:
username = (
username + "_" + os.environ["EMU_SHORTCODE"]
)
user_info = {"username": username, "email": email}
member_list.append(user_info)
except Exception as e:

Просмотреть файл

@ -69,7 +69,9 @@ class Okta:
try:
username = getattr(user.profile, self.USERNAME_ATTRIBUTE)
username = username.split("@")[0]
username = re.sub('[^0-9a-zA-Z-]+', '-', username)
username = re.sub("[^0-9a-zA-Z-]+", "-", username)
if "EMU_SHORTCODE" in os.environ:
username = username + "_" + os.environ["EMU_SHORTCODE"]
member_list.append(
{
"username": username,

Просмотреть файл

@ -20,6 +20,10 @@ class OneLogin:
role = self.client.get_roles(query_parameters={"name": group_name})
users = self.client.get_users(query_parameters={"role_id": role[0].id})
for user in users:
member_list.append({"username": user.username, "email": user.email})
if "EMU_SHORTCODE" in os.environ:
username = user.username + "_" + os.environ["EMU_SHORTCODE"]
else:
username = user.username
member_list.append({"username": username, "email": user.email})
return member_list