LautaroCesso 6d476d5d5d
Ticket filters (#795)
* Delete one line break in table.js

* Add status icon in ticket title

* Compare new filters with previous filters

* Add ticket query filters

* Add departments and priority filters.

* Minor style changes in TagSelector and Tag

* Add content on selected items Autocomplete component

* Delete id prop from autocomplete component

* Add DateSelector and DateRange component.

* Delete compare function and add arrow orderby icon.

* Add dateRange and orderBy filters.

* Add minors changes of tabulations

* Minors changes of funtion name and constant name

* Minors changes of funtion name and constant name part 2.

* Transform SearchBox in a controlled component.

* Add Autocomplete and DateRange component int FormField.

* Add preventDefault event in DropDown.

* Create some customs list.

* Add TagSelector in FormField.

* Add private icon in autocomplete departments filters and correct some errors.

* Delete consoleLogs.

* Add ANY and TAGS (i18n).

* Add search-filters reducer.

* Add CLEAR (i18n).

* Add clear form button in ticket search.

* Correrct titel error in ticket search.

* Correrct style submit button in ticket search.

* Submit form not change orderBy.

* Replace AdminPanelAllTicekts to AdminPanelSearchTicket.

* Correct error when query is empty string.

* Change form style.

* Add show filters button.

* Add minors style changes.

* Add autors filters first part.

* Add autors filters second part.

* Apply filters when enter is pressed in searchbox.

* Change prop name to node proptype in tag component.

* Change search filter actions name.

* Change name of render arrow icon in ticketList Component.

* Fix an error with Autocomplete component.

* Restore demo page and system.

* Update ticket list test.

* Fix an error with timeout in autocomplete test.

* Delete custom ticket list in index.html.

* rder the functions in search-filters-reducer.

* Fix store undefine in session-action-test.

* fix import store in session action test.

* Delete unlock icon in ticket list.

* Change style in autocomplete component.

* Change size of lock icon in ticket list.

* Fix error with blacklist in authors autocomplete.

* Comment session action test.

* Fix test in get-authors.rb and searchTest.php

* Add onChange in tag-selector

* Fix some bugs and autocomplete authors.

* Wip

* wip

* wip

* wip

* Fix authors bugs in orderBy filter.

* Delete some consoleLogs in autocomplete component.

* Fix bug with authors filters when clicked custom list menu.

* Fix highlight menu item bug.

* Fix error when custom tickets list is undefined.

* change double quote to single quote in search filters reducer

* Fix error with get authors path in admin panel ticket search

* Add page in ticket search filters

* Join componentDidMount from Ticket QueryFilter and TicketQuery List in AdminPanelSearchTicket and add retrieveSearchTickets action in seartch ticket reducer.

* rename search tickets api to search tickets utils

* correct import of searchFiltersActions

* move some functions to search tickets utils and date transformer

* Fix bug with component did mount when custom tickets list menu option was clicked

* Fix bug with component did mount and closed filters in url

* Fix bug with authors filters in url when did mount search tickets page

* Fix bug with closed urlFilters in search tickets did mount

* Fix bug when change authors in urlFilters

* Fix bug with authors filters in retrieveSearchTickets action

* Delete changeCustomListFilters action

* Fix error with dateRange filters in retrieveSearchTickets action

* Add page in url

* Rename filtesForAPI to filtersForAPI in search filters reducer.

* Update Autocomplete test

* Fix error with get-authors-test

* fix bug with double request when search ticket page was mounted with item selected menu and delete custom param in url when custom ticket list form was edited

* Add separator line between form filters and tickets table and delete console log

* doubles the animation speed of show filters

* Show form filters in search tickets

* delete console log in session action

* wip

* Fix error with ticket list when custom list change.

* Fix bug with hover of date range component.

* Fix Autocomplete test.

* Fix error with autocomplete owners in ticket query filters component.

Co-authored-by: Ivan Diaz <ivan@opensupports.com>
2020-06-24 16:45:55 -03:00

79 lines
2.4 KiB
PHP
Executable File

<?php
use RedBeanPHP\Facade as RedBean;
/**
* @api {OBJECT} User User
* @apiVersion 4.7.0
* @apiGroup Data Structures
* @apiParam {String} email The email of the user.
* @apiParam {Number} id The id of the user.
* @apiParam {String} name The name of the user.
* @apiParam {Boolean} verified Indicates if the user has verified the email.
* @apiParam {Boolean} notRegistered Indicates if the user had logged at least one time.
* @apiParam {[CustomField](#api-Data_Structures-ObjectCustomfield)[]} customfields Indicates the values for custom fields.
*/
class User extends DataStore {
const TABLE = 'user';
public $ticketNumber = null;
public static function authenticate($userEmail, $userPassword) {
$user = User::getUser($userEmail, 'email');
return ($user && Hashing::verifyPassword($userPassword, $user->password) && !$user->notRegistered) ? $user : new NullDataStore();
}
public static function getProps() {
return [
'email',
'password',
'name',
'signupDate',
'tickets',
'sharedTicketList',
'verificationToken',
'disabled',
'xownCustomfieldvalueList',
'notRegistered'
];
}
public function getDefaultProps() {
return [];
}
public static function getUser($value, $property = 'id') {
return parent::getDataStore($value, $property);
}
public function canManageTicket(Ticket $ticket){
$ticketNumberInstanceValidation = true;
if($this->ticketNumber) {
$ticketNumberInstanceValidation = $this->ticketNumber == $ticket->ticketNumber;
}
return ($ticket->isAuthor($this) && $ticketNumberInstanceValidation);
}
public function toArray($minimal = false) {
if($minimal) {
return [
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
'isStaff' => 0
];
}
return [
'email' => $this->email,
'id' => $this->id,
'name' => $this->name,
'verified' => !$this->verificationToken,
'disabled' => $this->disabled,
'customfields' => $this->xownCustomfieldvalueList->toArray(),
'notRegistered' => $this->notRegistered
];
}
}