def action_execute(self, ids): from gengine.metadata import DBSession from gengine.app.model import t_tasks, t_taskexecutions from gengine.app.registries import get_task_registry tasks = DBSession.execute( t_tasks.select().where(t_tasks.c.id.in_(*ids)) ).fetchall() for task in tasks: result = get_task_registry().execute( name=task["task_name"], config=task["config"] ) logged = result.get("log", None) success = result.get("success", True) DBSession.bind.execute( t_taskexecutions.insert().values({ 'task_id': task["id"], 'planned_at': dt_now(), 'finished_at': dt_now(), 'log': logged, 'success': success }) ) flash("Executed")
def get_permissions(request): if not asbool(settings.get("enable_user_authentication", False)): return [] from gengine.app.model import DBSession, t_auth_tokens, t_auth_users, t_auth_roles, t_auth_roles_permissions, t_auth_users_roles from sqlalchemy.sql import select j = t_auth_tokens.join(t_auth_users).join(t_auth_users_roles).join(t_auth_roles).join(t_auth_roles_permissions) q = select([t_auth_roles_permissions.c.name],from_obj=j).where(t_auth_tokens.c.token==request.headers.get("X-Auth-Token")) return [r["name"] for r in DBSession.execute(q).fetchall()]
def get_permissions(request): if not asbool(settings.get("enable_user_authentication", False)): return [x[0] for x in yield_all_perms()] if not request.user: return [] from gengine.app.model import DBSession, t_auth_tokens, t_auth_users, t_auth_roles, t_auth_roles_permissions, \ t_auth_users_roles from sqlalchemy.sql import select j = t_auth_users_roles.join(t_auth_roles).join(t_auth_roles_permissions) q = select([t_auth_roles_permissions.c.name], from_obj=j).where( t_auth_users_roles.c.auth_user_id == request.user.id) rows = DBSession.execute(q).fetchall() return [r["name"] for r in rows]
def get_user(request): if not asbool(settings.get("enable_user_authentication",False)): return None token = request.headers.get('X-Auth-Token') if token is not None: from gengine.app.model import DBSession, AuthUser, AuthToken tokenObj = DBSession.query(AuthToken).filter(AuthToken.token==token).first() user = None if tokenObj and tokenObj.valid_until<datetime.datetime.utcnow(): tokenObj.extend() if tokenObj: user = tokenObj.user if not user: raise APIError(401, "invalid_token", "Invalid token provided.") if not user.active: raise APIError(404, "user_is_not_activated", "Your user is not activated.") return user return None