|
2453 | Backend/Core | Bug Report | Medium | validate category before storing a new task | New | |
| 1.0 | | 14.12.2017 | 14.12.2017 |
Task Description
Currently the category_id is not checked if the value is legal for the project when a new task is created.
If invalid category_id is sent, deny creating task and show error message and show filled form again.
If no category_id is sent (or empty string) and category select is enabled:
or
implement feature request FS#2451 and show that user should select a category.
|
|
2454 | Backend/Core | Bug Report | Low | PHP warning in admin edit user area | New | |
| | | 15.01.2018 | 15.01.2018 |
Task Description
Since PHP7.2 shows a warning in admin area ?do=admin&area=users&user_id=1234567890, when user_id is set, but no alternative user_name parameter.
Probably related to scripts/admin.php
$id = Flyspray::UserNameToId(Req::val('user_name'));
if (!$id) {
$id = Req::val('user_id');
}
|
|
2459 | User Interface | Feature Request | Low | Attachments on/off and max size setting in Admin Toolbo... | Unconfirmed | |
| | | 16.02.2018 | 03.03.2018 |
Task Description
It would be great if the Admin Toolbox had an attachments section with an on/off switch, a max size setting, and it would print out all the reasons why it can’t set it to your desired value.
This would help in situations like FS#2458 , it would be more clear if there is a setting to turn on/off attachments instead of turning them on and off by setting the rights if the attachments folder.
This way if the attachments setting is On, the GUI could also print an error “Attachments folder must be writable” when it detects that the writable attribute does not match the desired setting.
|
|
2466 | Backend/Core | Information | Low | How to run under https | Unconfirmed | |
| | | 03.06.2018 | 02.12.2018 |
Task Description
I have changed the htaccess.dist into .htaccess and modified to force https. However, despite having https activated on my site I cannot get Flyspray running, it’s waiting forever.When I abort I get a page without makeup. I have all other applications like cms and wiki running under https, so it is something I have not done in the flyspray configs obviously (as this site is running https too). But could you give me a hint?
I installed flyspray in a subdirectory, if that is something to know about...
regards, Albert
|
|
2476 | Backend/Core | Information | Low | Guzzle/Guzzle is abandoned, should use library that's s... | Unconfirmed | |
| | | 10.08.2018 | 10.08.2018 |
Task Description
(Working on a network monitoring system that really needs a ticketing system, saw this and since I speak PHP, thought it would be a good place to start... I just installed and am sharing my notes, do with them what you will!)
|
|
2477 | Backend/Core | Information | Low | old style MySQL extension is abandoned .. | Unconfirmed | |
| | | 10.08.2018 | 10.08.2018 |
Task Description
the old php mysql extension is long ago reached its demise, why bother supporting it?
I also see in the database connector that your supporting MySQL/PDO - why not settle on that? If the queries aren’t MySQL specific, it becomes easier to support other DB’s, etc.
|
|
2479 | Backend/Core | Information | Low | User table seems really complex | Unconfirmed | |
| | | 10.08.2018 | 10.08.2018 |
Task Description
why not store all the user preferences in preferences or user_prefernces? Then users can just be simple username, email, password?
|
|
2480 | Backend/Core | Information | Low | Better file organization | Unconfirmed | |
| | | 10.08.2018 | 10.08.2018 |
Task Description
Save public files inside public or public_html directories, and non-public files outside of those directories;
config file
vendor directory
setup logic
etc
This goes onto another question/point - why are you deleting files from the vendor directory? It happens during composer install, and again after installation? Those files will just get put back if the user ever runs composer install again...
|
|
2481 | Backend/Core | Information | Low | Move to MVC | Unconfirmed | |
| | | 10.08.2018 | 10.08.2018 |
Task Description
That way you can just protect the setup routes after installation, etc.
And have a much less cumbersome .htaccess file.
And take sensitive files outside of the server path and not risk letting them get out in the public
|
|
2482 | Backend/Core | Information | Low | Protect issues by default | Unconfirmed | |
| | | 10.08.2018 | 10.08.2018 |
Task Description
I get that your project is public and you want people visiting this site to see what issues you’re working on, but most people probably don’t want their bugs list open to the public;
Can this be protected/private by default?
|
|
2484 | Backend/Core | Information | Low | Increase min. version of PHP requirement | Unconfirmed | |
| | | 10.08.2018 | 10.08.2018 |
Task Description
Then you can gracefully drop support of old MySQL extension AND drop the need for password compat, since BCRYPT and password_hash are built into PHP from version 5.5 onwards
|
|
2491 | Backend/Core | Bug Report | Low | group member links if project manager but not admin | New | |
| 1.0 | | 01.09.2018 | 01.09.2018 |
Task Description
When a user has project manager permissions, but not admin permissions, then on the ‘edit group’ pages like index.php?do=pm&area=editgroup&id=8 the links in the list of users of that group are
index.php?do=admin&area=users&user_id=12345
instead of linking to the users page
index.php?do=user&area=users&id=12345
and a redirect follows with Error #4: You don’t have administrative rights.
|
|
2498 | Translations | Information | Low | Apply variable in language keys to push the local site ... | Unconfirmed | |
| | | 18.09.2018 | 02.11.2018 |
Task Description
Hi, in order for us to push our name (rather than flyspray) on emails, notifications, and GUI we had to edit the language file to replace the text “flyspray” with our install site name. That way notifications come from our company name rather than flyspray.
It would be nice if you could take the site name variable and add it to the language files in all keys that face the public user and all notifications. This would not only prevent editing of the lang file but also make setup alot faster.
Thanks so much.. Dave
|
|
2499 | User Interface | Bug Report | High | Change recaptcha from using file_get_contents to Curl | Unconfirmed | |
| | | 18.09.2018 | 02.11.2018 |
Task Description
The issue with many servers now and the reason that recaptcha does not work is because it requires servers to enable allow_url_fopen which is a huge security risk. That is why you get the warning message when you try to run recaptcha that file_get_contents failed to connect.
So the solution is to use Curl to do that job.
Here is the fixed file, excuse my mess i had not cleaned up my code yet... but recaptcha now works.
this file goes in the includes dir... you can clean up the file if you like again sorry about that.
|
|
2520 | Notifications | Feature Request | Low | Send a notification for a new task in slack integration... | Unconfirmed | |
| | | 24.10.2018 | 30.03.2020 |
Task Description
Hi, i made a way to integrate slack in flyspray using webhooks.. i not added to git.. if some can add for me it’s ok.
The process is simple.. maybe in the front the team can add a field for add the webhook for each action could be better.. in this moment the webhook is triggered only for newtask using the log method.. but you can simply add some “if” for each “type” of log.
Process:
1. Create a new field in the table flyspray_users named “slack”, and add the user slack for each user. 2. Edit the file /includes/class.flyspray.php , go to the function “logEvent” and change it by this:
public static function logEvent($task_id, $type, $newvalue = '', $oldvalue = '', $field = '', $time = null)
{
global $db, $user;
// This function creates entries in the history table. These are the event types:
// 0: Fields changed in a task
// 1: New task created
// 2: Task closed
// 3: Task edited (for backwards compatibility with events prior to the history system)
// 4: Comment added
// 5: Comment edited
// 6: Comment deleted
// 7: Attachment added
// 8: Attachment deleted
// 9: User added to notification list
// 10: User removed from notification list
// 11: Related task added to this task
// 12: Related task removed from this task
// 13: Task re-opened
// 14: Task assigned to user / re-assigned to different user / Unassigned
// 15: This task was added to another task's related list
// 16: This task was removed from another task's related list
// 17: Reminder added
// 18: Reminder deleted
// 19: User took ownership
// 20: Closure request made
// 21: Re-opening request made
// 22: Adding a new dependency
// 23: This task added as a dependency of another task
// 24: Removing a dependency
// 25: This task removed from another task's dependency list
// 26: Task was made private
// 27: Task was made public
// 28: PM request denied
// 29: User added to the list of assignees
// 30: New user registration
// 31: User deletion
// 32: Add new subtask
// 33: Remove Subtask
// 34: Add new parent
// 35: Remove parent
$query_params = array(intval($task_id), intval($user->id),
((!is_numeric($time)) ? time() : $time),
$type, $field, $oldvalue, $newvalue);
// CREATE A NOTIFICATION IN SLACK WHEN A NEW TASK IS CREATED ONLY TO THE USER SELECTED
if ($type == 14) {
$usuarios = $db->query("SELECT DISTINCT a.slack, c.item_summary, d.project_title
FROM {users} a
JOIN {assigned} b on b.user_id = a.user_id
JOIN {tasks} c on c.task_id = b.task_id
JOIN {projects} d on d.project_id = c.project_id
WHERE b.task_id = ?
and a.slack <> '-'", array(intval($task_id)));
$slackUsers = $db->fetchAllArray($usuarios);
foreach ($slackUsers as $users) {
// GET THE USERS FOR IN THE SLACK TO SEND THE NOTIFICATION.
$data = array(
'text' => "New task: Project: " . $users['project_title'] . " | summary: " . $users['item_summary'] . " | taskId:" . $task_id ,
'username' => "bott inslack",
'link_names' => "1",
'channel' => "@" . $users['slack'],
'icon_emoji' => ":panda_face:"
);
$options = array(
'http' => array(
'header' => 'Content-type: application/x-www-form-urlencoded\r\n',
'method' => 'POST',
'content' => json_encode($data)
)
);
// DEFINE SLACK WEBHOOK
$context = stream_context_create($options);
$result = file_get_contents("https://hooks.slack.com/services/xxxxxxxxx", false, $context);
}
}
if($db->query('INSERT INTO {history} (task_id, user_id, event_date, event_type, field_changed,
old_value, new_value) VALUES (?, ?, ?, ?, ?, ?, ?)', $query_params)) {
return true;
}
return false;
} |
|
2521 | Email | Information | Low | TLS email with self-signed certificate doesn't work, "C... | Unconfirmed | |
| | | 31.10.2018 | 03.11.2018 |
Task Description
I use a personal email server with a self-signed certificate (i’m not sure if it’s possible to use my https certificate for that? i don’t even kind of understand what all I did to get this email server setup, and I don’t really want to mess with it... especially since my https certificate comes from Let’s Encrypt... so i might have to muck with the email server every 60 days ... not sure?) ..
anyway, when I try to connect to it with Flyspray, I get above the Test Email button, “Completely unexpected exception: Unable to connect with TLS encryption This should never happend, please inform Flyspray Developers”
Most systems have a way to override and accept an invalid cert, but I’m not seeing anything obvious about doing that with Flyspray. Does a function for this already exist, or do we need a way to do that? (alternatively, I would accept help in properly configuring my email lol)
|
|
2522 | Backend/Core | Feature Request | Low | email vs username login issues | Researching | |
| | | 31.10.2018 | 02.11.2018 |
Task Description
So, I’ve been away from Flyspray for more than a few years. When I tried to login to the Flyspray here, I was unable to login, because I don’t remember my username, and I was unable to retrieve my username, because there’s no function for that. I was *also* unable to re-register the same email address. SO, having an account system that requires both unique usernames and unique email addresses, but has no way of retrieving one from the other, doesn’t work out so well.
Suggestion: either use email as username, or add a function to retrieve username (perhaps along with password retrieval . . password retrieval would then have to take username -or- email, probably)
|
|
2524 | Email | Information | Low | SMTP Mailer doesn't accept custom ports | Unconfirmed | |
| | | 05.11.2018 | 27.11.2018 |
Task Description
Did you installed an official release or did you used an inoffical docker?! Yeah MySQL 8.0.12, 7.2.9 on debian buster
Steps done to create the problem: Enter server:port at Mail-Settings
Expected behavior: smtp.example.com:customport would make use of the custom port
Experienced behavior: TLS Errors
if ($fs->prefs['email_tls']) {
$swiftconn = Swift_SmtpTransport::newInstance($fs->prefs['smtp_server'], 587, 'tls');
} else if ($fs->prefs['email_ssl']) {
$swiftconn = Swift_SmtpTransport::newInstance($fs->prefs['smtp_server'], 465, 'ssl');
} else {
$swiftconn = Swift_SmtpTransport::newInstance($fs->prefs['smtp_server']);
}
Should be changed to
$someTemporaryVariable = explode(':',$fs->prefs['smtp_server']);
if ($fs->prefs['email_tls']) {
$swiftconn = Swift_SmtpTransport::newInstance($someTemporaryVariable[0], $someTemporaryVariable[1] || 587, 'tls');
} else if ($fs->prefs['email_ssl']) {
$swiftconn = Swift_SmtpTransport::newInstance($someTemporaryVariable[0], $someTemporaryVariable[1] || 465, 'ssl');
} else {
$swiftconn = Swift_SmtpTransport::newInstance($someTemporaryVariable[0], $someTemporaryVariable[1] || 25);
}
|
|
2527 | Backend/Core | Bug Report | Low | Database Check »Your mysql supports full utf-8 since 5.... | Unconfirmed | |
| | | 05.01.2019 | 05.01.2019 |
Task Description
Steps done to create the problem: Access /index.php?do=admin&area=checks with a MySQL Version >= 5.5.3
Expected behavior: Flyspray tests for character set and displays »Your mysql supports full utf-8 since 5.5.3. You are using x.x.x and flyspray tables could be upgraded.« when database schema or one table isn’t set to utf8mb4 character set.
Experienced behavior: Flyspray always shows this note, even though character set is correct.
As far as I can tell from the source, a query gets executed to the database (and if I do that manually the result is “utf8mb4, utf8mb4_unicode_ci” for my database), but the result doesn’t get checket, the note is always shown (line 123)
|
|
2531 | Translations | Feature Request | Low | detect usage of translation keywords | New | |
| | | 10.01.2019 | 19.03.2019 |
Task Description
Some translation keywords of Flyspray are used at more than one code location.
To help translators doing the correct translations, it would help to show in what context a translation keyword is used. Especially when a keyword is used more than once.
As we have our own translation helper integrated into Flyspray, we could show a ‘translation keyword usage counter’ there and maybe show on request in which file a translation keyword is used.
It would also help to identify ‘abandoned’ translation keywords that are not used anymore by Flyspray source.
Also it would help to identify when a translation is used at more than one location with maybe different context.
I think we can use a regular expression and scan the whole Flyspray source for that. (and maybe database entries if there are places that have translation keywords stored - I don’t think so, but better check that too first than forget that case)
The regular expression should match that examples case insensitive for the translation keyword report:
L('report'
L("report"
eL('report'
eL("report"
but also ugly cases like
l( 'report'
or
El ( "report"
case insensitive.
But not for example
createURL('report'
|
|
2534 | Backend/Core | Feature Request | Low | Private projects | Unconfirmed | |
| | | 16.01.2019 | 18.01.2019 |
Task Description
I would like to restrict certain projects from view from normal users (Basic group.) I couldn’t find out a way to do it. I could restrict them from viewing tasks, which is good, but it would be nice to hide the project entirely from the Overview screen.
|
|
2535 | Backend/Core | Feature Request | Low | new optional Flyspray setting: add new users automatica... | New | |
| | | 16.01.2019 | 21.01.2019 |
Task Description
When a Flyspray installation allows user self registration and has public but also more private projects, this feature could make the required configuration more clear:
In this case, keep the number of global user groups as low as possible and the global user group for basic or just registered users has only the ‘can login’ permission and nothing more. Because that only would be useless for new registered users, adding them also to a basic user group of a public project could be useful.
So my suggestion is:
A new optional global setting: Something like ‘default project user group’ (store 2 values: a project_id and a group_id). Validity of that setting must be checked during any user registration, so that project must exists now and at later time as also that project user group within that project. (’Checks’ of admin prefs)
So it would be like this for a new registered userA:
userA is in a basic default global user group: only login permission to handle his account registration (login, logout, user preferences, password forgotten)
userA is in project X default user group: some basic permissions you want allow for every (new) registered user in project X
project Y: all ‘allow anyone ...’-settings are unchecked, userA not in any user group of project Y
The setting is probably best put below the ‘Default global group for new users’ setting in the global admin prefs tab #userregistration as
Either: A dropdown list with all public projects with an existing user group and dependend on the selection the available basic project groups are loaded by ajax as a select list too.
Or: Only one dropdown list that contains a list of public projects with possible project user groups. Would not require extra ajax calls and is maybe enough because we could exclude project groups that have project manager permission or such configuration nobody would allow new registered users.
no default project user group
public projectA - simple user groupA1
public projectA - simple user groupA2
public projectB - simple user groupB
public projectC - simple user groupC
This idea could be enhanced further (put the new user to multiple public projects when he registers or let user choose from public allowed projects during registration process), but lets start simple.
|
|
2536 | Backend/Core | Feature Request | Medium | store session in Flyspray database | New | |
| | | 21.01.2019 | 15.03.2019 |
Task Description
Currently the sessions are stored by the webservers default settings.
Having this sessions under control by Flyspray by storing it in the database has following advantages:
Allows handling of all sessions of a user by Flyspray.
Providing a session management for each user. The user can see on which devices he is currently logged in and could also force a logout on selective devices.
A forced logoff of all or some user sessions is easy implementable for admins.
Statistics about how many users and who is logged in. (user status: hide always, online, offline, do not disturb, ..)
Could make onpage-notifications easier to implement.
.. ?
Disadvantages:
A potential unknown security bug in Flyspray that could lead to reading a session db table could leak informations like who is currently online/active and make further attacks more focused or makes session takeover easier.
.. ?
|
|
2544 | Email | Bug Report | Low | Error when registering new account | Unconfirmed | |
| | | 23.03.2019 | 23.03.2019 |
Task Description
I installed the developer edition.
mysql Ver 14.14 Distrib 5.7.25, for Linux PHP 7.2.15-0ubuntu0.18.04.1 Ubuntu 18.04.2
Admin settings → Allow users to register and send conf. email.
I DID set up email settings thru google and sent a test email. it did work.
After logging out, I tried to register a new account. I filled in details and got the following error: Completely unexpected exception: Expected response code 250 but got code “530”, with message “530 5.7.0 Must issue a STARTTLS command first. u13sm3937813iog.80 - gsmtp " This should never happend, please inform Flyspray Developers
Obviously, the confirmation email was never sent.
I am going to try to manually add a new user. Will update with outcome.
|
|
2545 | User Interface | Information | Low | Can't delete system wide 'Task Statuses' | Unconfirmed | |
| | | 20.04.2019 | 05.05.2019 |
Task Description
From the ‘Task Statuses’ menu, when in the global project, the ‘delete’ cases are grayed out, preventing me from deleting them.
This is a problem for me because I would like to only have project specific statuses and I would like to name one of those statuses ‘Assigned’.
For now, I got around it renaming the system wide ‘Assigned’ status.
|
|
2548 | User Interface | Feature Request | Low | CSS grid layout for task details page type | New | |
| | | 05.05.2019 | 05.05.2019 | |
|
2549 | User Interface | Bug Report | Low | Oauth register template always shows "Username already ... | Unconfirmed | |
| | | 06.05.2019 | 06.05.2019 | |
|
2550 | Email | Bug Report | Low | Exception handling sending email notification | Unconfirmed | |
| | | 06.05.2019 | 06.05.2019 | |
|
2551 | Authentication | Information | Low | LDAP/AD integration | Unconfirmed | |
| | | 15.05.2019 | 04.09.2019 | |
|
2552 | Email | Bug Report | High | Email TLS error (was 'Mail Adress encryption') | Unconfirmed | |
| | | 30.05.2019 | 08.04.2020 | |
|
2554 | User Interface | TODO | Low | keyboard shortcuts help box should adapt to current pag... | New | |
| | | 06.06.2019 | 06.06.2019 | |
|
2559 | Backend/Core | Bug Report | Low | a duplicate close accepted even when missing comment/ r... | New | |
peterdd | | | 29.07.2019 | 29.07.2019 | |
|
2561 | Backend/Core | Feature Request | Medium | ability to limit assignee permissions (was:User without... | Confirmed | |
| | | 05.08.2019 | 08.08.2019 | |
|
2568 | Documentation | Bug Report | Medium | [MANUAL] a missing image in "Understanding Permissions:... | Unconfirmed | |
| | | 01.09.2019 | 02.09.2019 | |
|
2572 | User Interface | TODO | Low | add link attributes ugc and nofollow to user generated ... | New | |
| | | 13.09.2019 | 13.09.2019 | |
|
2575 | Backend/Core | Feature Request | Low | ability to view and reset Flyspray default settings | New | |
| | | 19.09.2019 | 19.09.2019 | |
|
2577 | User Interface | Feature Request | Very Low | distinguish between anonymous reporter and deleted user | New | |
| | | 18.10.2019 | 18.10.2019 | |
|
2582 | Backend/Core | Information | Low | How to reach internal windows share (was: Internal URL) | Unconfirmed | |
| | | 04.11.2019 | 05.11.2019 | |
|
2587 | Backend/Core | TODO | Medium | display_errors=1 should not set in release candidate | Unconfirmed | |
| | | 18.12.2019 | 18.12.2019 | |
|
2588 | Backend/Core | Bug Report | Low | ps_files_cleanup_dir: opendir(/tmp/.priv) failed: Permi... | Unconfirmed | |
| | | 18.12.2019 | 05.02.2021 | |
|
2589 | User Interface | Bug Report | Low | Time zone in user settings is confusing | Unconfirmed | |
| | | 28.12.2019 | 28.12.2019 | |
|
2595 | Notifications | Feature Request | Low | Notifications to message platforms | Unconfirmed | |
| | | 05.03.2020 | 26.03.2020 | |
|
2598 | User Interface | Bug Report | Low | user registration in admin area: "username taken" but t... | Assigned | |
peterdd | 1.0 | | 20.03.2020 | 14.04.2021 | |
|
2599 | Backend/Core | Information | Low | add post request on new task creation | Unconfirmed | |
| | | 30.03.2020 | 12.04.2021 | |
|
2600 | Backend/Core | Information | Low | Error #17 when selecting a project | Unconfirmed | |
| | | 31.03.2020 | 31.03.2020 | |
|
2602 | Documentation | Feature Request | Low | https://github.com/flyspray/flyspray instead of https:/... | Researching | |
| | | 21.04.2020 | 13.04.2021 | |
|
2603 | Backend/Core | Bug Report | Very Low | Psi XMPP client (19-04-09) | Waiting on Customer | |
| | | 21.04.2020 | 25.09.2020 | |
|
2606 | Database Queries | Feature Request | Low | duedate column sort asc in tasklist should put unset du... | New | |
| | | 02.05.2020 | 02.05.2020 | |
|
2608 | Email | Bug Report | Medium | Notification email sent although not requested | Unconfirmed | |
| | | 05.05.2020 | 05.05.2020 | |
|
2613 | Public Relations | Information | Very Low | Email ist Signup | Unconfirmed | |
| | 1 | 16.09.2020 | 16.09.2020 | |