Move Google authentication to an external plugin
This commit is contained in:
parent
915bf58822
commit
dae0c7391a
|
|
@ -1,6 +1,11 @@
|
|||
Version 1.0.25 (unreleased)
|
||||
--------------
|
||||
|
||||
Breaking changes:
|
||||
|
||||
* Core functionalities moved to external plugins:
|
||||
- Google Auth: https://github.com/kanboard/plugin-google-auth
|
||||
|
||||
New features:
|
||||
|
||||
* Add project owner (Directly Responsible Individual)
|
||||
|
|
|
|||
|
|
@ -1,143 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Kanboard\Auth;
|
||||
|
||||
use Kanboard\Core\Base;
|
||||
use Kanboard\Core\Security\OAuthAuthenticationProviderInterface;
|
||||
use Kanboard\User\GoogleUserProvider;
|
||||
|
||||
/**
|
||||
* Google Authentication Provider
|
||||
*
|
||||
* @package auth
|
||||
* @author Frederic Guillot
|
||||
*/
|
||||
class GoogleAuth extends Base implements OAuthAuthenticationProviderInterface
|
||||
{
|
||||
/**
|
||||
* User properties
|
||||
*
|
||||
* @access protected
|
||||
* @var \Kanboard\User\GoogleUserProvider
|
||||
*/
|
||||
protected $userInfo = null;
|
||||
|
||||
/**
|
||||
* OAuth2 instance
|
||||
*
|
||||
* @access protected
|
||||
* @var \Kanboard\Core\Http\OAuth2
|
||||
*/
|
||||
protected $service;
|
||||
|
||||
/**
|
||||
* OAuth2 code
|
||||
*
|
||||
* @access protected
|
||||
* @var string
|
||||
*/
|
||||
protected $code = '';
|
||||
|
||||
/**
|
||||
* Get authentication provider name
|
||||
*
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return 'Google';
|
||||
}
|
||||
|
||||
/**
|
||||
* Authenticate the user
|
||||
*
|
||||
* @access public
|
||||
* @return boolean
|
||||
*/
|
||||
public function authenticate()
|
||||
{
|
||||
$profile = $this->getProfile();
|
||||
|
||||
if (! empty($profile)) {
|
||||
$this->userInfo = new GoogleUserProvider($profile);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Code
|
||||
*
|
||||
* @access public
|
||||
* @param string $code
|
||||
* @return GoogleAuth
|
||||
*/
|
||||
public function setCode($code)
|
||||
{
|
||||
$this->code = $code;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get user object
|
||||
*
|
||||
* @access public
|
||||
* @return GoogleUserProvider
|
||||
*/
|
||||
public function getUser()
|
||||
{
|
||||
return $this->userInfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get configured OAuth2 service
|
||||
*
|
||||
* @access public
|
||||
* @return \Kanboard\Core\Http\OAuth2
|
||||
*/
|
||||
public function getService()
|
||||
{
|
||||
if (empty($this->service)) {
|
||||
$this->service = $this->oauth->createService(
|
||||
GOOGLE_CLIENT_ID,
|
||||
GOOGLE_CLIENT_SECRET,
|
||||
$this->helper->url->to('oauth', 'google', array(), '', true),
|
||||
'https://accounts.google.com/o/oauth2/auth',
|
||||
'https://accounts.google.com/o/oauth2/token',
|
||||
array('https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/userinfo.profile')
|
||||
);
|
||||
}
|
||||
|
||||
return $this->service;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Google profile
|
||||
*
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getProfile()
|
||||
{
|
||||
$this->getService()->getAccessToken($this->code);
|
||||
|
||||
return $this->httpClient->getJson(
|
||||
'https://www.googleapis.com/oauth2/v1/userinfo',
|
||||
array($this->getService()->getAuthorizationHeader())
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unlink user
|
||||
*
|
||||
* @access public
|
||||
* @param integer $userId
|
||||
* @return bool
|
||||
*/
|
||||
public function unlink($userId)
|
||||
{
|
||||
return $this->user->update(array('id' => $userId, 'google_id' => ''));
|
||||
}
|
||||
}
|
||||
|
|
@ -10,16 +10,6 @@ namespace Kanboard\Controller;
|
|||
*/
|
||||
class Oauth extends Base
|
||||
{
|
||||
/**
|
||||
* Link or authenticate a Google account
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function google()
|
||||
{
|
||||
$this->step1('Google');
|
||||
}
|
||||
|
||||
/**
|
||||
* Link or authenticate a Github account
|
||||
*
|
||||
|
|
@ -65,7 +55,7 @@ class Oauth extends Base
|
|||
* @access private
|
||||
* @param string $provider
|
||||
*/
|
||||
private function step1($provider)
|
||||
protected function step1($provider)
|
||||
{
|
||||
$code = $this->request->getStringParam('code');
|
||||
|
||||
|
|
@ -79,11 +69,11 @@ class Oauth extends Base
|
|||
/**
|
||||
* Link or authenticate the user
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @param string $provider
|
||||
* @param string $code
|
||||
*/
|
||||
private function step2($provider, $code)
|
||||
protected function step2($provider, $code)
|
||||
{
|
||||
$this->authenticationManager->getProvider($provider)->setCode($code);
|
||||
|
||||
|
|
@ -97,10 +87,10 @@ class Oauth extends Base
|
|||
/**
|
||||
* Link the account
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @param string $provider
|
||||
*/
|
||||
private function link($provider)
|
||||
protected function link($provider)
|
||||
{
|
||||
$authProvider = $this->authenticationManager->getProvider($provider);
|
||||
|
||||
|
|
@ -117,10 +107,10 @@ class Oauth extends Base
|
|||
/**
|
||||
* Authenticate the account
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @param string $provider
|
||||
*/
|
||||
private function authenticate($provider)
|
||||
protected function authenticate($provider)
|
||||
{
|
||||
if ($this->authenticationManager->oauthAuthentication($provider)) {
|
||||
$this->response->redirect($this->helper->url->to('app', 'index'));
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
'External authentication failed' => 'Vanjska autentikacija nije uspostavljena',
|
||||
'Your external account is linked to your profile successfully.' => 'Uspješno uspostavljena vanjska autentikacija',
|
||||
'Email' => 'E-mail',
|
||||
'Link my Google Account' => 'Poveži sa Google nalogom',
|
||||
'Unlink my Google Account' => 'Ukini vezu sa Google nalogom',
|
||||
'Login with my Google Account' => 'Prijavi se preko Google naloga',
|
||||
'Project not found.' => 'Projekat nije pronađen.',
|
||||
'Task removed successfully.' => 'Zadatak uspješno uklonjen.',
|
||||
'Unable to remove this task.' => 'Nemoguće uklanjanje zadatka.',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'Promijeni šifru',
|
||||
'Password modification' => 'Izmjena šifre',
|
||||
'External authentications' => 'Vanjske autentikacije',
|
||||
'Google Account' => 'Google korisnički račun',
|
||||
'Github Account' => 'Github korisnički račun',
|
||||
'Never connected.' => 'Bez konekcija.',
|
||||
'No account linked.' => 'Bez povezanih korisničkih računa.',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Ovaj grafik pokazuje prosjek vremena vođenja i vremenskog ciklusa za posljednjih %d zadataka tokom vremena.',
|
||||
'Average time into each column' => 'Prosječno vrijeme u svakoj koloni',
|
||||
'Lead and cycle time' => 'Vrijeme vođenja i vremenski ciklus',
|
||||
'Google Authentication' => 'Google autentifikacija',
|
||||
'Help on Google authentication' => 'Pomoć na Google autentifikacija',
|
||||
'Github Authentication' => 'Github autentifikacija',
|
||||
'Help on Github authentication' => 'Pomoć na Github autentifikacija',
|
||||
'Lead time: ' => 'Vrijeme vođenja: ',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
'If the task is not closed the current time is used instead of the completion date.' => 'Ako zadatak nije zatvoren trenutno vrijeme je iskorišteno umjesto datuma završetka.',
|
||||
'Set automatically the start date' => 'Automatski postavi početno vrijeme',
|
||||
'Edit Authentication' => 'Uredi autentifikaciju',
|
||||
'Google Id' => 'Google Id',
|
||||
'Github Id' => 'Github Id',
|
||||
'Remote user' => 'Vanjski korisnik',
|
||||
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Vanjski korisnik ne čuva šifru u Kanboard bazi, npr: LDAP, Google i Github korisnički računi.',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
// 'External authentication failed' => '',
|
||||
// 'Your external account is linked to your profile successfully.' => '',
|
||||
'Email' => 'E-Mail',
|
||||
'Link my Google Account' => 'Propojit s Google účtem',
|
||||
'Unlink my Google Account' => 'Odpojit Google účet',
|
||||
'Login with my Google Account' => 'Přihlášení pomocí Google účtu',
|
||||
'Project not found.' => 'Projekt nebyl nalezen.',
|
||||
'Task removed successfully.' => 'Úkol byl úspěšně odebrán.',
|
||||
'Unable to remove this task.' => 'Tento úkol nelze odebrat.',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'Změnit heslo',
|
||||
'Password modification' => 'Změna hesla',
|
||||
'External authentications' => 'Vzdálená autorizace',
|
||||
'Google Account' => 'Google účet',
|
||||
'Github Account' => 'github účet',
|
||||
'Never connected.' => 'Zatím nikdy nespojen.',
|
||||
'No account linked.' => 'Žádné propojení účtu.',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Graf ukazuje průměrnou dodací lhůtu a dobu cyklu pro posledních %d úkolů v průběhu času',
|
||||
'Average time into each column' => 'Průměrná doba v každé fázi',
|
||||
'Lead and cycle time' => 'Dodací lhůta a doba cyklu',
|
||||
'Google Authentication' => 'Ověřování pomocí služby Google',
|
||||
'Help on Google authentication' => 'Nápověda k ověřování pomocí služby Google',
|
||||
'Github Authentication' => 'Ověřování pomocí služby Github',
|
||||
'Help on Github authentication' => 'Nápověda k ověřování pomocí služby Github',
|
||||
'Lead time: ' => 'Dodací lhůta: ',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
'If the task is not closed the current time is used instead of the completion date.' => 'Jestliže není úkol uzavřen, místo termínu dokončení je použit aktuální čas.',
|
||||
'Set automatically the start date' => 'Nastavit automaticky počáteční datum',
|
||||
'Edit Authentication' => 'Upravit ověřování',
|
||||
'Google Id' => 'Google ID',
|
||||
'Github Id' => 'Github ID',
|
||||
'Remote user' => 'Vzdálený uživatel',
|
||||
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Hesla vzdáleným uživatelům se neukládají do databáze Kanboard. Naříklad: LDAP, Google a Github účty.',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
// 'External authentication failed' => '',
|
||||
// 'Your external account is linked to your profile successfully.' => '',
|
||||
'Email' => 'E-Mail',
|
||||
'Link my Google Account' => 'Forbind min Google-konto',
|
||||
'Unlink my Google Account' => 'Fjern forbindelsen til min Google-konto',
|
||||
'Login with my Google Account' => 'Login med min Google-konto',
|
||||
'Project not found.' => 'Projekt ikke fundet.',
|
||||
'Task removed successfully.' => 'Opgaven er fjernet.',
|
||||
'Unable to remove this task.' => 'Opgaven kunne ikke fjernes.',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'Skift adgangskode',
|
||||
'Password modification' => 'Adgangskode ændring',
|
||||
'External authentications' => 'Ekstern autentificering',
|
||||
'Google Account' => 'Google-konto',
|
||||
'Github Account' => 'Github-konto',
|
||||
'Never connected.' => 'Aldrig forbundet.',
|
||||
'No account linked.' => 'Ingen kontoer forfundet.',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
|
||||
// 'Average time into each column' => '',
|
||||
// 'Lead and cycle time' => '',
|
||||
// 'Google Authentication' => '',
|
||||
// 'Help on Google authentication' => '',
|
||||
// 'Github Authentication' => '',
|
||||
// 'Help on Github authentication' => '',
|
||||
// 'Lead time: ' => '',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
// 'If the task is not closed the current time is used instead of the completion date.' => '',
|
||||
// 'Set automatically the start date' => '',
|
||||
// 'Edit Authentication' => '',
|
||||
// 'Google Id' => '',
|
||||
// 'Github Id' => '',
|
||||
// 'Remote user' => '',
|
||||
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
'External authentication failed' => 'Externe Authentifizierung fehlgeschlagen',
|
||||
'Your external account is linked to your profile successfully.' => 'Dein externer Account wurde erfolgreich mit deinem Profil verbunden',
|
||||
'Email' => 'E-Mail',
|
||||
'Link my Google Account' => 'Verbinde meinen Google-Account',
|
||||
'Unlink my Google Account' => 'Verbindung mit meinem Google-Account trennen',
|
||||
'Login with my Google Account' => 'Anmelden mit meinem Google-Account',
|
||||
'Project not found.' => 'Das Projekt wurde nicht gefunden.',
|
||||
'Task removed successfully.' => 'Aufgabe erfolgreich gelöscht.',
|
||||
'Unable to remove this task.' => 'Löschen der Aufgabe nicht möglich.',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'Passwort ändern',
|
||||
'Password modification' => 'Passwortänderung',
|
||||
'External authentications' => 'Externe Authentisierungsmethoden',
|
||||
'Google Account' => 'Google-Account',
|
||||
'Github Account' => 'Github-Account',
|
||||
'Never connected.' => 'Noch nie verbunden.',
|
||||
'No account linked.' => 'Kein Account verbunden.',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Das Diagramm zeigt die durchschnittliche Durchlauf- und Zykluszeit der letzten %d Aufgaben über die Zeit an.',
|
||||
'Average time into each column' => 'Durchschnittzeit in jeder Spalte',
|
||||
'Lead and cycle time' => 'Durchlauf- und Zykluszeit',
|
||||
'Google Authentication' => 'Google-Authentifizierung',
|
||||
'Help on Google authentication' => 'Hilfe bei Google-Authentifizierung',
|
||||
'Github Authentication' => 'Github-Authentifizierung',
|
||||
'Help on Github authentication' => 'Hilfe bei Github-Authentifizierung',
|
||||
'Lead time: ' => 'Durchlaufzeit:',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
'If the task is not closed the current time is used instead of the completion date.' => 'Wenn die Aufgabe nicht geschlossen ist, wird die aktuelle Zeit statt der Fertigstellung verwendet.',
|
||||
'Set automatically the start date' => 'Setze Startdatum automatisch',
|
||||
'Edit Authentication' => 'Authentifizierung bearbeiten',
|
||||
'Google Id' => 'Google Id',
|
||||
'Github Id' => 'Github Id',
|
||||
'Remote user' => 'Remote-Benutzer',
|
||||
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Remote-Benutzer haben kein Passwort in der Kanboard Datenbank, Beispiel LDAP, Goole und Github Accounts',
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ return array(
|
|||
'Dark Grey' => 'Βαθύ γκρί',
|
||||
'Pink' => 'Ρόζ',
|
||||
'Teal' => 'Τουρκουάζ',
|
||||
'Cyan'=> 'Γαλάζιο',
|
||||
'Cyan' => 'Γαλάζιο',
|
||||
'Lime' => 'Λεμονί',
|
||||
'Light Green' => 'Ανοιχτό πράσινο',
|
||||
'Amber' => 'Κεχριμπαρί',
|
||||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
'External authentication failed' => 'Αποτυχία εξωτερικής σύνδεσης',
|
||||
'Your external account is linked to your profile successfully.' => 'Ο λογαριασμός σας συνδέθηκε με το προφίλ σας με επιτυχία.',
|
||||
'Email' => 'Email',
|
||||
'Link my Google Account' => 'Σύνδεση του Google Account μου',
|
||||
'Unlink my Google Account' => 'Αποσύνδεση του Google Account μου',
|
||||
'Login with my Google Account' => 'Σύνδεση με Google Account',
|
||||
'Project not found.' => 'Το έργο δεν βρέθηκε.',
|
||||
'Task removed successfully.' => 'Η εργασία αφαιρέθηκε με επιτυχία.',
|
||||
'Unable to remove this task.' => 'Δεν είναι δυνατή η αφαίρεση της εργασίας.',
|
||||
|
|
@ -329,7 +326,7 @@ return array(
|
|||
'Display another project' => 'Εμφάνιση άλλου έργου',
|
||||
'Login with my Github Account' => 'Σύνδεση με το Github Account μου',
|
||||
'Link my Github Account' => 'Σύνδεση Github Account',
|
||||
'Unlink my Github Account' => 'Αποσύνδεση του Github Account μου',
|
||||
'Unlink my Github Account' => 'Αποσύνδεση του Github Account μου',
|
||||
'Created by %s' => 'Δημιουργήθηκε από %s',
|
||||
'Last modified on %B %e, %Y at %k:%M %p' => 'Τελευταία ενημέρωση: %d/%m/%Y à %H:%M',
|
||||
'Tasks Export' => 'Εξαγωγή εργασιών',
|
||||
|
|
@ -355,14 +352,12 @@ return array(
|
|||
'Time tracking:' => 'Παρακολούθηση του χρόνου :',
|
||||
'New sub-task' => 'Νέα υπο-εργασία',
|
||||
'New attachment added "%s"' => 'Νέα επικόλληση προστέθηκε « %s »',
|
||||
'Comment updated' => 'Το σχόλιο ενημηρώθηκε',
|
||||
'Comment updated' => 'Το σχόλιο ενημερώθηκε',
|
||||
'New comment posted by %s' => 'Νέο σχόλιο από τον χρήστη « %s »',
|
||||
'New attachment' => 'New attachment',
|
||||
'New comment' => 'Νέο σχόλιο',
|
||||
'Comment updated' => 'Το σχόλιο ενημερώθηκε',
|
||||
'New subtask' => 'Νέα υπο-εργασία',
|
||||
'Subtask updated' => 'Υπο-Εργασία ενημερώθηκε',
|
||||
'New task' => 'Νέα εργασία',
|
||||
'Task updated' => 'Η εργασία ενημερώθηκε',
|
||||
'Task closed' => 'Η εργασία έκλεισε',
|
||||
'Task opened' => 'Η εργασία άνοιξε',
|
||||
|
|
@ -397,7 +392,6 @@ return array(
|
|||
'Change password' => 'Αλλαγή password',
|
||||
'Password modification' => 'Τροποποίηση password ',
|
||||
'External authentications' => 'Εξωτερικές πιστοποιήσεις',
|
||||
'Google Account' => 'Google Account',
|
||||
'Github Account' => 'Github Account',
|
||||
'Never connected.' => 'Ποτέ δεν συνδέθηκε.',
|
||||
'No account linked.' => 'Δεν υπάρχουν ενεργοί λογαριασμοί',
|
||||
|
|
@ -688,7 +682,6 @@ return array(
|
|||
'Take a screenshot and press CTRL+V or ⌘+V to paste here.' => 'Πάρτε ένα screenshot και πατήστε CTRL+V or ⌘+V για να το επικολλήσετε εδώ.',
|
||||
'Screenshot uploaded successfully.' => 'Το screenshot ανέβηκε με επιτυχία.',
|
||||
'SEK - Swedish Krona' => 'SEK - Swedish Krona',
|
||||
'The project identifier is an optional alphanumeric code used to identify your project.' => 'Το αναγνωριστικό έργου είναι ένας προαιρετικός αλφαριθμητικός κωδικός που χρησιμοποιείται για την αναγνώριση του έργου σας.',
|
||||
'Identifier' => 'Αναγνωριστικό',
|
||||
'Disable two factor authentication' => 'Απενεργοποίηση κωδικού ελέγχου ταυτότητας δύο παραγόντων',
|
||||
'Do you really want to disable the two factor authentication for this user: "%s"?' => 'Είστε σίγουροι ότι θέλετε να απενεργοποίησετε τον κωδικό ελέγχου ταυτότητας δύο παραγόντων : « %s » ?',
|
||||
|
|
@ -849,8 +842,6 @@ return array(
|
|||
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Αυτό το γράφημα δείχνει το average lead and cycle time για τις τελευταίες %d εργασίες κατά τη διάρκεια του χρόνου.',
|
||||
'Average time into each column' => 'Μέσος χρόνος σε κάθε στήλη',
|
||||
'Lead and cycle time' => 'Lead et cycle time',
|
||||
'Google Authentication' => 'Πιστοποίηση Google',
|
||||
'Help on Google authentication' => 'Βοήθεια για την πιστοποίηση της Google',
|
||||
'Github Authentication' => 'Πιστοποίηση Github',
|
||||
'Help on Github authentication' => 'Βοήθεια για την πιστοποίηση της Github',
|
||||
'Lead time: ' => 'Lead time : ',
|
||||
|
|
@ -861,7 +852,6 @@ return array(
|
|||
'If the task is not closed the current time is used instead of the completion date.' => 'Εάν η εργασία δεν έχει κλείσει η τρέχουσα ώρα χρησιμοποιείται αντί της ημερομηνίας ολοκλήρωσης.',
|
||||
'Set automatically the start date' => 'Ρυθμίστε αυτόματα την ημερομηνία έναρξης',
|
||||
'Edit Authentication' => 'Επεξεργασία ταυτοποίησης',
|
||||
'Google Id' => 'Id Google',
|
||||
'Github Id' => 'Id Github',
|
||||
'Remote user' => 'Απομακρυσμένος χρήστης',
|
||||
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Στους απομακρυσμένους χρήστες δεν αποθηκεύονται οι κωδικοί πρόσβασης εντός της βάσης δεδομένων της τρέχουσας εφαρμογής, Παραδείγματα: LDAP, Google and Github accounts.',
|
||||
|
|
@ -1014,7 +1004,6 @@ return array(
|
|||
'Usernames must be lowercase and unique' => 'Οι ονομασίες χρηστών πρέπει να είναι σε μικρά γράμματα (lowercase) και μοναδικά',
|
||||
'Passwords will be encrypted if present' => 'Οι κωδικοί πρόσβασης κρυπτογραφούνται, αν υπάρχουν',
|
||||
'%s attached a new file to the task %s' => '%s νέο συνημμένο αρχείο της εργασίας %s',
|
||||
'Link type' => 'Τύπος συνδέσμου',
|
||||
'Assign automatically a category based on a link' => 'Ανατίθεται αυτόματα κατηγορία, βασισμένη στον σύνδεσμο',
|
||||
'BAM - Konvertible Mark' => 'BAM - Konvertible Mark',
|
||||
'Assignee Username' => 'Δικαιοδόχο όνομα χρήστη',
|
||||
|
|
@ -1107,4 +1096,19 @@ return array(
|
|||
'No plugin has registered a project notification method. You can still configure individual notifications in your user profile.' => 'Κανένα plugin δεν έχει καταχωρηθεί με τη μέθοδο της κοινοποίησης του έργου. Μπορείτε ακόμα να διαμορφώσετε τις μεμονωμένες κοινοποιήσεις στο προφίλ χρήστη σας.',
|
||||
'My dashboard' => 'Το κεντρικό ταμπλό μου',
|
||||
'My profile' => 'Το προφίλ μου',
|
||||
// 'Project owner: ' => '',
|
||||
// 'The project identifier is optional and must be alphanumeric, example: MYPROJECT.' => '',
|
||||
// 'Project owner' => '',
|
||||
// 'Those dates are useful for the project Gantt chart.' => '',
|
||||
// 'Private projects do not have users and groups management.' => '',
|
||||
// 'There is no project member.' => '',
|
||||
// 'Priority' => '',
|
||||
// 'Task priority' => '',
|
||||
// 'General' => '',
|
||||
// 'Dates' => '',
|
||||
// 'Default priority' => '',
|
||||
// 'Lowest priority' => '',
|
||||
// 'Highest priority' => '',
|
||||
// 'If you put zero to the low and high priority, this feature will be disabled.' => '',
|
||||
// 'Priority: %d' => '',
|
||||
);
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
'External authentication failed' => 'Falló la autenticación externa',
|
||||
'Your external account is linked to your profile successfully.' => 'Su cuenta externa se ha vinculado exitosamente con su perfil.',
|
||||
'Email' => 'Correo',
|
||||
'Link my Google Account' => 'Vincular con mi Cuenta en Google',
|
||||
'Unlink my Google Account' => 'Desvincular de mi Cuenta en Google',
|
||||
'Login with my Google Account' => 'Ingresar con mi Cuenta de Google',
|
||||
'Project not found.' => 'Proyecto no hallado.',
|
||||
'Task removed successfully.' => 'Tarea suprimida correctamente.',
|
||||
'Unable to remove this task.' => 'No pude suprimir esta tarea.',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'Cambiar contraseña',
|
||||
'Password modification' => 'Modificacion de contraseña',
|
||||
'External authentications' => 'Autenticación externa',
|
||||
'Google Account' => 'Cuenta de Google',
|
||||
'Github Account' => 'Cuenta de Github',
|
||||
'Never connected.' => 'Nunca se ha conectado.',
|
||||
'No account linked.' => 'Sin vínculo con cuenta.',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Esta gráfica muestra el plazo medio de entrega y de ciclo para las %d últimas tareas transcurridas.',
|
||||
'Average time into each column' => 'Tiempo medio en cada columna',
|
||||
'Lead and cycle time' => 'Plazo de entrega y de ciclo',
|
||||
'Google Authentication' => 'Autenticación de Google',
|
||||
'Help on Google authentication' => 'Ayuda con la aAutenticación de Google',
|
||||
'Github Authentication' => 'Autenticación de Github',
|
||||
'Help on Github authentication' => 'Ayuda con la autenticación de Github',
|
||||
'Lead time: ' => 'Plazo de entrega: ',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
'If the task is not closed the current time is used instead of the completion date.' => 'Si la tarea no se cierra, se usa la fecha actual en lugar de la de terminación.',
|
||||
'Set automatically the start date' => 'Poner la fecha de inicio de forma automática',
|
||||
'Edit Authentication' => 'Editar autenticación',
|
||||
'Google Id' => 'Id de Google',
|
||||
'Github Id' => 'Id de Github',
|
||||
'Remote user' => 'Usuario remoto',
|
||||
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Los usuarios remotos no almacenan sus contraseñas en la base de datos Kanboard, por ejemplo: cuentas de LDAP, Google y Github',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
// 'External authentication failed' => '',
|
||||
// 'Your external account is linked to your profile successfully.' => '',
|
||||
'Email' => 'Sähköposti',
|
||||
'Link my Google Account' => 'Linkitä Google-tili',
|
||||
'Unlink my Google Account' => 'Poista Google-tilin linkitys',
|
||||
'Login with my Google Account' => 'Kirjaudu Google tunnuksella',
|
||||
'Project not found.' => 'Projektia ei löytynyt.',
|
||||
'Task removed successfully.' => 'Tehtävä poistettiin onnistuneesti.',
|
||||
'Unable to remove this task.' => 'Tehtävän poistaminen epäonnistui.',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'Vaihda salasana',
|
||||
'Password modification' => 'Salasanan vaihto',
|
||||
'External authentications' => 'Muut tunnistautumistavat',
|
||||
'Google Account' => 'Google-tili',
|
||||
'Github Account' => 'Github-tili',
|
||||
'Never connected.' => 'Ei koskaan liitetty.',
|
||||
'No account linked.' => 'Tiliä ei ole liitetty.',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
|
||||
// 'Average time into each column' => '',
|
||||
// 'Lead and cycle time' => '',
|
||||
// 'Google Authentication' => '',
|
||||
// 'Help on Google authentication' => '',
|
||||
// 'Github Authentication' => '',
|
||||
// 'Help on Github authentication' => '',
|
||||
// 'Lead time: ' => '',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
// 'If the task is not closed the current time is used instead of the completion date.' => '',
|
||||
// 'Set automatically the start date' => '',
|
||||
// 'Edit Authentication' => '',
|
||||
// 'Google Id' => '',
|
||||
// 'Github Id' => '',
|
||||
// 'Remote user' => '',
|
||||
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
'External authentication failed' => 'L’authentification externe a échoué',
|
||||
'Your external account is linked to your profile successfully.' => 'Votre compte externe est désormais lié à votre profil.',
|
||||
'Email' => 'Email',
|
||||
'Link my Google Account' => 'Lier mon compte Google',
|
||||
'Unlink my Google Account' => 'Ne plus utiliser mon compte Google',
|
||||
'Login with my Google Account' => 'Se connecter avec mon compte Google',
|
||||
'Project not found.' => 'Projet introuvable.',
|
||||
'Task removed successfully.' => 'Tâche supprimée avec succès.',
|
||||
'Unable to remove this task.' => 'Impossible de supprimer cette tâche.',
|
||||
|
|
@ -397,7 +394,6 @@ return array(
|
|||
'Change password' => 'Changer le mot de passe',
|
||||
'Password modification' => 'Changement de mot de passe',
|
||||
'External authentications' => 'Authentifications externes',
|
||||
'Google Account' => 'Compte Google',
|
||||
'Github Account' => 'Compte Github',
|
||||
'Never connected.' => 'Jamais connecté.',
|
||||
'No account linked.' => 'Aucun compte attaché.',
|
||||
|
|
@ -848,8 +844,6 @@ return array(
|
|||
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Ce graphique montre la durée moyenne du lead et cycle time pour les %d dernières tâches.',
|
||||
'Average time into each column' => 'Temps moyen dans chaque colonne',
|
||||
'Lead and cycle time' => 'Lead et cycle time',
|
||||
'Google Authentication' => 'Authentification Google',
|
||||
'Help on Google authentication' => 'Aide sur l\'authentification Google',
|
||||
'Github Authentication' => 'Authentification Github',
|
||||
'Help on Github authentication' => 'Aide sur l\'authentification Github',
|
||||
'Lead time: ' => 'Lead time : ',
|
||||
|
|
@ -860,7 +854,6 @@ return array(
|
|||
'If the task is not closed the current time is used instead of the completion date.' => 'Si la tâche n\'est pas fermée, l\'heure courante est utilisée à la place de la date de complétion.',
|
||||
'Set automatically the start date' => 'Définir automatiquement la date de début',
|
||||
'Edit Authentication' => 'Modifier l\'authentification',
|
||||
'Google Id' => 'Identifiant Google',
|
||||
'Github Id' => 'Identifiant Github',
|
||||
'Remote user' => 'Utilisateur distant',
|
||||
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Les utilisateurs distants ne stockent pas leur mot de passe dans la base de données de Kanboard, exemples : comptes LDAP, Github ou Google.',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
// 'External authentication failed' => '',
|
||||
// 'Your external account is linked to your profile successfully.' => '',
|
||||
'Email' => 'E-mail',
|
||||
'Link my Google Account' => 'Kapcsold össze a Google fiókkal',
|
||||
'Unlink my Google Account' => 'Válaszd le a Google fiókomat',
|
||||
'Login with my Google Account' => 'Jelentkezzen be Google fiókkal',
|
||||
'Project not found.' => 'A projekt nem található.',
|
||||
'Task removed successfully.' => 'Feladat sikeresen törölve.',
|
||||
'Unable to remove this task.' => 'A feladatot nem lehet törölni.',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'Jelszó módosítása',
|
||||
'Password modification' => 'Jelszó módosítása',
|
||||
'External authentications' => 'Külső azonosítás',
|
||||
'Google Account' => 'Google fiók',
|
||||
'Github Account' => 'Github fiók',
|
||||
'Never connected.' => 'Sosem csatlakozva.',
|
||||
'No account linked.' => 'Nincs csatlakoztatott fiók.',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
|
||||
// 'Average time into each column' => '',
|
||||
// 'Lead and cycle time' => '',
|
||||
// 'Google Authentication' => '',
|
||||
// 'Help on Google authentication' => '',
|
||||
// 'Github Authentication' => '',
|
||||
// 'Help on Github authentication' => '',
|
||||
// 'Lead time: ' => '',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
// 'If the task is not closed the current time is used instead of the completion date.' => '',
|
||||
// 'Set automatically the start date' => '',
|
||||
// 'Edit Authentication' => '',
|
||||
// 'Google Id' => '',
|
||||
// 'Github Id' => '',
|
||||
// 'Remote user' => '',
|
||||
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
'External authentication failed' => 'Otentifikasi eksternal gagal',
|
||||
'Your external account is linked to your profile successfully.' => 'Akun eksternal anda berhasil dihubungkan ke profil anda.',
|
||||
'Email' => 'Email',
|
||||
'Link my Google Account' => 'Hubungkan akun Google saya',
|
||||
'Unlink my Google Account' => 'Putuskan akun Google saya',
|
||||
'Login with my Google Account' => 'Masuk menggunakan akun Google saya',
|
||||
'Project not found.' => 'Proyek tidak ditemukan.',
|
||||
'Task removed successfully.' => 'Tugas berhasil dihapus.',
|
||||
'Unable to remove this task.' => 'Tidak dapat menghapus tugas ini.',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'Rubah kata sandri',
|
||||
'Password modification' => 'Modifikasi kata sandi',
|
||||
'External authentications' => 'Otentifikasi eksternal',
|
||||
'Google Account' => 'Akun Google',
|
||||
'Github Account' => 'Akun Github',
|
||||
'Never connected.' => 'Tidak pernah terhubung.',
|
||||
'No account linked.' => 'Tidak ada akun terhubung.',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Grafik ini menunjukkan memimpin rata-rata dan waktu siklus untuk %d tugas terakhir dari waktu ke waktu.',
|
||||
'Average time into each column' => 'Rata-rata waktu ke setiap kolom',
|
||||
'Lead and cycle time' => 'Lead dan siklus waktu',
|
||||
'Google Authentication' => 'Google Otentifikasi',
|
||||
'Help on Google authentication' => 'Bantuan pada otentifikasi Google',
|
||||
'Github Authentication' => 'Otentifikasi Github',
|
||||
'Help on Github authentication' => 'Bantuan pada otentifikasi Github',
|
||||
'Lead time: ' => 'Lead time : ',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
'If the task is not closed the current time is used instead of the completion date.' => 'Jika tugas tidak ditutup waktu saat ini yang digunakan sebagai pengganti tanggal penyelesaian.',
|
||||
'Set automatically the start date' => 'Secara otomatis mengatur tanggal mulai',
|
||||
'Edit Authentication' => 'Modifikasi Otentifikasi',
|
||||
'Google Id' => 'Id Google',
|
||||
'Github Id' => 'Id Github',
|
||||
'Remote user' => 'Pengguna jauh',
|
||||
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Pengguna jauh tidak menyimpan kata sandi mereka dalam basis data Kanboard, contoh: akun LDAP, Google dan Github.',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
'External authentication failed' => 'Autenticazione esterna fallita',
|
||||
'Your external account is linked to your profile successfully.' => 'Il tuo account esterno è stato collegato al tuo profilo con successo.',
|
||||
'Email' => 'E-mail',
|
||||
'Link my Google Account' => 'Collegare il mio Account di Google',
|
||||
'Unlink my Google Account' => 'Scollegare il mio account di Google',
|
||||
'Login with my Google Account' => 'Entra con il mio Account di Google',
|
||||
'Project not found.' => 'progetto non trovato.',
|
||||
'Task removed successfully.' => 'Task cancellato correttamente.',
|
||||
'Unable to remove this task.' => 'Impossibile cancellare questo task.',
|
||||
|
|
@ -352,7 +349,7 @@ return array(
|
|||
'Title:' => 'Titolo',
|
||||
'Status:' => 'Stato',
|
||||
'Assignee:' => 'Assegnatario:',
|
||||
// 'Time tracking:' => 'Gestione del tempo:',
|
||||
// 'Time tracking:' => '',
|
||||
'New sub-task' => 'Nuovo sotto-task',
|
||||
'New attachment added "%s"' => 'Nuovo allegato aggiunto "%s"',
|
||||
'Comment updated' => 'Commento aggiornato',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'Cambia password',
|
||||
'Password modification' => 'Modifica della password',
|
||||
'External authentications' => 'Autenticazione esterna',
|
||||
'Google Account' => 'Account Google',
|
||||
'Github Account' => 'Account Github',
|
||||
'Never connected.' => 'Mai connesso.',
|
||||
'No account linked.' => 'Nessun account collegato.',
|
||||
|
|
@ -568,7 +564,7 @@ return array(
|
|||
'Select the new status of the subtask: "%s"' => 'Seleziona il nuovo status per il sotto-task: "%s"',
|
||||
'Subtask timesheet' => 'Timesheet del sotto-task',
|
||||
'There is nothing to show.' => 'Nulla da mostrare.',
|
||||
// 'Time Tracking' => 'Gestione del tempo',
|
||||
// 'Time Tracking' => '',
|
||||
'You already have one subtask in progress' => 'Hai già un sotto-task in corso',
|
||||
'Which parts of the project do you want to duplicate?' => 'Quali parti del progetto vuoi duplicare?',
|
||||
'Disallow login form' => 'Disabilita il form di login',
|
||||
|
|
@ -686,7 +682,6 @@ return array(
|
|||
'Take a screenshot and press CTRL+V or ⌘+V to paste here.' => 'Cattura una schermata e premi CTRL+V o ⌘+V per incollarla qui.',
|
||||
'Screenshot uploaded successfully.' => 'Schermata caricata correttamente.',
|
||||
'SEK - Swedish Krona' => 'SEK - Corona svedese',
|
||||
'The project identifier is an optional alphanumeric code used to identify your project.' => 'L\'identificatore di progetto è un codice alfanumerico usato per indentificare il tuo progetto. ',
|
||||
'Identifier' => 'Identificatore',
|
||||
'Disable two factor authentication' => 'Disabilita l\'autenticazione "two-factor"',
|
||||
'Do you really want to disable the two factor authentication for this user: "%s"?' => 'Vuoi davvero disabilitare l\'autenticazione "two-factor" per questo utente: "%s"?',
|
||||
|
|
@ -815,7 +810,7 @@ return array(
|
|||
'View advanced search syntax' => 'Visualizza la sintassi di ricerca avanzata',
|
||||
'Overview' => 'Panoramica',
|
||||
// '%b %e %Y' => '',
|
||||
'Board/Calendar/List view' => '',
|
||||
// 'Board/Calendar/List view' => '',
|
||||
'Switch to the board view' => 'Passa alla vista "bacheca"',
|
||||
'Switch to the calendar view' => 'Passa alla vista "calendario"',
|
||||
'Switch to the list view' => 'Passa alla vista "elenco"',
|
||||
|
|
@ -847,8 +842,6 @@ return array(
|
|||
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Questo grafico mostra i tempi medi di consegna (Lead Time) e lavorazione (Cycle Time) per gli ultimi %d task.',
|
||||
'Average time into each column' => 'Tempo medio in ogni colonna',
|
||||
'Lead and cycle time' => 'Tempo di consegna e lavorazione',
|
||||
'Google Authentication' => 'Autenticazione con Google',
|
||||
'Help on Google authentication' => 'Aiuto sull\'autenticazione con Google',
|
||||
'Github Authentication' => 'Autenticazione con Github',
|
||||
'Help on Github authentication' => 'Aiuto sull\'autenticazione con Github',
|
||||
'Lead time: ' => 'Tempo di consegna (Lead Time): ',
|
||||
|
|
@ -859,7 +852,6 @@ return array(
|
|||
'If the task is not closed the current time is used instead of the completion date.' => 'Se il task non è chiuso sarà usata la data attuale invece della data di completamento.',
|
||||
'Set automatically the start date' => 'Imposta automaticamente la data di inzio',
|
||||
'Edit Authentication' => 'Modifica Autenticazione',
|
||||
'Google Id' => 'Id Google',
|
||||
'Github Id' => 'Id Github',
|
||||
'Remote user' => 'Utente remoto',
|
||||
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'La password degli utenti remoti (ad esempio: LDAP, account Google e Github) non è salvata nel database di Kanboard',
|
||||
|
|
@ -994,7 +986,6 @@ return array(
|
|||
'Append/Replace' => 'Aggiungi/Sostituisci',
|
||||
'Append' => 'Aggiungi',
|
||||
'Replace' => 'Sostituisci',
|
||||
'There is no notification method registered.' => 'Nessun metodo di notifica definito.',
|
||||
'Import' => 'Importa',
|
||||
'change sorting' => 'cambia ordinamento',
|
||||
'Tasks Importation' => 'Importazione task',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
// 'External authentication failed' => '',
|
||||
// 'Your external account is linked to your profile successfully.' => '',
|
||||
'Email' => 'Email',
|
||||
'Link my Google Account' => 'Google アカウントをリンクする',
|
||||
'Unlink my Google Account' => 'Google アカウントのリンクを解除する',
|
||||
'Login with my Google Account' => 'Google アカウントでログインする',
|
||||
'Project not found.' => 'プロジェクトが見つかりません。',
|
||||
'Task removed successfully.' => 'タスクを削除しました。',
|
||||
'Unable to remove this task.' => 'タスクの削除に失敗しました。',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'パスワードの変更',
|
||||
'Password modification' => 'パスワードの変更',
|
||||
'External authentications' => '外部認証',
|
||||
'Google Account' => 'Google アカウント',
|
||||
'Github Account' => 'Github アカウント',
|
||||
'Never connected.' => '未接続。',
|
||||
'No account linked.' => 'アカウントがリンクしていません。',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
|
||||
// 'Average time into each column' => '',
|
||||
// 'Lead and cycle time' => '',
|
||||
// 'Google Authentication' => '',
|
||||
// 'Help on Google authentication' => '',
|
||||
// 'Github Authentication' => '',
|
||||
// 'Help on Github authentication' => '',
|
||||
// 'Lead time: ' => '',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
// 'If the task is not closed the current time is used instead of the completion date.' => '',
|
||||
// 'Set automatically the start date' => '',
|
||||
// 'Edit Authentication' => '',
|
||||
// 'Google Id' => '',
|
||||
// 'Github Id' => '',
|
||||
// 'Remote user' => '',
|
||||
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
'External authentication failed' => 'Otentifikasi eksternal gagal',
|
||||
'Your external account is linked to your profile successfully.' => 'Akaun eksternal anda berhasil dihubungkan ke profil anda.',
|
||||
'Email' => 'Email',
|
||||
'Link my Google Account' => 'Hubungkan Akaun Google saya',
|
||||
'Unlink my Google Account' => 'Putuskan Akaun Google saya',
|
||||
'Login with my Google Account' => 'Masuk menggunakan Akaun Google saya',
|
||||
'Project not found.' => 'projek tidak ditemukan.',
|
||||
'Task removed successfully.' => 'Tugas berhasil dihapus.',
|
||||
'Unable to remove this task.' => 'Tidak dapat menghapus tugas ini.',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'Rubah kata sandri',
|
||||
'Password modification' => 'Modifikasi kata laluan',
|
||||
'External authentications' => 'Otentifikasi eksternal',
|
||||
'Google Account' => 'Akaun Google',
|
||||
'Github Account' => 'Akaun Github',
|
||||
'Never connected.' => 'Tidak pernah terhubung.',
|
||||
'No account linked.' => 'Tidak ada Akaun terhubung.',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Grafik ini menunjukkan memimpin rata-rata dan waktu siklus untuk %d tugas terakhir dari waktu ke waktu.',
|
||||
'Average time into each column' => 'Rata-rata waktu ke setiap kolom',
|
||||
'Lead and cycle time' => 'Lead dan siklus waktu',
|
||||
'Google Authentication' => 'Google Otentifikasi',
|
||||
'Help on Google authentication' => 'Bantuan pada otentifikasi Google',
|
||||
'Github Authentication' => 'Otentifikasi Github',
|
||||
'Help on Github authentication' => 'Bantuan pada otentifikasi Github',
|
||||
'Lead time: ' => 'Lead time : ',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
'If the task is not closed the current time is used instead of the completion date.' => 'Jika tugas tidak ditutup waktu saat ini yang digunakan sebagai pengganti tanggal penyelesaian.',
|
||||
'Set automatically the start date' => 'Secara otomatis mengatur tanggal mulai',
|
||||
'Edit Authentication' => 'Modifikasi Otentifikasi',
|
||||
'Google Id' => 'Id Google',
|
||||
'Github Id' => 'Id Github',
|
||||
'Remote user' => 'Pengguna jauh',
|
||||
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Pengguna jauh tidak menyimpan kata laluan mereka dalam basis data Kanboard, contoh: Akaun LDAP, Google dan Github.',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
// 'External authentication failed' => '',
|
||||
// 'Your external account is linked to your profile successfully.' => '',
|
||||
'Email' => 'Epost',
|
||||
'Link my Google Account' => 'Knytt til min Google-konto',
|
||||
'Unlink my Google Account' => 'Fjern knytningen til min Google-konto',
|
||||
'Login with my Google Account' => 'Login med min Google-konto',
|
||||
'Project not found.' => 'Prosjekt ikke funnet.',
|
||||
'Task removed successfully.' => 'Oppgaven er fjernet.',
|
||||
'Unable to remove this task.' => 'Oppgaven kunne ikke fjernes.',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'Endre passord',
|
||||
'Password modification' => 'Passordendring',
|
||||
'External authentications' => 'Ekstern godkjenning',
|
||||
'Google Account' => 'Google-konto',
|
||||
'Github Account' => 'GitHub-konto',
|
||||
'Never connected.' => 'Aldri innlogget.',
|
||||
'No account linked.' => 'Ingen kontoer knyttet.',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
|
||||
// 'Average time into each column' => '',
|
||||
// 'Lead and cycle time' => '',
|
||||
// 'Google Authentication' => '',
|
||||
// 'Help on Google authentication' => '',
|
||||
// 'Github Authentication' => '',
|
||||
// 'Help on Github authentication' => '',
|
||||
// 'Lead time: ' => '',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
// 'If the task is not closed the current time is used instead of the completion date.' => '',
|
||||
// 'Set automatically the start date' => '',
|
||||
// 'Edit Authentication' => '',
|
||||
// 'Google Id' => '',
|
||||
// 'Github Id' => '',
|
||||
// 'Remote user' => '',
|
||||
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
// 'External authentication failed' => '',
|
||||
// 'Your external account is linked to your profile successfully.' => '',
|
||||
'Email' => 'Email',
|
||||
'Link my Google Account' => 'Link mijn Google Account',
|
||||
'Unlink my Google Account' => 'Link met Google Account verwijderen',
|
||||
'Login with my Google Account' => 'Inloggen met mijn Google Account',
|
||||
'Project not found.' => 'Project niet gevonden.',
|
||||
'Task removed successfully.' => 'Taak succesvol verwijderd.',
|
||||
'Unable to remove this task.' => 'Taak verwijderen niet gelukt.',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'Wachtwoord aanpassen',
|
||||
'Password modification' => 'Wachtwoord aanpassen',
|
||||
'External authentications' => 'Externe authenticatie',
|
||||
'Google Account' => 'Google Account',
|
||||
'Github Account' => 'Github Account',
|
||||
'Never connected.' => 'Nooit verbonden.',
|
||||
'No account linked.' => 'Geen account gelinkt.',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
|
||||
// 'Average time into each column' => '',
|
||||
// 'Lead and cycle time' => '',
|
||||
// 'Google Authentication' => '',
|
||||
// 'Help on Google authentication' => '',
|
||||
// 'Github Authentication' => '',
|
||||
// 'Help on Github authentication' => '',
|
||||
// 'Lead time: ' => '',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
// 'If the task is not closed the current time is used instead of the completion date.' => '',
|
||||
// 'Set automatically the start date' => '',
|
||||
// 'Edit Authentication' => '',
|
||||
// 'Google Id' => '',
|
||||
// 'Github Id' => '',
|
||||
// 'Remote user' => '',
|
||||
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
// 'External authentication failed' => '',
|
||||
// 'Your external account is linked to your profile successfully.' => '',
|
||||
'Email' => 'Email',
|
||||
'Link my Google Account' => 'Połącz z kontem Google',
|
||||
'Unlink my Google Account' => 'Rozłącz z kontem Google',
|
||||
'Login with my Google Account' => 'Zaloguj przy pomocy konta Google',
|
||||
'Project not found.' => 'Projek nieznaleziony.',
|
||||
'Task removed successfully.' => 'Zadanie usunięto pomyślnie.',
|
||||
'Unable to remove this task.' => 'Nie można usunąć tego zadania.',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'Zmień hasło',
|
||||
'Password modification' => 'Zmiana hasła',
|
||||
'External authentications' => 'Autentykacja zewnętrzna',
|
||||
'Google Account' => 'Konto Google',
|
||||
'Github Account' => 'Konto Github',
|
||||
'Never connected.' => 'Nigdy nie połączone.',
|
||||
'No account linked.' => 'Brak połączonych kont.',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
|
||||
// 'Average time into each column' => '',
|
||||
// 'Lead and cycle time' => '',
|
||||
// 'Google Authentication' => '',
|
||||
// 'Help on Google authentication' => '',
|
||||
// 'Github Authentication' => '',
|
||||
// 'Help on Github authentication' => '',
|
||||
// 'Lead time: ' => '',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
// 'If the task is not closed the current time is used instead of the completion date.' => '',
|
||||
// 'Set automatically the start date' => '',
|
||||
'Edit Authentication' => 'Edycja autoryzacji',
|
||||
// 'Google Id' => '',
|
||||
// 'Github Id' => '',
|
||||
// 'Remote user' => '',
|
||||
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
'External authentication failed' => 'Autenticação externa falhou',
|
||||
'Your external account is linked to your profile successfully.' => 'Sua conta externa está agora ligada ao seu perfil.',
|
||||
'Email' => 'E-mail',
|
||||
'Link my Google Account' => 'Vincular minha Conta do Google',
|
||||
'Unlink my Google Account' => 'Desvincular minha Conta do Google',
|
||||
'Login with my Google Account' => 'Entrar com minha Conta do Google',
|
||||
'Project not found.' => 'Projeto não encontrado.',
|
||||
'Task removed successfully.' => 'Tarefa removida com sucesso.',
|
||||
'Unable to remove this task.' => 'Não foi possível remover esta tarefa.',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'Alterar senha',
|
||||
'Password modification' => 'Alteração de senha',
|
||||
'External authentications' => 'Autenticação externa',
|
||||
'Google Account' => 'Conta do Google',
|
||||
'Github Account' => 'Conta do Github',
|
||||
'Never connected.' => 'Nunca conectado.',
|
||||
'No account linked.' => 'Nenhuma conta associada.',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Este gráfico mostra o tempo médio do Lead and cycle time das últimas %d tarefas.',
|
||||
'Average time into each column' => 'Tempo médio de cada coluna',
|
||||
'Lead and cycle time' => 'Lead and cycle time',
|
||||
'Google Authentication' => 'Autenticação Google',
|
||||
'Help on Google authentication' => 'Ajuda com a autenticação Google',
|
||||
'Github Authentication' => 'Autenticação Github',
|
||||
'Help on Github authentication' => 'Ajuda com a autenticação Github',
|
||||
'Lead time: ' => 'Lead time: ',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
'If the task is not closed the current time is used instead of the completion date.' => 'Se a tarefa não está fechada, a hora atual é usada no lugar da data de conclusão.',
|
||||
'Set automatically the start date' => 'Definir automaticamente a data de início',
|
||||
'Edit Authentication' => 'Modificar a autenticação',
|
||||
'Google Id' => 'Google ID',
|
||||
'Github Id' => 'Github Id',
|
||||
'Remote user' => 'Usuário remoto',
|
||||
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Os usuários remotos não conservam as suas senhas no banco de dados Kanboard, exemplos: contas LDAP, Github ou Google.',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
'External authentication failed' => 'Autenticação externa falhou',
|
||||
'Your external account is linked to your profile successfully.' => 'A sua conta externa foi vinculada com sucesso ao seu perfil',
|
||||
'Email' => 'E-mail',
|
||||
'Link my Google Account' => 'Vincular a minha Conta do Google',
|
||||
'Unlink my Google Account' => 'Desvincular a minha Conta do Google',
|
||||
'Login with my Google Account' => 'Entrar com a minha Conta do Google',
|
||||
'Project not found.' => 'Projecto não encontrado.',
|
||||
'Task removed successfully.' => 'Tarefa removida com sucesso.',
|
||||
'Unable to remove this task.' => 'Não foi possível remover esta tarefa.',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'Alterar senha',
|
||||
'Password modification' => 'Alteração de senha',
|
||||
'External authentications' => 'Autenticação externa',
|
||||
'Google Account' => 'Conta do Google',
|
||||
'Github Account' => 'Conta do Github',
|
||||
'Never connected.' => 'Nunca conectado.',
|
||||
'No account linked.' => 'Nenhuma conta associada.',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Este gráfico mostra o tempo médio de espera e ciclo para as últimas %d tarefas realizadas.',
|
||||
'Average time into each column' => 'Tempo médio em cada coluna',
|
||||
'Lead and cycle time' => 'Tempo de Espera e Ciclo',
|
||||
'Google Authentication' => 'Autenticação Google',
|
||||
'Help on Google authentication' => 'Ajuda com autenticação Google',
|
||||
'Github Authentication' => 'Autenticação Github',
|
||||
'Help on Github authentication' => 'Ajuda com autenticação Github',
|
||||
'Lead time: ' => 'Tempo de Espera: ',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
'If the task is not closed the current time is used instead of the completion date.' => 'Se a tarefa não estiver fechada o hora actual será usada em vez da hora de conclusão',
|
||||
'Set automatically the start date' => 'Definir data de inicio automáticamente',
|
||||
'Edit Authentication' => 'Editar Autenticação',
|
||||
'Google Id' => 'Id Google',
|
||||
'Github Id' => 'Id Github',
|
||||
'Remote user' => 'Utilizador remoto',
|
||||
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Utilizadores remotos não guardam a password na base de dados do Kanboard, por exemplo: LDAP, contas do Google e Github.',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
'External authentication failed' => 'Внешняя авторизация не удалась',
|
||||
'Your external account is linked to your profile successfully.' => 'Ваш внешний аккаунт успешно подключен к профилю.',
|
||||
'Email' => 'E-mail',
|
||||
'Link my Google Account' => 'Привязать мой профиль к Google',
|
||||
'Unlink my Google Account' => 'Отвязать мой профиль от Google',
|
||||
'Login with my Google Account' => 'Аутентификация через Google',
|
||||
'Project not found.' => 'Проект не найден.',
|
||||
'Task removed successfully.' => 'Задача удалена.',
|
||||
'Unable to remove this task.' => 'Не удалось удалить эту задачу.',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'Сменить пароль',
|
||||
'Password modification' => 'Изменение пароля',
|
||||
'External authentications' => 'Внешняя аутентификация',
|
||||
'Google Account' => 'Профиль Google',
|
||||
'Github Account' => 'Профиль Github',
|
||||
'Never connected.' => 'Ранее не соединялось.',
|
||||
'No account linked.' => 'Нет связанных профилей.',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Эта диаграма показывает среднее время выполнения и цикла задачь в последние %d.',
|
||||
'Average time into each column' => 'Среднее время в каждом столбце',
|
||||
'Lead and cycle time' => 'Время выполнения и цикла',
|
||||
'Google Authentication' => 'Авторизация Google',
|
||||
'Help on Google authentication' => 'Помощь в авторизации Google',
|
||||
'Github Authentication' => 'Авторизация Github',
|
||||
'Help on Github authentication' => 'Помощь в авторизации Github',
|
||||
'Lead time: ' => 'Время выполнения:',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
'If the task is not closed the current time is used instead of the completion date.' => 'Если задача не закрыта, то текущая дата будет указана в дате завершения задачи.',
|
||||
'Set automatically the start date' => 'Установить автоматическую дату начала',
|
||||
'Edit Authentication' => 'Редактировать авторизацию',
|
||||
'Google Id' => 'Google Id',
|
||||
'Github Id' => 'Github Id',
|
||||
'Remote user' => 'Удаленный пользователь',
|
||||
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Учетные данные для входа через LDAP, Google и Github не будут сохранены в Kanboard.',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
// 'External authentication failed' => '',
|
||||
// 'Your external account is linked to your profile successfully.' => '',
|
||||
'Email' => 'E-mail',
|
||||
'Link my Google Account' => 'Poveži sa Google nalogom',
|
||||
'Unlink my Google Account' => 'Ukini vezu sa Google nalogom',
|
||||
'Login with my Google Account' => 'Prijavi se preko Google naloga',
|
||||
'Project not found.' => 'Projekat nije pronađen.',
|
||||
'Task removed successfully.' => 'Zadatak uspešno uklonjen.',
|
||||
'Unable to remove this task.' => 'Nemoguće uklanjanje zadatka.',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'Izmeni lozinku',
|
||||
'Password modification' => 'Izmena lozinke',
|
||||
'External authentications' => 'Spoljne akcije',
|
||||
'Google Account' => 'Google nalog',
|
||||
'Github Account' => 'Github nalog',
|
||||
'Never connected.' => 'Bez konekcija.',
|
||||
'No account linked.' => 'Bez povezanih naloga.',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
|
||||
// 'Average time into each column' => '',
|
||||
// 'Lead and cycle time' => '',
|
||||
// 'Google Authentication' => '',
|
||||
// 'Help on Google authentication' => '',
|
||||
// 'Github Authentication' => '',
|
||||
// 'Help on Github authentication' => '',
|
||||
// 'Lead time: ' => '',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
// 'If the task is not closed the current time is used instead of the completion date.' => '',
|
||||
// 'Set automatically the start date' => '',
|
||||
// 'Edit Authentication' => '',
|
||||
// 'Google Id' => '',
|
||||
// 'Github Id' => '',
|
||||
// 'Remote user' => '',
|
||||
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
'External authentication failed' => 'Extern autentisering misslyckades',
|
||||
'Your external account is linked to your profile successfully.' => 'Ditt externa konto länkades till din profil.',
|
||||
'Email' => 'Epost',
|
||||
'Link my Google Account' => 'Länka till mitt Google-konto',
|
||||
'Unlink my Google Account' => 'Ta bort länken till mitt Google-konto',
|
||||
'Login with my Google Account' => 'Logga in med mitt Google-konto',
|
||||
'Project not found.' => 'Projektet kunde inte hittas',
|
||||
'Task removed successfully.' => 'Uppgiften har tagits bort',
|
||||
'Unable to remove this task.' => 'Kunde inte ta bort denna uppgift',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'Byt lösenord',
|
||||
'Password modification' => 'Ändra lösenord',
|
||||
'External authentications' => 'Extern autentisering',
|
||||
'Google Account' => 'Googlekonto',
|
||||
'Github Account' => 'Githubkonto',
|
||||
'Never connected.' => 'Inte ansluten.',
|
||||
'No account linked.' => 'Inget konto länkat.',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Diagramet visar medel av led och cykeltid för de senaste %d uppgifterna över tiden.',
|
||||
'Average time into each column' => 'Medeltidsåtgång i varje kolumn',
|
||||
'Lead and cycle time' => 'Led och cykeltid',
|
||||
'Google Authentication' => 'Google autentisering',
|
||||
'Help on Google authentication' => 'Hjälp för Google autentisering',
|
||||
'Github Authentication' => 'Github autentisering',
|
||||
'Help on Github authentication' => 'Hjälp för Github autentisering',
|
||||
'Lead time: ' => 'Ledtid',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
'If the task is not closed the current time is used instead of the completion date.' => 'Om uppgiften inte är stängd används nuvarande tid istället för slutförandedatum.',
|
||||
'Set automatically the start date' => 'Sätt startdatum automatiskt',
|
||||
'Edit Authentication' => 'Ändra autentisering',
|
||||
'Google Id' => 'Google Id',
|
||||
'Github Id' => 'Github Id',
|
||||
'Remote user' => 'Extern användare',
|
||||
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Externa användares lösenord lagras inte i Kanboard-databasen, exempel: LDAP, Google och Github-konton.',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
// 'External authentication failed' => '',
|
||||
// 'Your external account is linked to your profile successfully.' => '',
|
||||
'Email' => 'อีเมล',
|
||||
'Link my Google Account' => 'เชื่อมต่อกับกูเกิลแอคเคาท์',
|
||||
'Unlink my Google Account' => 'ไม่เชื่อมต่อกับกูเกิลแอคเคาท์',
|
||||
'Login with my Google Account' => 'เข้าใช้ด้วยกูเกิลแอคเคาท์',
|
||||
'Project not found.' => 'หาโปรเจคไม่พบ',
|
||||
'Task removed successfully.' => 'ลบงานเรียบร้อยแล้ว',
|
||||
'Unable to remove this task.' => 'ไม่สามารถลบงานนี้',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'เปลี่ยนรหัสผ่าน',
|
||||
'Password modification' => 'แก้ไขรหัสผ่าน',
|
||||
'External authentications' => 'การยืนยันภายนอก',
|
||||
'Google Account' => 'กูเกิลแอคเคาท์',
|
||||
'Github Account' => 'กิทฮับแอคเคาท์',
|
||||
'Never connected.' => 'ไม่เชื่อมต่อ',
|
||||
'No account linked.' => 'แอคเคาท์ไม่มีการเชื่อม',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
|
||||
// 'Average time into each column' => '',
|
||||
// 'Lead and cycle time' => '',
|
||||
// 'Google Authentication' => '',
|
||||
// 'Help on Google authentication' => '',
|
||||
// 'Github Authentication' => '',
|
||||
// 'Help on Github authentication' => '',
|
||||
// 'Lead time: ' => '',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
// 'If the task is not closed the current time is used instead of the completion date.' => '',
|
||||
// 'Set automatically the start date' => '',
|
||||
// 'Edit Authentication' => '',
|
||||
// 'Google Id' => '',
|
||||
// 'Github Id' => '',
|
||||
// 'Remote user' => '',
|
||||
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
'External authentication failed' => 'Harici hesap doğrulaması başarısız',
|
||||
'Your external account is linked to your profile successfully.' => 'Harici hesabınız profilinizle başarıyla bağlandı.',
|
||||
'Email' => 'E-posta',
|
||||
'Link my Google Account' => 'Google hesabımla bağ oluştur',
|
||||
'Unlink my Google Account' => 'Google hesabımla bağı kaldır',
|
||||
'Login with my Google Account' => 'Google hesabımla giriş yap',
|
||||
'Project not found.' => 'Proje bulunamadı',
|
||||
'Task removed successfully.' => 'Görev başarıyla silindi.',
|
||||
'Unable to remove this task.' => 'Görev silinemiyor.',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => 'Şifre değiştir',
|
||||
'Password modification' => 'Şifre değişimi',
|
||||
'External authentications' => 'Dış kimlik doğrulamaları',
|
||||
'Google Account' => 'Google hesabı',
|
||||
'Github Account' => 'Github hesabı',
|
||||
'Never connected.' => 'Hiç bağlanmamış.',
|
||||
'No account linked.' => 'Bağlanmış hesap yok.',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Bu grafik son %d görev için zaman içinde gerçekleşen ortalama teslim ve çevrim sürelerini gösterir.',
|
||||
'Average time into each column' => 'Her bir sütunda ortalama zaman',
|
||||
'Lead and cycle time' => 'Teslim ve çevrim süresi',
|
||||
'Google Authentication' => 'Google doğrulaması',
|
||||
'Help on Google authentication' => 'Google doğrulaması hakkında yardım',
|
||||
'Github Authentication' => 'Github doğrulaması',
|
||||
'Help on Github authentication' => 'Github doğrulaması hakkında yardım',
|
||||
'Lead time: ' => 'Teslim süresi: ',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
'If the task is not closed the current time is used instead of the completion date.' => 'Eğer görev henüz kapatılmamışsa, tamamlanma tarihi yerine şu anki tarih kullanılır.',
|
||||
'Set automatically the start date' => 'Başlangıç tarihini otomatik olarak belirle',
|
||||
'Edit Authentication' => 'Doğrulamayı düzenle',
|
||||
'Google Id' => 'Google kimliği',
|
||||
'Github Id' => 'Github Kimliği',
|
||||
'Remote user' => 'Uzak kullanıcı',
|
||||
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Uzak kullanıcıların şifreleri Kanboard veritabanında saklanmaz, örnek: LDAP, Google ve Github hesapları',
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@ return array(
|
|||
// 'External authentication failed' => '',
|
||||
// 'Your external account is linked to your profile successfully.' => '',
|
||||
'Email' => '电子邮件',
|
||||
'Link my Google Account' => '关联我的google帐号',
|
||||
'Unlink my Google Account' => '去除我的google帐号关联',
|
||||
'Login with my Google Account' => '用我的google帐号登录',
|
||||
'Project not found.' => '未发现项目',
|
||||
'Task removed successfully.' => '任务成功去除',
|
||||
'Unable to remove this task.' => '无法移除该任务。',
|
||||
|
|
@ -395,7 +392,6 @@ return array(
|
|||
'Change password' => '修改密码',
|
||||
'Password modification' => '修改密码',
|
||||
'External authentications' => '外部认证',
|
||||
'Google Account' => '谷歌账号',
|
||||
'Github Account' => 'Github 账号',
|
||||
'Never connected.' => '从未连接。',
|
||||
'No account linked.' => '未链接账号。',
|
||||
|
|
@ -846,8 +842,6 @@ return array(
|
|||
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
|
||||
// 'Average time into each column' => '',
|
||||
// 'Lead and cycle time' => '',
|
||||
// 'Google Authentication' => '',
|
||||
// 'Help on Google authentication' => '',
|
||||
// 'Github Authentication' => '',
|
||||
// 'Help on Github authentication' => '',
|
||||
// 'Lead time: ' => '',
|
||||
|
|
@ -858,7 +852,6 @@ return array(
|
|||
// 'If the task is not closed the current time is used instead of the completion date.' => '',
|
||||
// 'Set automatically the start date' => '',
|
||||
// 'Edit Authentication' => '',
|
||||
// 'Google Id' => '',
|
||||
// 'Github Id' => '',
|
||||
// 'Remote user' => '',
|
||||
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',
|
||||
|
|
|
|||
|
|
@ -48,20 +48,7 @@ class User extends Base
|
|||
*/
|
||||
public function getQuery()
|
||||
{
|
||||
return $this->db
|
||||
->table(self::TABLE)
|
||||
->columns(
|
||||
'id',
|
||||
'username',
|
||||
'name',
|
||||
'email',
|
||||
'role',
|
||||
'is_ldap_user',
|
||||
'notifications_enabled',
|
||||
'google_id',
|
||||
'github_id',
|
||||
'twofactor_activated'
|
||||
);
|
||||
return $this->db->table(self::TABLE);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ use Kanboard\Auth\DatabaseAuth;
|
|||
use Kanboard\Auth\LdapAuth;
|
||||
use Kanboard\Auth\GitlabAuth;
|
||||
use Kanboard\Auth\GithubAuth;
|
||||
use Kanboard\Auth\GoogleAuth;
|
||||
use Kanboard\Auth\TotpAuth;
|
||||
use Kanboard\Auth\ReverseProxyAuth;
|
||||
|
||||
|
|
@ -55,10 +54,6 @@ class AuthenticationProvider implements ServiceProviderInterface
|
|||
$container['authenticationManager']->register(new GithubAuth($container));
|
||||
}
|
||||
|
||||
if (GOOGLE_AUTH) {
|
||||
$container['authenticationManager']->register(new GoogleAuth($container));
|
||||
}
|
||||
|
||||
$container['projectAccessMap'] = $this->getProjectAccessMap();
|
||||
$container['applicationAccessMap'] = $this->getApplicationAccessMap();
|
||||
|
||||
|
|
@ -126,7 +121,7 @@ class AuthenticationProvider implements ServiceProviderInterface
|
|||
$acl->setRoleHierarchy(Role::APP_MANAGER, array(Role::APP_USER, Role::APP_PUBLIC));
|
||||
$acl->setRoleHierarchy(Role::APP_USER, array(Role::APP_PUBLIC));
|
||||
|
||||
$acl->add('Oauth', array('google', 'github', 'gitlab'), Role::APP_PUBLIC);
|
||||
$acl->add('Oauth', array('github', 'gitlab'), Role::APP_PUBLIC);
|
||||
$acl->add('Auth', array('login', 'check'), Role::APP_PUBLIC);
|
||||
$acl->add('Captcha', '*', Role::APP_PUBLIC);
|
||||
$acl->add('PasswordReset', '*', Role::APP_PUBLIC);
|
||||
|
|
|
|||
|
|
@ -205,7 +205,6 @@ class RouteProvider implements ServiceProviderInterface
|
|||
$container['route']->addRoute('documentation', 'doc', 'show');
|
||||
|
||||
// Auth routes
|
||||
$container['route']->addRoute('oauth/google', 'oauth', 'google');
|
||||
$container['route']->addRoute('oauth/github', 'oauth', 'github');
|
||||
$container['route']->addRoute('oauth/gitlab', 'oauth', 'gitlab');
|
||||
$container['route']->addRoute('login', 'auth', 'login');
|
||||
|
|
|
|||
|
|
@ -40,12 +40,8 @@
|
|||
|
||||
<?= $this->hook->render('template:auth:login-form:after') ?>
|
||||
|
||||
<?php if (GOOGLE_AUTH || GITHUB_AUTH || GITLAB_AUTH): ?>
|
||||
<?php if (GITHUB_AUTH || GITLAB_AUTH): ?>
|
||||
<ul class="no-bullet">
|
||||
<?php if (GOOGLE_AUTH): ?>
|
||||
<li><?= $this->url->link(t('Login with my Google Account'), 'oauth', 'google') ?></li>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if (GITHUB_AUTH): ?>
|
||||
<li><?= $this->url->link(t('Login with my Github Account'), 'oauth', 'github') ?></li>
|
||||
<?php endif ?>
|
||||
|
|
|
|||
|
|
@ -3,17 +3,9 @@
|
|||
</div>
|
||||
|
||||
<form method="post" action="<?= $this->url->href('config', 'integrations') ?>" autocomplete="off">
|
||||
|
||||
<?= $this->form->csrf() ?>
|
||||
|
||||
<?= $this->hook->render('template:config:integrations', array('values' => $values)) ?>
|
||||
|
||||
<h3><i class="fa fa-google"></i> <?= t('Google Authentication') ?></h3>
|
||||
<div class="listing">
|
||||
<input type="text" class="auto-select" readonly="readonly" value="<?= $this->url->href('oauth', 'google', array(), false, '', true) ?>"/><br/>
|
||||
<p class="form-help"><?= $this->url->doc(t('Help on Google authentication'), 'google-authentication') ?></p>
|
||||
</div>
|
||||
|
||||
<h3><i class="fa fa-github"></i> <?= t('Github Authentication') ?></h3>
|
||||
<div class="listing">
|
||||
<input type="text" class="auto-select" readonly="readonly" value="<?= $this->url->href('oauth', 'github', array(), false, '', true) ?>"/><br/>
|
||||
|
|
|
|||
|
|
@ -8,8 +8,7 @@
|
|||
<?= $this->form->hidden('id', $values) ?>
|
||||
<?= $this->form->hidden('username', $values) ?>
|
||||
|
||||
<?= $this->form->label(t('Google Id'), 'google_id') ?>
|
||||
<?= $this->form->text('google_id', $values, $errors) ?>
|
||||
<?= $this->hook->render('template:user:authentication:form', array('values' => $values, 'errors' => $errors, 'user' => $user)) ?>
|
||||
|
||||
<?= $this->form->label(t('Github Id'), 'github_id') ?>
|
||||
<?= $this->form->text('github_id', $values, $errors) ?>
|
||||
|
|
|
|||
|
|
@ -2,21 +2,7 @@
|
|||
<h2><?= t('External authentications') ?></h2>
|
||||
</div>
|
||||
|
||||
<?php if (GOOGLE_AUTH): ?>
|
||||
<h3><i class="fa fa-google"></i> <?= t('Google Account') ?></h3>
|
||||
|
||||
<p class="listing">
|
||||
<?php if ($this->user->isCurrentUser($user['id'])): ?>
|
||||
<?php if (empty($user['google_id'])): ?>
|
||||
<?= $this->url->link(t('Link my Google Account'), 'oauth', 'google', array(), true) ?>
|
||||
<?php else: ?>
|
||||
<?= $this->url->link(t('Unlink my Google Account'), 'oauth', 'unlink', array('backend' => 'Google'), true) ?>
|
||||
<?php endif ?>
|
||||
<?php else: ?>
|
||||
<?= empty($user['google_id']) ? t('No account linked.') : t('Account linked.') ?>
|
||||
<?php endif ?>
|
||||
</p>
|
||||
<?php endif ?>
|
||||
<?php $html = $this->hook->render('template:user:external', array('user' => $user)) ?>
|
||||
|
||||
<?php if (GITHUB_AUTH): ?>
|
||||
<h3><i class="fa fa-github"></i> <?= t('Github Account') ?></h3>
|
||||
|
|
@ -50,6 +36,8 @@
|
|||
</p>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if (! GOOGLE_AUTH && ! GITHUB_AUTH && ! GITLAB_AUTH): ?>
|
||||
<?php if (empty($html) && ! GITHUB_AUTH && ! GITLAB_AUTH): ?>
|
||||
<p class="alert"><?= t('No external authentication enabled.') ?></p>
|
||||
<?php else: ?>
|
||||
<?= $html ?>
|
||||
<?php endif ?>
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Kanboard\User;
|
||||
|
||||
/**
|
||||
* Google OAuth User Provider
|
||||
*
|
||||
* @package user
|
||||
* @author Frederic Guillot
|
||||
*/
|
||||
class GoogleUserProvider extends OAuthUserProvider
|
||||
{
|
||||
/**
|
||||
* Get external id column name
|
||||
*
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public function getExternalIdColumn()
|
||||
{
|
||||
return 'google_id';
|
||||
}
|
||||
}
|
||||
|
|
@ -51,11 +51,6 @@ defined('LDAP_GROUP_BASE_DN') or define('LDAP_GROUP_BASE_DN', '');
|
|||
defined('LDAP_GROUP_FILTER') or define('LDAP_GROUP_FILTER', '');
|
||||
defined('LDAP_GROUP_ATTRIBUTE_NAME') or define('LDAP_GROUP_ATTRIBUTE_NAME', 'cn');
|
||||
|
||||
// Google authentication
|
||||
defined('GOOGLE_AUTH') or define('GOOGLE_AUTH', false);
|
||||
defined('GOOGLE_CLIENT_ID') or define('GOOGLE_CLIENT_ID', '');
|
||||
defined('GOOGLE_CLIENT_SECRET') or define('GOOGLE_CLIENT_SECRET', '');
|
||||
|
||||
// Github authentication
|
||||
defined('GITHUB_AUTH') or define('GITHUB_AUTH', false);
|
||||
defined('GITHUB_CLIENT_ID') or define('GITHUB_CLIENT_ID', '');
|
||||
|
|
|
|||
|
|
@ -1,64 +0,0 @@
|
|||
Google Authentication
|
||||
=====================
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
OAuth Google API credentials (available in the Google Developer Console)
|
||||
|
||||
How does this work?
|
||||
-------------------
|
||||
|
||||
- The Google authentication in Kanboard use the OAuth 2.0 protocol
|
||||
- Any user account in Kanboard can be linked to a Google Account
|
||||
- When a Kanboard user account is linked to Google, you can login with one click
|
||||
|
||||
Procedure to link a Google Account
|
||||
----------------------------------
|
||||
|
||||
1. Go to your user profile
|
||||
2. Click on **External accounts**
|
||||
3. Click on the link **Link my Google Account**
|
||||
4. You are redirected to the **Google Consent screen**
|
||||
5. Authorize Kanboard by clicking on the button **Accept**
|
||||
6. Your account is now linked
|
||||
|
||||
Now, on the login page you can be authenticated in one click with the link **Login with my Google Account**.
|
||||
|
||||
Your name and email are automatically updated from your Google Account.
|
||||
|
||||
Installation instructions
|
||||
-------------------------
|
||||
|
||||
### Setting up OAuth 2.0 in Google Developer Console
|
||||
|
||||
- Follow the [official Google documentation](https://developers.google.com/accounts/docs/OAuth2Login#appsetup) to create a new application
|
||||
- In Kanboard, you can get the **redirect url** in **Settings > Integrations > Google Authentication**
|
||||
|
||||
### Setting up Kanboad
|
||||
|
||||
Create a custom `config.php` file or copy the `config.default.php` file:
|
||||
|
||||
```php
|
||||
<?php
|
||||
|
||||
// Enable/disable Google authentication
|
||||
define('GOOGLE_AUTH', true); // Set this value to true
|
||||
|
||||
// Google client id (Get this value from the Google developer console)
|
||||
define('GOOGLE_CLIENT_ID', 'YOUR_CLIENT_ID');
|
||||
|
||||
// Google client secret key (Get this value from the Google developer console)
|
||||
define('GOOGLE_CLIENT_SECRET', 'YOUR_CLIENT_SECRET');
|
||||
```
|
||||
|
||||
Notes
|
||||
-----
|
||||
|
||||
Kanboard use these information from your Google profile:
|
||||
|
||||
- Full name
|
||||
- Email address
|
||||
- Google unique id
|
||||
|
||||
The Google unique id is used to link together the local user account and the Google account.
|
||||
|
|
@ -118,7 +118,6 @@ Technical details
|
|||
- [LDAP authentication](ldap-authentication.markdown)
|
||||
- [LDAP group synchronization](ldap-group-sync.markdown)
|
||||
- [LDAP parameters](ldap-parameters.markdown)
|
||||
- [Google authentication](google-authentication.markdown)
|
||||
- [Github authentication](github-authentication.markdown)
|
||||
- [Gitlab authentication](gitlab-authentication.markdown)
|
||||
- [Reverse proxy authentication](reverse-proxy-authentication.markdown)
|
||||
|
|
|
|||
|
|
@ -1,89 +0,0 @@
|
|||
<?php
|
||||
|
||||
require_once __DIR__.'/../Base.php';
|
||||
|
||||
use Kanboard\Auth\GoogleAuth;
|
||||
use Kanboard\Model\User;
|
||||
|
||||
class GoogleAuthTest extends Base
|
||||
{
|
||||
public function testGetName()
|
||||
{
|
||||
$provider = new GoogleAuth($this->container);
|
||||
$this->assertEquals('Google', $provider->getName());
|
||||
}
|
||||
|
||||
public function testAuthenticationSuccessful()
|
||||
{
|
||||
$profile = array(
|
||||
'id' => 1234,
|
||||
'email' => 'test@localhost',
|
||||
'name' => 'Test',
|
||||
);
|
||||
|
||||
$provider = $this
|
||||
->getMockBuilder('\Kanboard\Auth\GoogleAuth')
|
||||
->setConstructorArgs(array($this->container))
|
||||
->setMethods(array(
|
||||
'getProfile',
|
||||
))
|
||||
->getMock();
|
||||
|
||||
$provider->expects($this->once())
|
||||
->method('getProfile')
|
||||
->will($this->returnValue($profile));
|
||||
|
||||
$this->assertInstanceOf('Kanboard\Auth\GoogleAuth', $provider->setCode('1234'));
|
||||
|
||||
$this->assertTrue($provider->authenticate());
|
||||
|
||||
$user = $provider->getUser();
|
||||
$this->assertInstanceOf('Kanboard\User\GoogleUserProvider', $user);
|
||||
$this->assertEquals('Test', $user->getName());
|
||||
$this->assertEquals('', $user->getInternalId());
|
||||
$this->assertEquals(1234, $user->getExternalId());
|
||||
$this->assertEquals('', $user->getRole());
|
||||
$this->assertEquals('', $user->getUsername());
|
||||
$this->assertEquals('test@localhost', $user->getEmail());
|
||||
$this->assertEquals('google_id', $user->getExternalIdColumn());
|
||||
$this->assertEquals(array(), $user->getExternalGroupIds());
|
||||
$this->assertEquals(array(), $user->getExtraAttributes());
|
||||
$this->assertFalse($user->isUserCreationAllowed());
|
||||
}
|
||||
|
||||
public function testAuthenticationFailed()
|
||||
{
|
||||
$provider = $this
|
||||
->getMockBuilder('\Kanboard\Auth\GoogleAuth')
|
||||
->setConstructorArgs(array($this->container))
|
||||
->setMethods(array(
|
||||
'getProfile',
|
||||
))
|
||||
->getMock();
|
||||
|
||||
$provider->expects($this->once())
|
||||
->method('getProfile')
|
||||
->will($this->returnValue(array()));
|
||||
|
||||
$this->assertFalse($provider->authenticate());
|
||||
$this->assertEquals(null, $provider->getUser());
|
||||
}
|
||||
|
||||
public function testGetService()
|
||||
{
|
||||
$provider = new GoogleAuth($this->container);
|
||||
$this->assertInstanceOf('Kanboard\Core\Http\OAuth2', $provider->getService());
|
||||
}
|
||||
|
||||
public function testUnlink()
|
||||
{
|
||||
$userModel = new User($this->container);
|
||||
$provider = new GoogleAuth($this->container);
|
||||
|
||||
$this->assertEquals(2, $userModel->create(array('username' => 'test', 'google_id' => '1234')));
|
||||
$this->assertNotEmpty($userModel->getByExternalId('google_id', 1234));
|
||||
|
||||
$this->assertTrue($provider->unlink(2));
|
||||
$this->assertEmpty($userModel->getByExternalId('google_id', 1234));
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue