feat(core): add generation & exportation of pub/priv keys
parent
531c0eb78f
commit
10a19601a1
@ -1,38 +0,0 @@
|
||||
# Generated by Django 3.2.8 on 2021-11-14 17:32
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('guilds', '0002_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='channel',
|
||||
name='type',
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='channel',
|
||||
name='position',
|
||||
field=models.IntegerField(default=1),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Category',
|
||||
fields=[
|
||||
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||||
('position', models.IntegerField(default=1)),
|
||||
('name', models.TextField(max_length=100)),
|
||||
('guild', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='guilds.guild')),
|
||||
],
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='channel',
|
||||
name='parent',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='guilds.category'),
|
||||
),
|
||||
]
|
@ -1,22 +0,0 @@
|
||||
# Generated by Django 3.2.8 on 2021-11-14 17:54
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('guilds', '0003_auto_20211114_1732'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='category',
|
||||
options={'verbose_name_plural': 'Categories'},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='guild',
|
||||
name='categories',
|
||||
field=models.ManyToManyField(blank=True, related_name='categories', to='guilds.Category'),
|
||||
),
|
||||
]
|
@ -1,19 +0,0 @@
|
||||
# Generated by Django 3.2.8 on 2022-02-15 17:07
|
||||
|
||||
from django.db import migrations
|
||||
import django_extensions.db.fields
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('guilds', '0004_auto_20211114_1754'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='invite',
|
||||
name='key',
|
||||
field=django_extensions.db.fields.RandomCharField(blank=True, editable=False, length=10, unique=True),
|
||||
),
|
||||
]
|
@ -1,19 +0,0 @@
|
||||
# Generated by Django 3.2.8 on 2022-05-21 22:01
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('guilds', '0005_alter_invite_key'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='channel',
|
||||
name='parent',
|
||||
field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='guilds.category'),
|
||||
),
|
||||
]
|
@ -0,0 +1,22 @@
|
||||
# Generated by Django 3.2.8 on 2022-05-25 13:44
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='usersettings',
|
||||
name='pubkey',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='pubkey',
|
||||
field=models.CharField(blank=True, max_length=255, null=True),
|
||||
),
|
||||
]
|
@ -1,18 +0,0 @@
|
||||
# Generated by Django 3.2.8 on 2021-11-11 18:24
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("users", "0001_initial"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="user",
|
||||
name="first_connect",
|
||||
field=models.BooleanField(default=True),
|
||||
),
|
||||
]
|
@ -1,18 +0,0 @@
|
||||
# Generated by Django 3.2.8 on 2021-11-11 22:46
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("users", "0002_user_first_connect"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name="user",
|
||||
old_name="mneomonic",
|
||||
new_name="mnemonic",
|
||||
),
|
||||
]
|
@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.2.8 on 2022-05-25 13:46
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0002_auto_20220525_1344'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='user',
|
||||
old_name='pubkey',
|
||||
new_name='public_key',
|
||||
),
|
||||
]
|
@ -1,32 +0,0 @@
|
||||
# Generated by Django 3.2.8 on 2021-11-25 16:29
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0003_rename_mneomonic_user_mnemonic'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='UserSettings',
|
||||
fields=[
|
||||
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||||
('language', models.CharField(choices=[('fr-FR', 'Français (beta)'), ('en-US', 'English')], default='en-us', max_length=10)),
|
||||
('theme', models.CharField(choices=[('DK', 'Dark'), ('LT', 'Light')], default='DK', max_length=2)),
|
||||
],
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='user',
|
||||
name='language',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='settings',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='settings', to='users.usersettings'),
|
||||
),
|
||||
]
|
@ -1,36 +0,0 @@
|
||||
# Generated by Django 3.2.8 on 2021-11-25 17:11
|
||||
|
||||
import chat.utils.functions
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0004_auto_20211125_1629'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='usersettings',
|
||||
options={'verbose_name_plural': 'User Settings'},
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='user',
|
||||
name='avatar',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='user',
|
||||
name='bio',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='usersettings',
|
||||
name='avatar',
|
||||
field=models.ImageField(blank=True, null=True, upload_to=chat.utils.functions.PathAndRename('users/avatar')),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='usersettings',
|
||||
name='bio',
|
||||
field=models.TextField(blank=True, max_length=1000, null=True),
|
||||
),
|
||||
]
|
@ -1,19 +0,0 @@
|
||||
# Generated by Django 3.2.8 on 2021-11-25 17:36
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0005_auto_20211125_1711'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='settings',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='settings', to='users.usersettings'),
|
||||
),
|
||||
]
|
@ -1,24 +0,0 @@
|
||||
# Generated by Django 3.2.8 on 2021-11-25 18:00
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0006_alter_user_settings'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='settings',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='user_settings', to='users.usersettings'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usersettings',
|
||||
name='language',
|
||||
field=models.CharField(choices=[('fr', 'Français (beta)'), ('en', 'English')], default='en-us', max_length=10),
|
||||
),
|
||||
]
|
@ -1,24 +0,0 @@
|
||||
# Generated by Django 3.2.8 on 2021-11-26 12:12
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('guilds', '0004_auto_20211114_1754'),
|
||||
('users', '0007_auto_20211125_1800'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='usersettings',
|
||||
name='collapsed_categories',
|
||||
field=models.ManyToManyField(blank=True, default=None, to='guilds.Category'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usersettings',
|
||||
name='language',
|
||||
field=models.CharField(choices=[('fr-fr', 'Français (beta)'), ('en-us', 'English')], default='en-us', max_length=10),
|
||||
),
|
||||
]
|
@ -1,18 +0,0 @@
|
||||
# Generated by Django 3.2.8 on 2022-05-16 13:51
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0008_auto_20211126_1212'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='email',
|
||||
field=models.EmailField(blank=True, max_length=254, null=True, unique=True),
|
||||
),
|
||||
]
|
@ -1,17 +0,0 @@
|
||||
# Generated by Django 3.2.8 on 2022-05-21 22:01
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0009_user_email'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='user',
|
||||
name='email',
|
||||
),
|
||||
]
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -0,0 +1,81 @@
|
||||
// Written in 2014-2016 by Dmitry Chestnykh and Devi Mandiri.
|
||||
// Public domain.
|
||||
(function(root, f) {
|
||||
'use strict';
|
||||
if (typeof module !== 'undefined' && module.exports) module.exports = f();
|
||||
else if (root.nacl) root.nacl.util = f();
|
||||
else {
|
||||
root.nacl = {};
|
||||
root.nacl.util = f();
|
||||
}
|
||||
}(this, function() {
|
||||
'use strict';
|
||||
|
||||
var util = {};
|
||||
|
||||
function validateBase64(s) {
|
||||
if (!(/^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.test(s))) {
|
||||
throw new TypeError('invalid encoding');
|
||||
}
|
||||
}
|
||||
|
||||
util.decodeUTF8 = function(s) {
|
||||
if (typeof s !== 'string') throw new TypeError('expected string');
|
||||
var i, d = unescape(encodeURIComponent(s)), b = new Uint8Array(d.length);
|
||||
for (i = 0; i < d.length; i++) b[i] = d.charCodeAt(i);
|
||||
return b;
|
||||
};
|
||||
|
||||
util.encodeUTF8 = function(arr) {
|
||||
var i, s = [];
|
||||
for (i = 0; i < arr.length; i++) s.push(String.fromCharCode(arr[i]));
|
||||
return decodeURIComponent(escape(s.join('')));
|
||||
};
|
||||
|
||||
if (typeof atob === 'undefined') {
|
||||
// Node.js
|
||||
|
||||
if (typeof Buffer.from !== 'undefined') {
|
||||
// Node v6 and later
|
||||
util.encodeBase64 = function (arr) { // v6 and later
|
||||
return Buffer.from(arr).toString('base64');
|
||||
};
|
||||
|
||||
util.decodeBase64 = function (s) {
|
||||
validateBase64(s);
|
||||
return new Uint8Array(Array.prototype.slice.call(Buffer.from(s, 'base64'), 0));
|
||||
};
|
||||
|
||||
} else {
|
||||
// Node earlier than v6
|
||||
util.encodeBase64 = function (arr) { // v6 and later
|
||||
return (new Buffer(arr)).toString('base64');
|
||||
};
|
||||
|
||||
util.decodeBase64 = function(s) {
|
||||
validateBase64(s);
|
||||
return new Uint8Array(Array.prototype.slice.call(new Buffer(s, 'base64'), 0));
|
||||
};
|
||||
}
|
||||
|
||||
} else {
|
||||
// Browsers
|
||||
|
||||
util.encodeBase64 = function(arr) {
|
||||
var i, s = [], len = arr.length;
|
||||
for (i = 0; i < len; i++) s.push(String.fromCharCode(arr[i]));
|
||||
return btoa(s.join(''));
|
||||
};
|
||||
|
||||
util.decodeBase64 = function(s) {
|
||||
validateBase64(s);
|
||||
var i, d = atob(s), b = new Uint8Array(d.length);
|
||||
for (i = 0; i < d.length; i++) b[i] = d.charCodeAt(i);
|
||||
return b;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
return util;
|
||||
|
||||
}));
|
@ -0,0 +1 @@
|
||||
!function(e,n){"use strict";"undefined"!=typeof module&&module.exports?module.exports=n():(e.nacl||(e.nacl={}),e.nacl.util=n())}(this,function(){"use strict";var e={};function o(e){if(!/^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.test(e))throw new TypeError("invalid encoding")}return e.decodeUTF8=function(e){if("string"!=typeof e)throw new TypeError("expected string");var n,r=unescape(encodeURIComponent(e)),t=new Uint8Array(r.length);for(n=0;n<r.length;n++)t[n]=r.charCodeAt(n);return t},e.encodeUTF8=function(e){var n,r=[];for(n=0;n<e.length;n++)r.push(String.fromCharCode(e[n]));return decodeURIComponent(escape(r.join("")))},"undefined"==typeof atob?void 0!==Buffer.from?(e.encodeBase64=function(e){return Buffer.from(e).toString("base64")},e.decodeBase64=function(e){return o(e),new Uint8Array(Array.prototype.slice.call(Buffer.from(e,"base64"),0))}):(e.encodeBase64=function(e){return new Buffer(e).toString("base64")},e.decodeBase64=function(e){return o(e),new Uint8Array(Array.prototype.slice.call(new Buffer(e,"base64"),0))}):(e.encodeBase64=function(e){var n,r=[],t=e.length;for(n=0;n<t;n++)r.push(String.fromCharCode(e[n]));return btoa(r.join(""))},e.decodeBase64=function(e){o(e);var n,r=atob(e),t=new Uint8Array(r.length);for(n=0;n<r.length;n++)t[n]=r.charCodeAt(n);return t}),e});
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long