Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
re2o
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nounous
re2o
Commits
ce95e882
Commit
ce95e882
authored
Mar 23, 2018
by
grisel-davy
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into better_frontend
parents
7f58182b
f77c3692
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
102 additions
and
5 deletions
+102
-5
preferences/migrations/0030_merge_20180320_1419.py
preferences/migrations/0030_merge_20180320_1419.py
+16
-0
preferences/models.py
preferences/models.py
+1
-1
users/management/commands/chsh.py
users/management/commands/chsh.py
+77
-0
users/models.py
users/models.py
+4
-0
users/templates/users/profil.html
users/templates/users/profil.html
+4
-4
No files found.
preferences/migrations/0030_merge_20180320_1419.py
0 → 100644
View file @
ce95e882
# -*- coding: utf-8 -*-
# Generated by Django 1.10.7 on 2018-03-20 13:19
from
__future__
import
unicode_literals
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'preferences'
,
'0029_auto_20180318_1005'
),
(
'preferences'
,
'0029_auto_20180318_0213'
),
]
operations
=
[
]
preferences/models.py
View file @
ce95e882
...
...
@@ -375,7 +375,7 @@ class GeneralOption(PreferencesModel):
pagination_large_number
=
models
.
IntegerField
(
default
=
8
)
req_expire_hrs
=
models
.
IntegerField
(
default
=
48
)
site_name
=
models
.
CharField
(
max_length
=
32
,
default
=
"Re2o"
)
email_from
=
models
.
EmailField
(
default
=
"www-data@
serveur.net
"
)
email_from
=
models
.
EmailField
(
default
=
"www-data@
example.com
"
)
GTU_sum_up
=
models
.
TextField
(
default
=
""
,
blank
=
True
,
...
...
users/management/commands/chsh.py
0 → 100644
View file @
ce95e882
# ⁻*- mode: python; coding: utf-8 -*-
# Re2o est un logiciel d'administration développé initiallement au rezometz. Il
# se veut agnostique au réseau considéré, de manière à être installable en
# quelques clics.
#
# Copyright © 2018 Jean-Baptiste Daval
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import
os
,
sys
,
pwd
from
django.core.management.base
import
BaseCommand
,
CommandError
from
django.db
import
transaction
from
reversion
import
revisions
as
reversion
from
users.models
import
User
,
ListShell
class
Command
(
BaseCommand
):
help
=
'Change the default shell of a user'
def
add_arguments
(
self
,
parser
):
parser
.
add_argument
(
'target_username'
,
nargs
=
'?'
)
def
handle
(
self
,
*
args
,
**
options
):
def
get_user
(
user_pseudo
):
"""Return the user queried by pseudo, and exit the script if not found."""
user
=
User
.
objects
.
filter
(
pseudo
=
user_pseudo
)
if
not
user
:
raise
CommandError
(
"Utilisateur invalide"
)
return
user
[
0
]
current_username
=
pwd
.
getpwuid
(
int
(
os
.
getenv
(
"SUDO_UID"
)
or
os
.
getuid
()))
.
pw_name
current_user
=
get_user
(
current_username
)
target_username
=
options
[
"target_username"
]
or
current_username
target_user
=
get_user
(
target_username
)
#L'utilisateur n'a pas le droit de changer le shell
ok
,
msg
=
target_user
.
can_change_shell
(
current_user
)
if
not
ok
:
raise
CommandError
(
msg
)
shells
=
ListShell
.
objects
.
all
()
self
.
stdout
.
write
(
"Choisissez un shell pour l'utilisateur
%
s :"
%
target_user
.
pseudo
)
for
shell
in
shells
:
self
.
stdout
.
write
(
"
%
d -
%
s (
%
s)"
%
(
shell
.
id
,
shell
.
get_pretty_name
(),
shell
.
shell
))
shell_id
=
input
(
"Entrez un nombre : "
)
try
:
shell_id
=
int
(
shell_id
)
except
:
raise
CommandError
(
"Choix invalide"
)
shell
=
ListShell
.
objects
.
filter
(
id
=
shell_id
)
if
not
shell
:
raise
CommandError
(
"Choix invalide"
)
target_user
.
shell
=
shell
.
first
()
with
transaction
.
atomic
(),
reversion
.
create_revision
():
target_user
.
save
()
reversion
.
set_user
(
current_user
)
reversion
.
set_comment
(
"Shell modifié"
)
self
.
stdout
.
write
(
self
.
style
.
SUCCESS
(
"Shell modifié. La modification peut prendre quelques minutes pour s'appliquer."
))
users/models.py
View file @
ce95e882
...
...
@@ -1248,6 +1248,10 @@ class ListShell(models.Model):
shell
=
models
.
CharField
(
max_length
=
255
,
unique
=
True
)
def
get_pretty_name
(
self
):
"""Return the canonical name of the shell"""
return
self
.
shell
.
split
(
"/"
)[
-
1
]
def
__str__
(
self
):
return
self
.
shell
...
...
users/templates/users/profil.html
View file @
ce95e882
...
...
@@ -168,16 +168,16 @@ non adhérent</span>{% endif %} et votre connexion est {% if users.has_access %}
<td>
Aucun
</td>
{% endif %}
</tr>
{% if allow_online_payment %}
<tr>
<th>
Solde
</th>
<td>
{{ users.solde }} €
{% if allow_online_payment %}
<a
class=
"btn btn-primary btn-sm"
style=
'float:right'
role=
"button"
href=
"{% url 'cotisations:recharge' %}"
>
<i
class=
"fa fa-euro-sign"
></i>
Recharger
</a>
</td>
{% endif %}
</a>
{% endif %}
</td>
{% if users.shell %}
<th>
Shell
</th>
<td>
{{ users.shell }}
</td>
...
...
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