Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
re2o
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nounous
re2o
Commits
6f9932ad
Commit
6f9932ad
authored
Jun 26, 2017
by
chibrac
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Les limites de pagination et de création machines pour les users sont gérées dans préférences
parent
51759d2c
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
63 additions
and
30 deletions
+63
-30
cotisations/views.py
cotisations/views.py
+11
-4
logs/views.py
logs/views.py
+4
-3
machines/views.py
machines/views.py
+19
-9
re2o/settings.py
re2o/settings.py
+0
-4
search/views.py
search/views.py
+5
-4
topologie/views.py
topologie/views.py
+5
-2
users/models.py
users/models.py
+8
-0
users/views.py
users/views.py
+11
-4
No files found.
cotisations/views.py
View file @
6f9932ad
...
...
@@ -41,8 +41,9 @@ from .models import Facture, Article, Vente, Cotisation, Paiement, Banque
from
.forms
import
NewFactureForm
,
TrezEditFactureForm
,
EditFactureForm
,
ArticleForm
,
DelArticleForm
,
PaiementForm
,
DelPaiementForm
,
BanqueForm
,
DelBanqueForm
,
NewFactureFormPdf
,
SelectArticleForm
from
users.models
import
User
from
.tex
import
render_tex
from
re2o.settings
import
ASSO_NAME
,
ASSO_ADDRESS_LINE1
,
ASSO_ADDRESS_LINE2
,
ASSO_SIRET
,
ASSO_EMAIL
,
ASSO_PHONE
,
LOGO_PATH
,
PAGINATION_NUMBER
from
re2o.settings
import
ASSO_NAME
,
ASSO_ADDRESS_LINE1
,
ASSO_ADDRESS_LINE2
,
ASSO_SIRET
,
ASSO_EMAIL
,
ASSO_PHONE
,
LOGO_PATH
from
re2o
import
settings
from
preferences.models
import
GeneralOption
from
dateutil.relativedelta
import
relativedelta
from
django.utils
import
timezone
...
...
@@ -339,9 +340,11 @@ def del_banque(request):
@
login_required
@
permission_required
(
'trésorier'
)
def
control
(
request
):
options
,
created
=
GeneralOption
.
objects
.
get_or_create
()
pagination_number
=
options
.
pagination_number
facture_list
=
Facture
.
objects
.
order_by
(
'date'
).
reverse
()
controlform_set
=
modelformset_factory
(
Facture
,
fields
=
(
'control'
,
'valid'
),
extra
=
0
)
paginator
=
Paginator
(
facture_list
,
PAGINATION_NUMBER
)
paginator
=
Paginator
(
facture_list
,
pagination_number
)
page
=
request
.
GET
.
get
(
'page'
)
try
:
facture_list
=
paginator
.
page
(
page
)
...
...
@@ -380,8 +383,10 @@ def index_banque(request):
@
login_required
@
permission_required
(
'cableur'
)
def
index
(
request
):
options
,
created
=
GeneralOption
.
objects
.
get_or_create
()
pagination_number
=
options
.
pagination_number
facture_list
=
Facture
.
objects
.
order_by
(
'date'
).
select_related
(
'user'
).
select_related
(
'paiement'
).
prefetch_related
(
'vente_set'
).
reverse
()
paginator
=
Paginator
(
facture_list
,
PAGINATION_NUMBER
)
paginator
=
Paginator
(
facture_list
,
pagination_number
)
page
=
request
.
GET
.
get
(
'page'
)
try
:
facture_list
=
paginator
.
page
(
page
)
...
...
@@ -425,8 +430,10 @@ def history(request, object, id):
else
:
messages
.
error
(
request
,
"Objet inconnu"
)
return
redirect
(
"/cotisations/"
)
options
,
created
=
GeneralOption
.
objects
.
get_or_create
()
pagination_number
=
options
.
pagination_number
reversions
=
Version
.
objects
.
get_for_object
(
object_instance
)
paginator
=
Paginator
(
reversions
,
PAGINATION_NUMBER
)
paginator
=
Paginator
(
reversions
,
pagination_number
)
page
=
request
.
GET
.
get
(
'page'
)
try
:
reversions
=
paginator
.
page
(
page
)
...
...
logs/views.py
View file @
6f9932ad
...
...
@@ -45,8 +45,7 @@ from cotisations.models import Facture, Vente, Article, Banque, Paiement, Cotisa
from
machines.models
import
Machine
,
MachineType
,
IpType
,
Extension
,
Interface
,
Domain
,
IpList
from
machines.views
import
all_active_assigned_interfaces_count
,
all_active_interfaces_count
from
topologie.models
import
Switch
,
Port
,
Room
from
re2o.settings
import
PAGINATION_NUMBER
,
PAGINATION_LARGE_NUMBER
from
preferences.models
import
GeneralOption
from
django.utils
import
timezone
from
dateutil.relativedelta
import
relativedelta
...
...
@@ -68,8 +67,10 @@ def form(ctx, template, request):
@
login_required
@
permission_required
(
'cableur'
)
def
index
(
request
):
options
,
created
=
GeneralOption
.
objects
.
get_or_create
()
pagination_number
=
options
.
pagination_number
revisions
=
Revision
.
objects
.
all
().
order_by
(
'date_created'
).
reverse
().
select_related
(
'user'
).
prefetch_related
(
'version_set__object'
)
paginator
=
Paginator
(
revisions
,
PAGINATION_NUMBER
)
paginator
=
Paginator
(
revisions
,
pagination_number
)
page
=
request
.
GET
.
get
(
'page'
)
try
:
revisions
=
paginator
.
page
(
page
)
...
...
machines/views.py
View file @
6f9932ad
...
...
@@ -48,7 +48,7 @@ from .forms import IpTypeForm, DelIpTypeForm, AliasForm, DelAliasForm, NsForm, D
from
.models
import
IpType
,
Machine
,
Interface
,
IpList
,
MachineType
,
Extension
,
Mx
,
Ns
,
Domain
from
users.models
import
User
from
users.models
import
all_has_access
from
re2o.settings
import
PAGINATION_NUMBER
,
PAGINATION_LARGE_NUMBER
,
MAX_INTERFACES
,
MAX_ALIAS
from
preferences.models
import
GeneralOption
,
OptionalMachine
def
full_domain_validator
(
request
,
domain
):
""" Validation du nom de domaine, extensions dans type de machine, prefixe pas plus long que 63 caractères """
...
...
@@ -129,12 +129,14 @@ def new_machine(request, userid):
except
User
.
DoesNotExist
:
messages
.
error
(
request
,
u
"Utilisateur inexistant"
)
return
redirect
(
"/machines/"
)
options
,
created
=
OptionalMachine
.
objects
.
get_or_create
()
max_lambdauser_interfaces
=
options
.
max_lambdauser_interfaces
if
not
request
.
user
.
has_perms
((
'cableur'
,)):
if
user
!=
request
.
user
:
messages
.
error
(
request
,
"Vous ne pouvez pas ajouter une machine à un autre user que vous sans droit"
)
return
redirect
(
"/users/profil/"
+
str
(
request
.
user
.
id
))
if
user
.
user_interfaces
().
count
()
>=
MAX_INTERFACES
:
messages
.
error
(
request
,
"Vous avez atteint le maximum d'interfaces autorisées que vous pouvez créer vous même (%s) "
%
MAX_INTERFACES
)
if
user
.
user_interfaces
().
count
()
>=
max_lambdauser_interfaces
:
messages
.
error
(
request
,
"Vous avez atteint le maximum d'interfaces autorisées que vous pouvez créer vous même (%s) "
%
max_lambdauser_interfaces
)
return
redirect
(
"/users/profil/"
+
str
(
request
.
user
.
id
))
machine
=
NewMachineForm
(
request
.
POST
or
None
)
interface
=
AddInterfaceForm
(
request
.
POST
or
None
,
infra
=
request
.
user
.
has_perms
((
'infra'
,)))
...
...
@@ -241,11 +243,13 @@ def new_interface(request, machineid):
messages
.
error
(
request
,
u
"Machine inexistante"
)
return
redirect
(
"/machines"
)
if
not
request
.
user
.
has_perms
((
'cableur'
,)):
options
,
created
=
OptionalMachine
.
objects
.
get_or_create
()
max_lambdauser_interfaces
=
options
.
max_lambdauser_interfaces
if
machine
.
user
!=
request
.
user
:
messages
.
error
(
request
,
"Vous ne pouvez pas ajouter une interface à une machine d'un autre user que vous sans droit"
)
return
redirect
(
"/users/profil/"
+
str
(
request
.
user
.
id
))
if
machine
.
user
.
user_interfaces
().
count
()
>=
MAX_INTERFACES
:
messages
.
error
(
request
,
"Vous avez atteint le maximum d'interfaces autorisées que vous pouvez créer vous même (%s) "
%
MAX_INTERFACES
)
if
machine
.
user
.
user_interfaces
().
count
()
>=
max_lambdauser_interfaces
:
messages
.
error
(
request
,
"Vous avez atteint le maximum d'interfaces autorisées que vous pouvez créer vous même (%s) "
%
max_lambdauser_interfaces
)
return
redirect
(
"/users/profil/"
+
str
(
request
.
user
.
id
))
interface_form
=
AddInterfaceForm
(
request
.
POST
or
None
,
infra
=
request
.
user
.
has_perms
((
'infra'
,)))
domain_form
=
AliasForm
(
request
.
POST
or
None
,
infra
=
request
.
user
.
has_perms
((
'infra'
,)))
...
...
@@ -544,11 +548,13 @@ def add_alias(request, interfaceid):
messages
.
error
(
request
,
u
"Interface inexistante"
)
return
redirect
(
"/machines"
)
if
not
request
.
user
.
has_perms
((
'cableur'
,)):
options
,
created
=
OptionalMachine
.
objects
.
get_or_create
()
max_lambdauser_aliases
=
options
.
max_lambdauser_aliases
if
interface
.
machine
.
user
!=
request
.
user
:
messages
.
error
(
request
,
"Vous ne pouvez pas ajouter un alias à une machine d'un autre user que vous sans droit"
)
return
redirect
(
"/users/profil/"
+
str
(
request
.
user
.
id
))
if
Domain
.
objects
.
filter
(
cname__in
=
Domain
.
objects
.
filter
(
interface_parent__in
=
interface
.
machine
.
user
.
user_interfaces
())).
count
()
>=
MAX_ALIAS
:
messages
.
error
(
request
,
"Vous avez atteint le maximum d'alias autorisées que vous pouvez créer vous même (%s) "
%
MAX_ALIAS
)
if
Domain
.
objects
.
filter
(
cname__in
=
Domain
.
objects
.
filter
(
interface_parent__in
=
interface
.
machine
.
user
.
user_interfaces
())).
count
()
>=
max_lambdauser_aliases
:
messages
.
error
(
request
,
"Vous avez atteint le maximum d'alias autorisées que vous pouvez créer vous même (%s) "
%
max_lambdauser_aliases
)
return
redirect
(
"/users/profil/"
+
str
(
request
.
user
.
id
))
alias
=
AliasForm
(
request
.
POST
or
None
,
infra
=
request
.
user
.
has_perms
((
'infra'
,)))
if
alias
.
is_valid
():
...
...
@@ -609,8 +615,10 @@ def del_alias(request, interfaceid):
@
login_required
@
permission_required
(
'cableur'
)
def
index
(
request
):
options
,
created
=
GeneralOption
.
objects
.
get_or_create
()
pagination_large_number
=
options
.
pagination_large_number
machines_list
=
Machine
.
objects
.
select_related
(
'user'
).
prefetch_related
(
'interface_set__domain__extension'
).
prefetch_related
(
'interface_set__ipv4__ip_type__extension'
).
prefetch_related
(
'interface_set__type'
).
prefetch_related
(
'interface_set__domain__related_domain__extension'
).
order_by
(
'pk'
)
paginator
=
Paginator
(
machines_list
,
PAGINATION_LARGE_NUMBER
)
paginator
=
Paginator
(
machines_list
,
pagination_large_number
)
page
=
request
.
GET
.
get
(
'page'
)
try
:
machines_list
=
paginator
.
page
(
page
)
...
...
@@ -717,8 +725,10 @@ def history(request, object, id):
else
:
messages
.
error
(
request
,
"Objet inconnu"
)
return
redirect
(
"/machines/"
)
options
,
created
=
GeneralOption
.
objects
.
get_or_create
()
pagination_number
=
options
.
pagination_number
reversions
=
Version
.
objects
.
get_for_object
(
object_instance
)
paginator
=
Paginator
(
reversions
,
PAGINATION_NUMBER
)
paginator
=
Paginator
(
reversions
,
pagination_number
)
page
=
request
.
GET
.
get
(
'page'
)
try
:
reversions
=
paginator
.
page
(
page
)
...
...
re2o/settings.py
View file @
6f9932ad
...
...
@@ -156,10 +156,6 @@ RIGHTS_LINK = {
'bofh'
:
[
'bureau'
,
'trésorier'
],
}
PAGINATION_NUMBER
=
25
PAGINATION_LARGE_NUMBER
=
8
GRAPH_MODELS
=
{
'all_applications'
:
True
,
'group_models'
:
True
,
...
...
search/views.py
View file @
6f9932ad
...
...
@@ -35,8 +35,7 @@ from machines.models import Machine, Interface
from
topologie.models
import
Port
,
Switch
from
cotisations.models
import
Facture
from
search.models
import
SearchForm
,
SearchFormPlus
from
re2o.settings
import
SEARCH_RESULT
from
preferences.models
import
GeneralOption
def
form
(
ctx
,
template
,
request
):
c
=
ctx
...
...
@@ -106,12 +105,14 @@ def search_result(search, type, request):
recherche
[
'switch_list'
]
=
Switch
.
objects
.
filter
(
details__icontains
=
search
)
if
not
request
.
user
.
has_perms
((
'cableur'
,)):
recherche
[
'switch_list'
]
=
None
options
,
created
=
GeneralOption
.
objects
.
get_or_create
()
search_display_page
=
options
.
search_display_page
for
r
in
recherche
:
if
recherche
[
r
]
!=
None
:
recherche
[
r
]
=
recherche
[
r
][:
SEARCH_RESULT
]
recherche
[
r
]
=
recherche
[
r
][:
search_display_page
]
recherche
.
update
({
'max_result'
:
SEARCH_RESULT
})
recherche
.
update
({
'max_result'
:
search_display_page
})
return
recherche
...
...
topologie/views.py
View file @
6f9932ad
...
...
@@ -36,8 +36,9 @@ from users.models import User
from
machines.forms
import
AliasForm
,
NewMachineForm
,
EditMachineForm
,
EditInterfaceForm
,
AddInterfaceForm
from
machines.views
import
free_ip
,
full_domain_validator
,
assign_ipv4
from
preferences.models
import
GeneralOption
from
re2o.settings
import
ASSO_PSEUDO
,
PAGINATION_NUMBER
from
re2o.settings
import
ASSO_PSEUDO
@
login_required
@
permission_required
(
'cableur'
)
...
...
@@ -69,8 +70,10 @@ def history(request, object, id):
else
:
messages
.
error
(
request
,
"Objet inconnu"
)
return
redirect
(
"/topologie/"
)
options
,
created
=
GeneralOption
.
objects
.
get_or_create
()
pagination_number
=
options
.
pagination_number
reversions
=
Version
.
objects
.
get_for_object
(
object_instance
)
paginator
=
Paginator
(
reversions
,
PAGINATION_NUMBER
)
paginator
=
Paginator
(
reversions
,
pagination_number
)
page
=
request
.
GET
.
get
(
'page'
)
try
:
reversions
=
paginator
.
page
(
page
)
...
...
users/models.py
View file @
6f9932ad
...
...
@@ -42,6 +42,7 @@ from django.core.validators import MinLengthValidator
from
topologie.models
import
Room
from
cotisations.models
import
Cotisation
,
Facture
,
Vente
from
machines.models
import
Interface
,
Machine
from
preferences.models
import
OptionalUser
def
remove_user_room
(
room
):
""" Déménage de force l'ancien locataire de la chambre """
...
...
@@ -687,6 +688,13 @@ class BaseInfoForm(ModelForm):
'telephone'
,
]
def
clean_telephone
(
self
):
telephone
=
self
.
cleaned_data
[
'telephone'
]
preferences
,
created
=
OptionalUser
.
objects
.
get_or_create
()
if
not
telephone
and
preferences
.
is_tel_mandatory
:
raise
forms
.
ValidationError
(
"Un numéro de téléphone valide est requis"
)
return
telephone
class
EditInfoForm
(
BaseInfoForm
):
class
Meta
(
BaseInfoForm
.
Meta
):
fields
=
[
...
...
users/views.py
View file @
6f9932ad
...
...
@@ -45,9 +45,10 @@ from cotisations.models import Facture
from
machines.models
import
Machine
,
Interface
from
users.forms
import
MassArchiveForm
,
PassForm
,
ResetPasswordForm
from
machines.views
import
unassign_ips
,
assign_ips
from
preferences.models
import
GeneralOption
from
re2o.login
import
hashNT
from
re2o.settings
import
REQ_EXPIRE_STR
,
EMAIL_FROM
,
ASSO_NAME
,
ASSO_EMAIL
,
SITE_NAME
,
PAGINATION_NUMBER
from
re2o.settings
import
REQ_EXPIRE_STR
,
EMAIL_FROM
,
ASSO_NAME
,
ASSO_EMAIL
,
SITE_NAME
def
archive
(
user
):
""" Archive un utilisateur """
...
...
@@ -534,8 +535,10 @@ def mass_archive(request):
@
permission_required
(
'cableur'
)
def
index
(
request
):
""" Affiche l'ensemble des users, need droit cableur """
options
,
created
=
GeneralOption
.
objects
.
get_or_create
()
pagination_number
=
options
.
pagination_number
users_list
=
User
.
objects
.
select_related
(
'room'
).
order_by
(
'state'
,
'name'
)
paginator
=
Paginator
(
users_list
,
PAGINATION_NUMBER
)
paginator
=
Paginator
(
users_list
,
pagination_number
)
page
=
request
.
GET
.
get
(
'page'
)
try
:
users_list
=
paginator
.
page
(
page
)
...
...
@@ -551,8 +554,10 @@ def index(request):
@
permission_required
(
'cableur'
)
def
index_ban
(
request
):
""" Affiche l'ensemble des ban, need droit cableur """
options
,
created
=
GeneralOption
.
objects
.
get_or_create
()
pagination_number
=
options
.
pagination_number
ban_list
=
Ban
.
objects
.
order_by
(
'date_start'
).
select_related
(
'user'
).
reverse
()
paginator
=
Paginator
(
ban_list
,
PAGINATION_NUMBER
)
paginator
=
Paginator
(
ban_list
,
pagination_number
)
page
=
request
.
GET
.
get
(
'page'
)
try
:
ban_list
=
paginator
.
page
(
page
)
...
...
@@ -652,8 +657,10 @@ def history(request, object, id):
else
:
messages
.
error
(
request
,
"Objet inconnu"
)
return
redirect
(
"/users/"
)
options
,
created
=
GeneralOption
.
objects
.
get_or_create
()
pagination_number
=
options
.
pagination_number
reversions
=
Version
.
objects
.
get_for_object
(
object_instance
)
paginator
=
Paginator
(
reversions
,
PAGINATION_NUMBER
)
paginator
=
Paginator
(
reversions
,
pagination_number
)
page
=
request
.
GET
.
get
(
'page'
)
try
:
reversions
=
paginator
.
page
(
page
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment