def create(db_file): """ Restore user from an backup sqlite database """ users = {} print(db_file) if not os.path.isfile(db_file): print("Database file dont exist") exit(1) with sqlite3.connect(db_file, ) as connection: c = connection.cursor() c.execute("SELECT * FROM users") rows = c.fetchall() columns = [column[0] for column in c.description] for row in rows: user_dict = dict(zip(columns, row)) key = user_dict['email'].strip().lower() # print(key) users[user_dict['email'].strip().lower()] = user_dict user_blacklist = [] all_user = User.query.all() for u in all_user: key = u.email.strip().lower() user_blacklist.append(key) # print(user_blacklist) for key, u in users.items(): if key not in user_blacklist: new = User(key, "-") new._password_hash = u['_password_hash'] new._authenticator_hash = u['_authenticator_hash'] new.firstname = u['firstname'].strip() new.lastname = u['lastname'].strip() new.admin = u['admin'] new.phone = u['phone'].strip() new.organization = u['organization'].strip() new.authenticator_status = u['authenticator_status'] new.authenticator_changed_date = u['authenticator_changed_date'] new.account_created_date = u['account_created_date'] new.last_login_date = u['last_login_date'] new.account_verified = u['account_verified'] new.account_locked = u['account_locked'] new.pinIsLocked = u['pinIsLocked'] new.failedPinAttempts = u['failedPinAttempts'] new.failedLoginAttempts = u['failedLoginAttempts'] new.budget = u['budget'] workspaceManager.triggerWorkspaceHooks(WorkspaceHooks.CREATEUSER, user=new) print(new) db.session.add(new) else: print(f"skip {key}") db.session.commit()
def create_devEnv(app, db, clean=True): print() print("Create dev enviroment") if clean is True: PermissionGroup.query.delete() AccessgroupSpaceMap.query.delete() SpaceAccessGroup.query.delete() SpaceAccessSpace.query.delete() SpaceNodeMap.query.delete() ActionLink.query.delete() pAll = Permission.query.all() permissions = {} print('Detected permissions:') for p in pAll: permissions[p.name] = p pg = PermissionGroup(name='Supervisor') if 'Log.ViewLogs' in permissions: pg.permissions.append(permissions['Log.ViewLogs']) db.session.add(pg) usersWorkspace = workspaceManager.getWorkspace('Users') u = User.query.filter_by(email='*****@*****.**').first() if u is None: u = User(email='*****@*****.**', password='******', isAdmin=False) u.firstname = "Test" u.lastname = "User" u.organization = "Konglomerat" u.account_verified = True u.pin = "123456" workspaceManager.triggerWorkspaceHooks(WorkspaceHooks.CREATEUSER, user=u) db.session.add(u) data = {'username': u.firstname + " " + u.lastname} send_message(u, "Welcome", usersWorkspace, 'welcome.message', data, 'Roseguarden') s = User.query.filter_by(email='*****@*****.**').first() if s is None: s = User(email='*****@*****.**', password='******', isAdmin=False) s.firstname = "Super" s.lastname = "User" s.organization = "Konglomerat" s.account_verified = True s.pin = "123456" s.permission_groups.append(pg) workspaceManager.triggerWorkspaceHooks(WorkspaceHooks.CREATEUSER, user=s) db.session.add(s) data = {'username': s.firstname + " " + s.lastname} send_message(s, "Welcome", usersWorkspace, 'welcome.message', data, 'Roseguarden') a = User.query.filter_by(email='*****@*****.**').first() if a is None: a = User(email='*****@*****.**', password='******', isAdmin=True) a.firstname = "Test" a.lastname = "Admin" a.organization = "Konglomerat" a.account_verified = True a.pin = "123456" a.setAuthenticatorHash(b'$2b$12$zOn/sn5hpG02xpwvj74zruGHBGYCDgayBacy9Q9zBgM6.OEExh5Zm') a.authenticator_status = UserAuthenticatorStatus.VALID workspaceManager.triggerWorkspaceHooks(WorkspaceHooks.CREATEUSER, user=a) db.session.add(a) data = {'username': a.firstname + " " + a.lastname} send_message(a, "Welcome", usersWorkspace, 'welcome.message', data, 'Roseguarden') uva = User.query.filter_by(email='*****@*****.**').first() if uva is None: uva = User(email='*****@*****.**', password='******', isAdmin=True) uva.firstname = "Test" uva.lastname = "Unverifed" uva.organization = "Konglomerat" uva.account_verified = False uva.pin = "123456" workspaceManager.triggerWorkspaceHooks(WorkspaceHooks.CREATEUSER, user=uva) db.session.add(uva) data = {'username': uva.firstname + " " + uva.lastname} send_message(uva, "Welcome", usersWorkspace, 'welcome.message', data, 'Roseguarden') node_ident = { "nodename": "Door 1", "classname": "Door", "classworkspace": "Access", "classid": "00:01:AB:EF:19:D8:00:11", "firmware_version": "0.1.2", "firmware_compiled_at": "2007-12-22T18:21:01", "firmware_flashed_at": "2007-12-24T11:31:02", "hardware_version": "0.1.0" } node_fingerprint = "43:51:43:A1:B5:FC:8B:B7:0A:3A:A9:B1:0F:66:73:A8:73:A8:19:B1" node_authentification = "Kol-Bi-Hop-Ban-Gan-To-Sep+129" n = Node.query.filter_by(fingerprint=node_fingerprint).first() if n is None: nodeManager.create_node_from_identification(node_ident, node_fingerprint, node_authentification) nodeManager.authorizeNode(node_fingerprint) n = Node.query.filter_by(fingerprint=node_fingerprint).first() sas = SpaceAccessSpace(name="Garage workshop") sas.description = "The garage workshop" sas.entrance_nodes = [n] db.session.add(sas) ag = SpaceAccessGroup(name="Friends (full access)") ag.spaces = [sas] s = User.query.filter_by(email='*****@*****.**').first() if s is not None: ag.users.append(s) if a is not None: ag.users.append(a) ag.note = "Friends with full access" ag.access_type = SpaceAccessType.UNLIMITED ag.daily_access_start_time = arrow.get('00:00', 'HH:mm') ag.daily_access_end_time = arrow.get('23:59', 'HH:mm') ag.door_access_mask = 3 ag.day_access_mask = 127 ag.access_expires_as_default = False ag.access_expires_default_days = 365 db.session.add(ag) # p = Permission(user=s, name= ViewLogs) pAll = Permission.query.all() print(pAll) # send_mail(["*****@*****.**"], "Welcome", usersWorkspace, 'welcome.mail', data ) # print(generateActionLink(usersWorkspace, 'verifyUser', { 'email' : "*****@*****.**" }, "dashboard")) db.session.commit() # userManager.removeUser('*****@*****.**') all_user = User.query.all() print(all_user) for user in all_user: print(f' User: {user} {user.password} ') print("n") print(jobManager)