Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
gargantext
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
humanities
gargantext
Commits
486d57b4
Commit
486d57b4
authored
Oct 31, 2017
by
sim
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove old accounts management script
parent
175e4fab
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
0 additions
and
348 deletions
+0
-348
init_accounts.py
init_accounts.py
+0
-348
No files found.
init_accounts.py
deleted
100644 → 0
View file @
175e4fab
#!/usr/bin/env python
import
sys
import
os
dirname
=
os
.
path
.
dirname
(
os
.
path
.
realpath
(
__file__
))
os
.
environ
.
setdefault
(
"DJANGO_SETTINGS_MODULE"
,
"gargantext.settings"
)
# initialize Django application
from
django.core.wsgi
import
get_wsgi_application
application
=
get_wsgi_application
()
from
django.contrib.auth
import
password_validation
from
django.contrib.auth.hashers
import
(
check_password
,
is_password_usable
,
make_password
)
from
django.db
import
models
from
django.utils.crypto
import
get_random_string
,
salted_hmac
# retrieve Django models
import
django.apps
django_models
=
django
.
apps
.
apps
.
get_models
()
django_models_names
=
set
(
model
.
_meta
.
db_table
for
model
in
django_models
)
from
gargantext.util.db
import
session
from
gargantext.models.users
import
User
,
Contact
from
django.core.mail
import
send_mail
from
gargantext.settings
import
BASE_URL
drafts
=
{
'partnerOkenglish'
:
'''
Hello,
You have made a request for access to the platform Gargantext.
The ISC-PIF team has made every effort to Give you access to
this platform in the best Time.
We recommend that you read the conditions To use the platform
at the address below Drawing your attention to the following
points:
1 - The use of this platform is reserved for an academic
framework,
2 - The Gargantext service is a data analysis service, And not
storage. It is up to each user To safeguard its own data and
results in Downloading them from the platform.
3 - The re-use of data, graphics, analyzes and Cartographies
generated by Gargantext in any publication And communication
implies the explicit mention of Gargantext and Of the ISC-PIF
CNRS as for example: "these results have been Obtained using
Gargantext software developed by ISC-PIF / CNRS ".
Read the full terms of use (recommended) on:
http://gitlab.iscpif.fr/humanities/tofu/tree/master
You can log on to:
http://
%
s
With the following identifiers:
Your login is:
%
s
Your password is:
%
s
You are currently on this version stabilized for a
unique experience in exploring your research themes.
Your feedback will be valuable for further development
of the platform, do not hesitate to contact us and
to contribute!
If you want to access your old corpuses,
access codes remain valid until June 30
2017 midnight:
http://old.gargantext.org
We remain at your disposal for any further information.
With our best regards,
--
The Gargantext Team (CNRS)
'''
,
'partnerOk'
:
'''
Bonjour,
Vous avez fait une demande d'accès à la plate-forme
Gargantext. L'équipe de l'ISC-PIF a tout mis en œuvre pour
vous donner accès à cette plate-forme dans les meilleurs
délais.
Nous vous recommendons de prendre connaissance des conditions
d'utilisation de la plate-forme à l'adresse ci-dessous en
attirant votre attention sur les points suivants :
1 - L'usage de cette plate-forme est réservé à un cadre académique,
2 - Le service Gargantext est un service d'analyse de données,
et non de stockage. Il appartient à chaque utilisateur
d'assurer la sauvegarde de ses propres données et résultats en
les téléchargeant à partir de la plate-forme.
3 - La réutilisation des données, graphiques, analyses et
cartographies générés par Gargantext dans toute publication
et communication suppose la mention explicite de Gargantext et
de l'ISC-PIF CNRS comme par exemple : "ces résultats ont été
obtenus à l'aide de du logiciel Gargantext développé par
ISC-PIF/CNRS".
Lire l'intégralité des conditions d'utilisation (recommandé) sur :
http://gitlab.iscpif.fr/humanities/tofu/tree/master
Vous pouvez vous connecter à l'adresse:
http://
%
s
Avec les identifiants suivants:
Votre login est:
%
s
Votre mot de passe est :
%
s
Vous êtes actuellement sur cette version stabilisée pour une
expérience unique dans l'exploration de vos thèmes de recherche.
Vos retours seront précieux pour poursuivre le développement
de la plateforme, n'hésitez pas à nous contacter et
contribuer!
Si vous souhaitez accéder à vos anciens corpus, vos anciens
codes d'accès restent valides à cette adresse jusqu'au 30 juin
2017 minuit:
http://old.gargantext.org
Nous restons à votre disposition pour tout complément d'information.
Cordialement
--
L'équipe de Gargantext (CNRS)
'''
,
'partnerKo'
:
'''
Bonjour,
Vous venez de faire une demande d'accès à la plate-forme
Gargantext, développée et hébergée grâce au soutien du CNRS
et des partenaires de l'ISC-PIF. L'équipe de l'ISC-PIF a tout
mis en œuvre pour vous donner accès à cette plate-forme dans
les meilleurs délais.
Cette plate-forme étant accessible en priorité au personnel
des établissements partenaires de l'ISC-PIF, nous vous
proposons un accès pour une durée de 3 mois afin que vous
puissiez explorer les possibilités de Gargantext. S'il s'avère
que cette plateforme correspond à vos besoins, vous pourrez
vous prendre contact avec le service partenariat de l'ISC-PIF
(contact@gargantext.org) pour étudier une adhésion de votre
établissement à l'ISC-PIF ou bien vous rapprocher de votre
établissement afin qu'il déploie une instance de Gargantext.
Nous vous invitons à prendre connaissance des conditions
d'utilisation de la plate-forme à l'adresse ci-dessous en
attirant votre attention sur les points suivants :
1 - L'usage de cette plate-forme est réservé à un cadre académique,
2 - Le service Gargantext est un service d'analyse de données,
et non de stockage. Il appartient à chaque utilisateur
d'assurer la sauvegarde de ses propres données et résultats en
les téléchargeant à partir de la plate-forme.
3 - La réutilisation des données, graphiques, analyses et
cartographies générés par Gargantext dans toute publication
et communication suppose la mention explicite de Gargantext et
de l'ISC-PIF CNRS comme par exemple : "ces résultats ont été
obtenus à l'aide de du logiciel Gargantext développé par
ISC-PIF/CNRS".
Lire l'intégralité des conditions d'utilisation (recommandé) sur :
http://gitlab.iscpif.fr/humanities/tofu/tree/master
Vous pouvez donc vous connecter à l'adresse:
http://
%
s
Avec les identifiants suivants:
Votre login est:
%
s
Votre mot de passe est :
%
s
Vous êtes actuellement sur cette version stabilisée pour une
expérience unique dans l'exploration de vos thèmes de recherche.
Vos retours seront précieux pour poursuivre le développement
de la plateforme, n'hésitez pas à nous contacter et
contribuer!
Nous restons à votre disposition pour tout complément d'information.
Cordialement
--
L'équipe de Gargantext (CNRS)
'''
,
}
def
make_random_password
(
length
=
10
,
allowed_chars
=
'abcdefghjkmnpqrstuvwxyz'
'ABCDEFGHJKLMNPQRSTUVWXYZ'
'0123456789'
):
"""
Generate a random password with the given length and given
allowed_chars. The default value of allowed_chars does not have "I" or
"O" or letters and digits that look similar -- just to avoid confusion.
(source: django/contrib/auth)
"""
return
get_random_string
(
length
,
allowed_chars
)
def
mail2user
(
username
,
email
,
password
,
draft
):
send_mail
(
'[Gargantext] Votre accès à la plateforme'
,
draft
%
(
BASE_URL
,
username
,
password
)
,
'team@gargantext.org'
,
[
email
]
,
fail_silently
=
False
)
def
block
(
user1_id
,
user2_id
,
bool_
):
'''
user_group :: Int -> Int -> Bool
Link between user1 and user2
If False:
link blocked
else:
link not blocked
'''
contact
=
Contact
()
contact
.
user1_id
=
user1_id
contact
.
user2_id
=
user2_id
contact
.
is_blocked
=
bool_
session
.
add
(
contact
)
session
.
commit
()
return
contact
def
create_user
(
username
,
email
,
user
=
None
,
password
=
None
,
group
=
None
,
notify
=
False
):
'''
create_user :
- create user
- create its group if needed
- create relation between user and its group
'''
if
user
is
None
:
user
=
User
()
user
.
username
=
username
user
.
email
=
email
user
.
is_active
=
True
# Creating the password
if
password
is
None
or
len
(
password
)
<
3
:
password
=
make_random_password
()
user
.
password
=
make_password
(
password
)
session
.
add
(
user
)
session
.
commit
()
if
group
is
not
None
:
# get or create group_iscpif
group_iscpif_id
=
session
.
query
(
User
.
id
)
.
filter
(
User
.
username
==
"group_iscpif"
)
.
first
()
if
group_iscpif_id
is
None
:
group_iscpif
=
create_user
(
"group_iscpif"
,
"group@gargantext.org"
,
group
=
None
,
notify
=
False
)
group_iscpif_id
=
group_iscpif
.
id
if
group
==
"group_iscpif"
:
block
(
user
.
id
,
group_iscpif_id
,
False
)
else
:
block
(
user
.
id
,
group_iscpif_id
,
True
)
if
notify
==
True
and
group
==
"group_iscpif"
:
mail2user
(
username
,
email
,
password
,
drafts
[
'partnerOk'
])
elif
notify
==
True
:
mail2user
(
username
,
email
,
password
,
drafts
[
'partnerKo'
])
else
:
print
(
"User
%
s created, no notification"
%
username
)
return
user
def
del_user
(
username
):
'''
del_user :: String -> ()
'''
print
(
"Test is True, deleting username
%
s"
%
username
)
session
.
query
(
User
)
.
filter
(
User
.
username
==
username
)
.
delete
()
def
active_user
(
username
,
bool_
=
True
):
'''
active_user :: String -> Maybe Bool -> ()
if bool_ == True:
user is active
else:
user is not active
'''
user
=
session
.
query
(
User
)
.
filter
(
User
.
username
==
username
)
.
first
()
user
.
is_active
=
bool_
user
.
save
()
def
mass_account_creation
(
csv_file
=
None
,
init
=
False
,
test
=
False
,
notify
=
False
):
'''
CSV file as parameter:
if partner:
username,email@example.com,group_iscpif,password,
else:
username,email@example.com,group_others,password,
'''
accounts
=
open
(
csv_file
,
"r"
)
for
line
in
accounts
.
readlines
():
username
,
email
,
group
,
password
,
end
=
line
.
split
(
','
)
user
=
session
.
query
(
User
)
.
filter
(
User
.
username
==
username
)
.
first
()
if
user
is
not
None
:
if
init
==
True
:
create_user
(
username
,
email
,
user
=
user
,
group
=
group
,
password
=
password
,
notify
=
notify
)
print
(
"User
%
s exists and updated"
%
(
username
))
else
:
print
(
"User
%
s exists and not updated"
%
(
username
))
else
:
create_user
(
username
,
email
,
group
=
group
,
password
=
password
,
notify
=
notify
)
print
(
"User
%
s is created"
%
(
username
))
if
test
==
True
:
del_user
(
username
)
del_user
(
group
)
accounts
.
close
()
if
__name__
==
"__main__"
:
mass_account_creation
(
csv_file
=
sys
.
argv
[
1
],
init
=
False
,
notify
=
True
,
test
=
False
)
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