users must login
This commit is contained in:
68
cao_osint.egg-info/PKG-INFO
Normal file
68
cao_osint.egg-info/PKG-INFO
Normal file
@@ -0,0 +1,68 @@
|
||||
Metadata-Version: 2.1
|
||||
Name: cao_osint
|
||||
Version: 1.0
|
||||
Summary: cao_osint
|
||||
Home-page:
|
||||
Author:
|
||||
Author-email:
|
||||
Keywords: web pyramid pylons
|
||||
Classifier: Programming Language :: Python
|
||||
Classifier: Framework :: Pyramid
|
||||
Classifier: Topic :: Internet :: WWW/HTTP
|
||||
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
|
||||
Requires-Dist: plaster_pastedeploy
|
||||
Requires-Dist: pyramid
|
||||
Requires-Dist: pyramid_jinja2
|
||||
Requires-Dist: pyramid_debugtoolbar
|
||||
Requires-Dist: waitress
|
||||
Requires-Dist: alembic
|
||||
Requires-Dist: pyramid_retry
|
||||
Requires-Dist: pyramid_layout
|
||||
Requires-Dist: pyramid_tm
|
||||
Requires-Dist: python-magic
|
||||
Requires-Dist: SQLAlchemy
|
||||
Requires-Dist: transaction
|
||||
Requires-Dist: zope.sqlalchemy
|
||||
Requires-Dist: wtforms
|
||||
Requires-Dist: webhelpers2
|
||||
Requires-Dist: passlib
|
||||
Requires-Dist: markdown
|
||||
Provides-Extra: testing
|
||||
Requires-Dist: WebTest>=1.3.1; extra == "testing"
|
||||
Requires-Dist: pytest>=3.7.4; extra == "testing"
|
||||
Requires-Dist: pytest-cov; extra == "testing"
|
||||
|
||||
# README #
|
||||
|
||||
**cao_osint** est une application pour créer un blog simple. Elle est inspirée du tutorial [**pyramid_blogr**](https://docs.pylonsproject.org/projects/pyramid-blogr/en/latest/index.html).
|
||||
|
||||
## Fonctionnalités ##
|
||||
|
||||
Bien que **cao_osint** soit une application minimale et simple, elle possède toutes les fonctions nécessaire pour gérer un blog :
|
||||
|
||||
- Gestion des utilisateurs du blog (admin ou rédacteur)
|
||||
- Authentification et autorisation des utilisateurs
|
||||
- Gestion des posts du blog avec des statuts : *publié, brouillon ou privé*
|
||||
- Gestion des tags (un post peut avoir un tag)
|
||||
- Les posts sont rédigé avec le langage *Markdown*
|
||||
- Possibilité de faire des recherches sur le titre et le corps des posts
|
||||
|
||||
## Add-on requis ##
|
||||
|
||||
- Python 3.7.1
|
||||
- Pyramid 1.10
|
||||
- SQLite 3.35.5
|
||||
- pyramid-jinja2 2.7 : view templating
|
||||
- wtforms 2.2.1 : form library
|
||||
- webhelpers2 2.0 : various web building related helpers
|
||||
- Markdown 3.4.1 :
|
||||
|
||||
|
||||
### 1.0 (22.01.2023)
|
||||
|
||||
- version initiale
|
||||
|
||||
0.1
|
||||
---
|
||||
|
||||
- Initial version.
|
||||
55
cao_osint.egg-info/SOURCES.txt
Normal file
55
cao_osint.egg-info/SOURCES.txt
Normal file
@@ -0,0 +1,55 @@
|
||||
CHANGES.txt
|
||||
MANIFEST.in
|
||||
README.md
|
||||
development.ini
|
||||
production.ini
|
||||
pytest.ini
|
||||
rtd.txt
|
||||
setup.py
|
||||
cao_osint/__init__.py
|
||||
cao_osint/forms.py
|
||||
cao_osint/pshell.py
|
||||
cao_osint/routes.py
|
||||
cao_osint/security.py
|
||||
cao_osint/tests.py
|
||||
cao_osint.egg-info/PKG-INFO
|
||||
cao_osint.egg-info/SOURCES.txt
|
||||
cao_osint.egg-info/dependency_links.txt
|
||||
cao_osint.egg-info/entry_points.txt
|
||||
cao_osint.egg-info/not-zip-safe
|
||||
cao_osint.egg-info/requires.txt
|
||||
cao_osint.egg-info/top_level.txt
|
||||
cao_osint/alembic/script.py.mako
|
||||
cao_osint/alembic/versions/README.txt
|
||||
cao_osint/models/__init__.py
|
||||
cao_osint/models/blog_record.py
|
||||
cao_osint/models/meta.py
|
||||
cao_osint/models/user.py
|
||||
cao_osint/scripts/__init__.py
|
||||
cao_osint/scripts/initialize_db.py
|
||||
cao_osint/services/__init__.py
|
||||
cao_osint/services/blog_record.py
|
||||
cao_osint/services/user.py
|
||||
cao_osint/static/favicon.ico
|
||||
cao_osint/static/pyramid-16x16.png
|
||||
cao_osint/static/pyramid.png
|
||||
cao_osint/static/theme.css
|
||||
cao_osint/static/uploads/dolibarr-psw.txt
|
||||
cao_osint/templates/404.jinja2
|
||||
cao_osint/templates/apropos.jinja2
|
||||
cao_osint/templates/blog.jinja2
|
||||
cao_osint/templates/blog_edit.jinja2
|
||||
cao_osint/templates/blog_search.jinja2
|
||||
cao_osint/templates/home.jinja2
|
||||
cao_osint/templates/layout.jinja2
|
||||
cao_osint/templates/login.jinja2
|
||||
cao_osint/templates/tag_edit.jinja2
|
||||
cao_osint/templates/tags.jinja2
|
||||
cao_osint/templates/upload_edit.jinja2
|
||||
cao_osint/templates/uploads.jinja2
|
||||
cao_osint/templates/user_edit.jinja2
|
||||
cao_osint/templates/users.jinja2
|
||||
cao_osint/views/__init__.py
|
||||
cao_osint/views/blog.py
|
||||
cao_osint/views/default.py
|
||||
cao_osint/views/notfound.py
|
||||
1
cao_osint.egg-info/dependency_links.txt
Normal file
1
cao_osint.egg-info/dependency_links.txt
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
5
cao_osint.egg-info/entry_points.txt
Normal file
5
cao_osint.egg-info/entry_points.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[console_scripts]
|
||||
initialize_cao_osint_db = cao_osint.scripts.initialize_db:main
|
||||
|
||||
[paste.app_factory]
|
||||
main = cao_osint:main
|
||||
1
cao_osint.egg-info/not-zip-safe
Normal file
1
cao_osint.egg-info/not-zip-safe
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
22
cao_osint.egg-info/requires.txt
Normal file
22
cao_osint.egg-info/requires.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
plaster_pastedeploy
|
||||
pyramid
|
||||
pyramid_jinja2
|
||||
pyramid_debugtoolbar
|
||||
waitress
|
||||
alembic
|
||||
pyramid_retry
|
||||
pyramid_layout
|
||||
pyramid_tm
|
||||
python-magic
|
||||
SQLAlchemy
|
||||
transaction
|
||||
zope.sqlalchemy
|
||||
wtforms
|
||||
webhelpers2
|
||||
passlib
|
||||
markdown
|
||||
|
||||
[testing]
|
||||
WebTest>=1.3.1
|
||||
pytest>=3.7.4
|
||||
pytest-cov
|
||||
1
cao_osint.egg-info/top_level.txt
Normal file
1
cao_osint.egg-info/top_level.txt
Normal file
@@ -0,0 +1 @@
|
||||
cao_osint
|
||||
BIN
cao_osint.sqlite
BIN
cao_osint.sqlite
Binary file not shown.
@@ -29,12 +29,12 @@
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="{{ request.route_url('home') }}">CAO Blogr</a>
|
||||
<a class="navbar-brand" href="{{ request.route_url('home') }}">CAOSInt</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse" id="myNavbar">
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li><a href="{{ request.route_url('blog_search') }}"><span class="glyphicon glyphicon-search"></span></a></li>
|
||||
{% if request.authenticated_userid %}
|
||||
<li><a href="{{ request.route_url('blog_search') }}"><span class="glyphicon glyphicon-search"></span></a></li>
|
||||
<li class="dropdown">
|
||||
<a class="dropdown-toggle" data-toggle="dropdown" href="#">{{request.authenticated_userid}}
|
||||
<span class="caret"></span>
|
||||
|
||||
@@ -6,8 +6,7 @@ from ..forms import BlogCreateForm, BlogUpdateForm, BlogSearchForm, TagForm
|
||||
import markdown
|
||||
import datetime #<- will be used to set default dates on models
|
||||
|
||||
@view_config(route_name='blog',
|
||||
renderer='cao_osint:templates/blog.jinja2')
|
||||
@view_config(route_name='blog', renderer='../templates/blog.jinja2', permission='view')
|
||||
def blog(request):
|
||||
# get post id from request
|
||||
blog_id = request.matchdict['id']
|
||||
@@ -29,7 +28,7 @@ def blog(request):
|
||||
}
|
||||
|
||||
|
||||
@view_config(route_name='blog_edit', renderer='cao_osint:templates/blog_edit.jinja2', permission='view')
|
||||
@view_config(route_name='blog_edit', renderer='../templates/blog_edit.jinja2', permission='view')
|
||||
def blog_edit(request):
|
||||
# get post id from request
|
||||
blog_id = request.matchdict['id']
|
||||
@@ -87,8 +86,7 @@ def blog_edit(request):
|
||||
'entry': entry, }
|
||||
|
||||
|
||||
@view_config(route_name='blog_search',
|
||||
renderer='cao_osint:templates/blog_search.jinja2')
|
||||
@view_config(route_name='blog_search', renderer='../templates/blog_search.jinja2', permission='view')
|
||||
def blog_search(request):
|
||||
|
||||
criteria = ''
|
||||
@@ -106,7 +104,7 @@ def blog_search(request):
|
||||
'criteria': criteria,
|
||||
}
|
||||
|
||||
@view_config(route_name='tags', renderer='cao_osint:templates/tags.jinja2', permission='view')
|
||||
@view_config(route_name='tags', renderer='../templates/tags.jinja2', permission='view')
|
||||
def tags(request):
|
||||
|
||||
# get the list of tags of this topic
|
||||
@@ -117,7 +115,7 @@ def tags(request):
|
||||
'tags': tags,
|
||||
}
|
||||
|
||||
@view_config(route_name='tag_edit', renderer='cao_osint:templates/tag_edit.jinja2', permission='view')
|
||||
@view_config(route_name='tag_edit', renderer='../templates/tag_edit.jinja2', permission='view')
|
||||
def tag_edit(request):
|
||||
# get tag parameters from request
|
||||
tag_id = request.matchdict['id']
|
||||
|
||||
@@ -13,8 +13,7 @@ import os
|
||||
import shutil
|
||||
import magic
|
||||
|
||||
@view_config(route_name='home',
|
||||
renderer='cao_osint:templates/home.jinja2')
|
||||
@view_config(route_name='home', renderer='../templates/home.jinja2', permission='view')
|
||||
def home(request):
|
||||
# get the last created posts
|
||||
last_ten = BlogRecordService.get_last_created(request)
|
||||
@@ -23,15 +22,14 @@ def home(request):
|
||||
form = BlogSearchForm(request.POST)
|
||||
|
||||
return {
|
||||
'page_title': "Bienvenue sur mon blog",
|
||||
'page_title': "",
|
||||
'last_ten': last_ten,
|
||||
'form': form,
|
||||
'criteria': criteria,
|
||||
}
|
||||
|
||||
|
||||
@view_config(route_name='apropos',
|
||||
renderer='cao_osint:templates/apropos.jinja2')
|
||||
@view_config(route_name='apropos', renderer='../templates/apropos.jinja2')
|
||||
def apropos(request):
|
||||
|
||||
return {
|
||||
@@ -39,8 +37,8 @@ def apropos(request):
|
||||
}
|
||||
|
||||
|
||||
@view_config(route_name='login', renderer='cao_osint:templates/login.jinja2')
|
||||
@forbidden_view_config(renderer='cao_osint:templates/login.jinja2')
|
||||
@view_config(route_name='login', renderer='../templates/login.jinja2')
|
||||
@forbidden_view_config(renderer='../templates/login.jinja2')
|
||||
def login(request):
|
||||
username = ''
|
||||
login_url = request.route_url('login')
|
||||
@@ -77,7 +75,7 @@ def logout(request):
|
||||
return HTTPFound(location=request.route_url('home'), headers=headers)
|
||||
|
||||
|
||||
@view_config(route_name='users', renderer='cao_osint:templates/users.jinja2', permission='manage')
|
||||
@view_config(route_name='users', renderer='../templates/users.jinja2', permission='manage')
|
||||
def users(request):
|
||||
# get all users
|
||||
users = UserService.all(request)
|
||||
@@ -87,7 +85,7 @@ def users(request):
|
||||
}
|
||||
|
||||
|
||||
@view_config(route_name='user_edit', renderer='cao_osint:templates/user_edit.jinja2', permission='view')
|
||||
@view_config(route_name='user_edit', renderer='../templates/user_edit.jinja2', permission='view')
|
||||
def user_edit(request):
|
||||
message = ''
|
||||
name = request.matchdict['name']
|
||||
@@ -154,7 +152,7 @@ def user_edit(request):
|
||||
}
|
||||
|
||||
|
||||
@view_config(route_name='uploads', renderer='cao_osint:templates/uploads.jinja2', permission='view')
|
||||
@view_config(route_name='uploads', renderer='../templates/uploads.jinja2', permission='view')
|
||||
def uploads(request):
|
||||
message = ''
|
||||
folder_path = request.registry.settings['uploads_dir']
|
||||
@@ -163,7 +161,7 @@ def uploads(request):
|
||||
# récupérer tous les fichiers contenus dans dossier static/uploads
|
||||
for f in os.scandir(folder_path):
|
||||
file = []
|
||||
file_url = request.static_url('cao_osint:static/uploads/') + f.name
|
||||
file_url = request.static_url('../static/uploads/') + f.name
|
||||
file_path = folder_path + f.name
|
||||
file.append(f.name)
|
||||
file.append('%s Ko' % round(os.path.getsize(file_path) / 1024))
|
||||
@@ -214,7 +212,7 @@ def uploads(request):
|
||||
}
|
||||
|
||||
|
||||
@view_config(route_name='upload_edit', renderer='cao_osint:templates/upload_edit.jinja2')
|
||||
@view_config(route_name='upload_edit', renderer='../templates/upload_edit.jinja2', permission='view')
|
||||
def upload_edit(request):
|
||||
filename = request.matchdict['filename']
|
||||
|
||||
@@ -240,6 +238,6 @@ def upload_edit(request):
|
||||
'page_title': "Modifier : " + filename,
|
||||
'message': message,
|
||||
'filename': filename,
|
||||
'file_url': request.static_url('cao_osint:static/uploads/') + filename,
|
||||
'file_url': request.static_url('../static/uploads/') + filename,
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user