Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
e5394d8
Merge branch 'codehighlight' into qua.name
mrvdb Nov 20, 2018
0f82236
Merge branch 'codehighlight' into qua.name
mrvdb Nov 21, 2018
4dd3718
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Nov 21, 2018
db27421
Merge branch 'codehighlight' into qua.name
mrvdb Nov 22, 2018
5f82c61
Merge branch 'codehighlight' into qua.name
mrvdb Nov 22, 2018
533824b
Merge branch 'codehighlight' into qua.name
mrvdb Nov 23, 2018
cb0d41e
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Nov 26, 2018
424c77b
Merge branch 'bindaddress' into qua.name
mrvdb Nov 26, 2018
8c400e0
Also use bind address on standalone redirect
mrvdb Nov 26, 2018
c5b20ab
Merge branch 'bindaddress' into qua.name
mrvdb Nov 26, 2018
d3bc40b
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Nov 28, 2018
737edf7
Merge branch 'codehighlight' into qua.name
mrvdb Nov 29, 2018
5002939
Merge branch 'codehighlight' into qua.name
mrvdb Nov 29, 2018
7eac2d9
Merge branch 'codehighlight' into qua.name
mrvdb Nov 29, 2018
63d60f7
Add support for custom aliasmap
mrvdb Nov 29, 2018
dbd957c
Require hashtags to have 2 spaces around them to be rendered
mrvdb Dec 1, 2018
d19f275
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Dec 1, 2018
6e2e6fa
Merge branch 'hashlink' into qua.name
mrvdb Dec 3, 2018
43a93ca
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Dec 3, 2018
8205a21
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Dec 4, 2018
10aa205
Merge branch 'hashlink' into qua.name
mrvdb Dec 4, 2018
c7ebbe1
Merge branch 'master' into qua.name
mrvdb Dec 10, 2018
1ae5eed
Merge branch 'master' into qua.name
mrvdb Dec 10, 2018
c51ed69
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Dec 17, 2018
df63145
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Jan 4, 2019
1ff0d7b
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Jan 8, 2019
f2bf521
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Jan 9, 2019
be23852
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Jan 21, 2019
c9b925f
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Jan 23, 2019
bbdad82
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Jan 25, 2019
4bc132c
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Feb 4, 2019
784a9aa
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Feb 13, 2019
4c50e3c
Merge branch 'apple-icons' into qua.name
mrvdb Feb 19, 2019
633d638
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Mar 5, 2019
eb9fef4
Merge branch 'codehighlight' into qua.name
mrvdb Mar 5, 2019
22d204a
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Mar 8, 2019
1e81616
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Mar 17, 2019
9492ef4
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Mar 25, 2019
55c46af
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Apr 7, 2019
684b6ae
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Apr 8, 2019
fb53401
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Apr 21, 2019
1444737
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb May 2, 2019
901bf14
Merge remote-tracking branch 'upstream/master' into qua.name
mrvdb Jun 3, 2019
075bb3b
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jun 15, 2019
31fa4b0
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jun 19, 2019
541c3a9
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jun 26, 2019
002a140
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jun 27, 2019
a024148
Merge branch 'issue125' into qua.name
mrvdb Jun 27, 2019
38db24a
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jun 27, 2019
c829d68
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jul 2, 2019
c703865
Make sure we do not depend on case when loading language files
mrvdb Jul 2, 2019
7dee66e
Correct toLowerCase invocation
mrvdb Jul 2, 2019
574e2db
Sync up with upstream functionally
mrvdb Jul 2, 2019
4e848d1
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jul 3, 2019
ffe70a5
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jul 9, 2019
032b294
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jul 21, 2019
fc79dad
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jul 21, 2019
eb6af2d
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Aug 2, 2019
103e72f
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Aug 5, 2019
58e7a32
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Aug 7, 2019
a00b682
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Aug 8, 2019
80b7554
Add mastodon admin contact, so it can be verified
mrvdb Aug 26, 2019
4bd07e4
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Aug 26, 2019
66006a8
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Sep 25, 2019
a51169e
Make sure aliased languages render
mrvdb Oct 25, 2019
6fe34cf
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Nov 7, 2019
7926eb2
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Nov 16, 2019
9f12d0a
Fix broken password-collection template
thebaer Dec 7, 2019
ebce63d
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Dec 18, 2019
c174dff
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jan 15, 2020
fb07cb2
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jan 26, 2020
c0bdb9d
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jan 29, 2020
68a0cd6
Merge remote-tracking branch 'upstream/fix-local-datetime' into qua.name
mrvdb Jan 30, 2020
49effe4
Additional date munging
mrvdb Jan 30, 2020
aa8f7ab
Merge remote-tracking branch 'upstream/fix-local-datetime' into qua.name
mrvdb Jan 30, 2020
a9ea9c6
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jan 31, 2020
714f2be
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Feb 5, 2020
587d288
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Feb 7, 2020
89f1059
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Feb 12, 2020
94dd296
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Feb 13, 2020
589e286
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Mar 2, 2020
2f99f25
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Mar 3, 2020
56390a8
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Mar 8, 2020
1fbb386
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Mar 11, 2020
dedc270
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Mar 23, 2020
71d8540
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Mar 26, 2020
c621796
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Mar 27, 2020
3027fcb
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Mar 29, 2020
108174d
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Apr 10, 2020
7d57d5a
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Apr 19, 2020
2b5d48a
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Apr 22, 2020
1f00d3d
Merge branch 'develop' of github.com:writeas/writefreely into qua.name
mrvdb May 8, 2020
44136f6
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb May 29, 2020
de235ad
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jul 7, 2020
a39912c
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jul 23, 2020
81a069d
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jul 23, 2020
e1f867e
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jul 29, 2020
ac921f9
Add user silencing to CLI interface
mrvdb Aug 4, 2020
3ac505e
Merge branch 'silence-cli' into qua.name
mrvdb Aug 4, 2020
3979a48
Column is named status, not state
mrvdb Aug 4, 2020
da39500
Merge branch 'silence-cli' into qua.name
mrvdb Aug 4, 2020
edab8a7
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Aug 13, 2020
a582d9b
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Aug 13, 2020
1c695bc
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Aug 22, 2020
1bf19d1
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Sep 1, 2020
1dae40b
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Sep 25, 2020
064a812
Merge remote-tracking branch 'colin-axner/374-fix-silenced-post-acces…
mrvdb Sep 29, 2020
36472d6
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Sep 29, 2020
da03ef7
Merge branch 'issue305' into qua.name
mrvdb Oct 3, 2020
862ecf6
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Oct 3, 2020
0abd047
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Oct 3, 2020
72a6c0c
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Oct 3, 2020
c181e8a
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Oct 13, 2020
8e027af
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Oct 13, 2020
f11da54
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Oct 14, 2020
b4aa6a3
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Nov 24, 2020
98c6fef
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jan 9, 2021
12514f5
Use newer mixin syntax for less 4.x compatibility
mrvdb Jan 9, 2021
4425804
Add specific text for when invitations are enabled
mrvdb Jan 22, 2021
7858c28
Revert "Use newer mixin syntax for less 4.x compatibility"
mrvdb Jan 30, 2021
b50fc6d
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Mar 9, 2021
1eb7b9d
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Mar 19, 2021
0eef270
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Apr 8, 2021
67630d7
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Apr 20, 2021
bd5237a
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Apr 28, 2021
1fd39ba
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb May 8, 2021
d6b21a9
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb May 14, 2021
d601f20
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jun 8, 2021
f3cea63
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jun 28, 2021
fb1b873
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Jul 28, 2021
6cb0e13
Stray 'n' character, nobody noticed for quite a while
mrvdb Oct 11, 2021
322a7ec
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Oct 11, 2021
eed278b
Make sure aliased languages render
mrvdb Oct 25, 2019
bbce653
Fix cherry, block is not the name anymore
mrvdb Oct 11, 2021
477a29b
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Feb 5, 2022
e1df1fe
Merge remote-tracking branch 'upstream/develop' into qua.name
mrvdb Nov 22, 2022
179b2a3
Bump docker/build-push-action from 3.2.0 to 3.3.0
dependabot[bot] Jan 16, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
# Build and push Docker image with Buildx (don't push on PR)
# https://github.com/docker/build-push-action
- name: Build and push Docker images
uses: docker/build-push-action@v3.2.0
uses: docker/build-push-action@v3.3.0
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
Expand Down
45 changes: 45 additions & 0 deletions app.go
Original file line number Diff line number Diff line change
Expand Up @@ -784,6 +784,51 @@ func DoDeleteAccount(apper Apper, username string) error {
return nil
}

func DoSilenceAccount(apper Apper, username string) error {
// Connect to the database
apper.LoadConfig()
connectToDatabase(apper.App())
defer shutdown(apper.App())

// check user exists
u, err := apper.App().db.GetUserForAuth(username)
if err != nil {
log.Error("%s", err)
os.Exit(1)
}
userID := u.ID

// do not silence the admin account
// TODO: check for other admins and skip?
if u.IsAdmin() {
log.Error("Can not silence admin account")
os.Exit(1)
}

// confirm deletion, w/ w/out posts
prompt := promptui.Prompt{
Templates: &promptui.PromptTemplates{
Success: "{{ . | bold | faint }}: ",
},
Label: fmt.Sprintf("Really silence user : %s", username),
IsConfirm: true,
}
_, err = prompt.Run()
if err != nil {
log.Info("Aborted...")
os.Exit(0)
}

log.Info("Silencing...")
err = apper.App().db.SilenceAccount(userID)
if err != nil {
log.Error("%s", err)
os.Exit(1)
}
log.Info("Success.")
return nil
}

func connectToDatabase(app *App) {
log.Info("Connecting to %s database...", app.cfg.Database.Type)

Expand Down
7 changes: 7 additions & 0 deletions cmd/writefreely/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,11 @@ func main() {
Usage: "Delete a user with the given username",
Hidden: true,
},
&cli.StringFlag{
Name: "silence-user",
Usage: "Silence a user with the given username",
Hidden: true,
},
&cli.StringFlag{
Name: "reset-pass",
Usage: "Reset the given user's password",
Expand Down Expand Up @@ -151,6 +156,8 @@ func legacyActions(c *cli.Context) error {
return writefreely.CreateUser(app, username, password, false)
case c.IsSet("delete-user"):
return writefreely.DoDeleteAccount(app, c.String("delete-user"))
case c.IsSet("silence-user"):
return writefreely.DoSilenceAccount(app, c.String("silence-user"))
case c.IsSet("reset-pass"):
return writefreely.ResetPassword(app, c.String("reset-pass"))
}
Expand Down
19 changes: 19 additions & 0 deletions cmd/writefreely/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ var (
Subcommands: []*cli.Command{
&cmdAddUser,
&cmdDelUser,
&cmdSilenceUser,
&cmdResetPass,
// TODO: possibly add a user list command
},
Expand All @@ -50,6 +51,13 @@ var (
Action: delUserAction,
}

cmdSilenceUser cli.Command = cli.Command{
Name: "silence",
Usage: "Silence user",
Aliases: []string{"sil", "s"},
Action: silenceUserAction,
}

cmdResetPass cli.Command = cli.Command{
Name: "reset-pass",
Usage: "Reset user's password",
Expand Down Expand Up @@ -84,6 +92,17 @@ func delUserAction(c *cli.Context) error {
return writefreely.DoDeleteAccount(app, username)
}

func silenceUserAction(c *cli.Context) error {
username := ""
if c.NArg() > 0 {
username = c.Args().Get(0)
} else {
return fmt.Errorf("No user passed. Example: writefreely user silence [USER]")
}
app := writefreely.NewApp(c.String("c"))
return writefreely.DoSilenceAccount(app, username)
}

func resetPassAction(c *cli.Context) error {
username := ""
if c.NArg() > 0 {
Expand Down
28 changes: 28 additions & 0 deletions database.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ type writestore interface {
GetTemporaryAccessToken(userID int64, validSecs int) (string, error)
GetTemporaryOneTimeAccessToken(userID int64, validSecs int, oneTime bool) (string, error)
DeleteAccount(userID int64) error
SilenceAccount(userID int64) error
ChangeSettings(app *App, u *User, s *userSettings) error
ChangePassphrase(userID int64, sudo bool, curPass string, hashedPass []byte) error

Expand Down Expand Up @@ -2404,6 +2405,33 @@ func (db *datastore) DeleteAccount(userID int64) error {
return nil
}

func (db *datastore) SilenceAccount(userID int64) error {
// Start transaction
t, err := db.Begin()
if err != nil {
log.Error("Unable to begin: %v", err)
return err
}

// Update user state
_, err = t.Exec("UPDATE users SET status=1 WHERE id=?", userID)
if err != nil {
t.Rollback()
return fmt.Errorf("Unable to update user status: %s", err)
}

// Commit all changes to the database
err = t.Commit()
if err != nil {
t.Rollback()
log.Error("Unable to commit: %v", err)
return err
}

// TODO: federate delete actor here too?
return nil
}

func (db *datastore) GetAPActorKeys(collectionID int64) ([]byte, []byte) {
var pub, priv []byte
err := db.QueryRow("SELECT public_key, private_key FROM collectionkeys WHERE collection_id = ?", collectionID).Scan(&pub, &priv)
Expand Down
5 changes: 5 additions & 0 deletions pages/landing.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,15 @@ form dd {
</form>
</div>
{{end}}
{{ else }}
{{ if .UserInvites }}
<p style="font-size: 1.3em; margin: 1rem 0;">Registration is by invitation.</p>
<p>Contact us, or an existing user, to get an invite link.</p>
{{ else }}
<p style="font-size: 1.3em; margin: 1rem 0;">Registration is currently closed.</p>
<p>You can always sign up on <a href="https://writefreely.org/instances">another instance</a>.</p>
{{ end }}
{{ end }}
</div>
</div>

Expand Down
1 change: 1 addition & 0 deletions templates/include/footer.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
<li><a href="/about">about</a></li>
{{if and (and (not .SingleUser) .LocalTimeline) .CanViewReader}}<a href="/read">reader</a>{{end}}
<li><a href="/privacy">privacy</a></li>
<li><a rel="me" href="https://mastodon.nl/@mrb">Admin contact</a></li>
</ul>
</div>
<div class="half">
Expand Down
28 changes: 14 additions & 14 deletions templates/include/post-render.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,7 @@

// Given a set of nodes, run highlighting on them
function highlight(nodes) {
for (i=0; i < nodes.length; i++) {
hljs.highlightBlock(nodes[i]);
}
nodes.forEach(node => { hljs.highlightBlock(node); });
}

// Given a array of URIs, load them in order
Expand All @@ -45,11 +43,11 @@
var sc = document.createElement('script');
sc.src = uri;
sc.async = false; // critical?
// Set callback on last script
// Set callback on last script
if (uris.indexOf(uri) == uris.length-1) {
// Set callback regardless
// so we're sure it will run if last element had error
// (we only know after loading, so we've had load time already)
// Set callback regardless
// so we're sure it will run if last element had error
// (we only know after loading, so we've had load time already)
sc.onload = callback; sc.onerror = callback;
}
document.head.appendChild(sc);
Expand All @@ -58,19 +56,21 @@

// We don't have to do anything if there are no language blocks
if (lb.length > 0) {
// We have blocks to be highlighted, so we load css
var st = document.createElement('link');
st.rel = "stylesheet";
st.href = "/css/lib/atom-one-light.min.css";
document.head.appendChild(st);
// We have blocks to be highlighted, so we load css
var st = document.createElement('link');
st.rel = "stylesheet";
st.href = "/css/lib/atom-one-light.min.css";
document.head.appendChild(st);

// Construct set of files to load, in order
var jss = [hlbaseUri + "highlight.min.js"];
// Check what we need to load
for (i=0; i < lb.length; i++) {
lang = lb[i].className.replace('language-','').toLowerCase();
// Support the aliases specified above
// and make sure the block has the non-aliased name
if (aliasmap[lang]) lang = aliasmap[lang];
lb[i].className = 'language-' + lang;
lurl = hlbaseUri + "highlightjs/" + lang + ".min.js";
if (!jss.includes(lurl)) {
jss.push(lurl);
Expand All @@ -79,9 +79,9 @@
// Load files in order, higlight on last load
loadLanguages(jss, () => {highlight(lb)});
}
});
});
</script>
{{end}}
{{end}}

<!-- Include mathjax configuration -->
{{define "mathjax"}}
Expand Down