added avatar url
parent
03d926dbe4
commit
8366c4199d
|
@ -79,6 +79,7 @@ def send_avatars_img(path):
|
|||
Import all views
|
||||
'''
|
||||
from .views import MenuViews
|
||||
from .views import AvatarViews
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
from admin import app
|
||||
|
||||
from .keycloak_client import KeycloakClient
|
||||
from .moodle import Moodle
|
||||
from .nextcloud import Nextcloud
|
||||
from .nextcloud_exc import *
|
||||
from .avatars import Avatars
|
||||
|
||||
from .helpers import filter_roles_list, filter_roles_listofdicts
|
||||
|
||||
import logging as log
|
||||
from pprint import pprint
|
||||
import traceback, os
|
||||
|
||||
import traceback, os, json
|
||||
from time import sleep
|
||||
|
||||
from .nextcloud_exc import *
|
||||
from .helpers import filter_roles_list, filter_roles_listofdicts
|
||||
|
||||
from flask_socketio import SocketIO, emit, join_room, leave_room, \
|
||||
close_room, rooms, disconnect, send
|
||||
socketio = SocketIO(app)
|
||||
import json
|
||||
|
||||
class Admin():
|
||||
def __init__(self):
|
||||
|
@ -121,6 +121,19 @@ class Admin():
|
|||
except:
|
||||
log.warning('KEYCLOAK: Seems to be there already')
|
||||
|
||||
|
||||
try:
|
||||
log.warning('KEYCLOAK: Adding default users system_teacher, system_manager and system_student users')
|
||||
uid=self.keycloak.add_user('system_manager','Manager','System','fakemanager@fake.com','m@n@g3r',group='manager')
|
||||
self.keycloak.assign_realm_roles(uid,'manager')
|
||||
uid=self.keycloak.add_user('system_teacher','Teacher','System','faketeacher@fake.com','t3@ch3r',group='teacher')
|
||||
self.keycloak.assign_realm_roles(uid,'teacher')
|
||||
uid=self.keycloak.add_user('system_student','Student','System','fakestudent@fake.com','stud3nt',group='student')
|
||||
self.keycloak.assign_realm_roles(uid,'student')
|
||||
log.warning('KEYCLOAK: OK')
|
||||
except:
|
||||
log.warning('KEYCLOAK: Seems to be there already')
|
||||
|
||||
try:
|
||||
log.warning('NEXTCLOUD: Adding user ddadmin and adding to group admin')
|
||||
self.nextcloud.add_user(dduser,ddpassword,group='admin',email=ddmail,displayname='DD Admin')
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
from requests import get, post
|
||||
from admin import app
|
||||
|
||||
import logging as log
|
||||
from pprint import pprint
|
||||
import os
|
||||
from os import listdir
|
||||
from os.path import isfile, join
|
||||
|
||||
from .postgres import Postgres
|
||||
|
||||
# Module variables to connect to moodle api
|
||||
|
||||
class Avatars():
|
||||
|
||||
def __init__(self):
|
||||
self.keycloak_pg=Postgres('isard-apps-postgresql','keycloak',os.environ['KEYCLOAK_DB_USER'],os.environ['KEYCLOAK_DB_PASSWORD'])
|
||||
|
||||
def username2id(self,username):
|
||||
q = """select id, username from user_entity where username = '%s'""" % (username)
|
||||
try:
|
||||
return self.keycloak_pg.select(q)[0][0]
|
||||
except:
|
||||
pass
|
||||
return False
|
||||
|
||||
def get_files(self):
|
||||
path='avatars/master-avatars/'
|
||||
onlyfiles = [f for f in listdir(path) if isfile(join(path, f))]
|
||||
pprint(onlyfiles)
|
||||
|
||||
# def generate_missing(self, users):
|
||||
# for u in users:
|
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
|
@ -0,0 +1,23 @@
|
|||
#!flask/bin/python
|
||||
# coding=utf-8
|
||||
from admin import app
|
||||
import logging as log
|
||||
import traceback
|
||||
|
||||
from uuid import uuid4
|
||||
import time,json
|
||||
import sys,os
|
||||
from flask import render_template, Response, request, redirect, url_for, jsonify, send_file
|
||||
|
||||
from pprint import pprint
|
||||
|
||||
from ..lib.avatars import Avatars
|
||||
|
||||
avatars=Avatars()
|
||||
|
||||
@app.route('/isard-sso-admin/avatar/<username>', methods=['GET'])
|
||||
def avatar(username):
|
||||
userid=avatars.username2id(username)
|
||||
if userid:
|
||||
return send_file('../avatars/master-avatars/'+userid, mimetype='image/jpeg')
|
||||
return send_file('static/img/usera.jpg', mimetype='image/jpeg')
|
|
@ -19,7 +19,7 @@ services:
|
|||
- /etc/localtime:/etc/localtime:ro
|
||||
- ${BUILD_ROOT_PATH}/admin/src:/admin # Revome in production
|
||||
- ${BUILD_ROOT_PATH}/../custom:/admin/custom #:ro in production
|
||||
- ${DATA_FOLDER}/avatars:/admin/avatars:rw
|
||||
- ${DATA_FOLDER}/avatars:/admin/avatars:ro
|
||||
- ${DATA_FOLDER}/moodle/saml2:/admin/moodledata/saml2:rw
|
||||
- ${DATA_FOLDER}/saml_certs:/admin/saml_certs:rw
|
||||
env_file:
|
||||
|
|
|
@ -14,7 +14,7 @@ services:
|
|||
#- ${BUILD_ROOT_PATH}/docker/api/src:/api:rw ## Develop
|
||||
- ${CUSTOM_PATH}/custom/menu:/api/menu
|
||||
- ${CUSTOM_PATH}/custom/img:/api/api/static/img
|
||||
- ${DATA_FOLDER}/avatars/:/api/avatars:ro
|
||||
- ${DATA_FOLDER}/avatars:/api/avatars:ro
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- isard_net
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
from minio import Minio
|
||||
from minio.commonconfig import REPLACE, CopySource
|
||||
# Create client with anonymous access.
|
||||
# client = Minio("isard-apps-avatars")
|
||||
|
||||
# # Create client with access and secret key.
|
||||
# client = Minio("s3.amazonaws.com", "ACCESS-KEY", "SECRET-KEY")
|
||||
|
||||
# Create client with access key and secret key with specific region.
|
||||
client = Minio(
|
||||
"isard-sso-avatars:9000",
|
||||
access_key="AKIAIOSFODNN7EXAMPLE",
|
||||
secret_key="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
|
||||
secure=False
|
||||
)
|
||||
|
||||
buckets = client.list_buckets()
|
||||
for bucket in buckets:
|
||||
print(bucket.name, bucket.creation_date)
|
||||
response = client.get_object("master-avatars", "89423d20-3915-4e67-b227-86f099f1816a")
|
||||
print(response)
|
||||
|
||||
result = client.copy_object(
|
||||
"master-avatars",
|
||||
"prova",
|
||||
CopySource("master-avatars", "89423d20-3915-4e67-b227-86f099f1816a"),
|
||||
)
|
||||
client.remove_object("master-avatars", "prova")
|
||||
result = client.fput_object(
|
||||
"master-avatars", "test", "admin/static/img/background.png",
|
||||
content_type="image/jpeg ",
|
||||
)
|
||||
objects = client.list_objects("master-avatars")
|
||||
for obj in objects:
|
||||
print(obj.key)
|
||||
exit(1)
|
||||
try:
|
||||
response = client.get_object("master-avatars", "my-object")
|
||||
print(response)
|
||||
# Read data from response.
|
||||
finally:
|
||||
response.close()
|
||||
response.release_conn()
|
||||
|
||||
# region="my-region",
|
||||
# # Create client with custom HTTP client using proxy server.
|
||||
# import urllib3
|
||||
# client = Minio(
|
||||
# "SERVER:PORT",
|
||||
# access_key="ACCESS_KEY",
|
||||
# secret_key="SECRET_KEY",
|
||||
# secure=True,
|
||||
# http_client=urllib3.ProxyManager(
|
||||
# "https://PROXYSERVER:PROXYPORT/",
|
||||
# timeout=urllib3.Timeout.DEFAULT_TIMEOUT,
|
||||
# cert_reqs="CERT_REQUIRED",
|
||||
# retries=urllib3.Retry(
|
||||
# total=5,
|
||||
# backoff_factor=0.2,
|
||||
# status_forcelist=[500, 502, 503, 504],
|
||||
# ),
|
||||
# ),
|
||||
# )
|
Loading…
Reference in New Issue