mirror of
				https://github.com/ElvishArtisan/rivendell.git
				synced 2025-11-04 16:14:03 +01:00 
			
		
		
		
	* Added a 'USERS.WEBGET_LOGIN_PRIV' field to the database. * Incremented the database version to 277. * Added 'RDUser::webgetLogin()' and 'RDUser::setWebgetLogin()' methods. * Added a 'Allow WebGet Login' control in the 'Production Rights' section of the 'User' dialog in rdadmin(1).
		
			
				
	
	
		
			123 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// rduser.h
 | 
						|
//
 | 
						|
// Abstract a Rivendell User
 | 
						|
//
 | 
						|
//   (C) Copyright 2002-2004,2016 Fred Gleason <fredg@paravelsystems.com>
 | 
						|
//
 | 
						|
//   This program is free software; you can redistribute it and/or modify
 | 
						|
//   it under the terms of the GNU General Public License version 2 as
 | 
						|
//   published by the Free Software Foundation.
 | 
						|
//
 | 
						|
//   This program is distributed in the hope that it will be useful,
 | 
						|
//   but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
//   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
//   GNU General Public License for more details.
 | 
						|
//
 | 
						|
//   You should have received a copy of the GNU General Public
 | 
						|
//   License along with this program; if not, write to the Free Software
 | 
						|
//   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
						|
//
 | 
						|
 | 
						|
#include <qsqldatabase.h>
 | 
						|
 | 
						|
#ifndef RDUSER_H
 | 
						|
#define RDUSER_H
 | 
						|
 | 
						|
class RDUser
 | 
						|
{
 | 
						|
 public:
 | 
						|
  RDUser(const QString &name);
 | 
						|
  RDUser();
 | 
						|
  QString name() const;
 | 
						|
  void setName(const QString &name);
 | 
						|
  bool exists() const;
 | 
						|
  bool authenticated(bool webuser) const;
 | 
						|
  bool checkPassword(const QString &password,bool webuser);
 | 
						|
  QString password() const;
 | 
						|
  void setPassword(const QString &password);
 | 
						|
  bool enableWeb() const;
 | 
						|
  void setEnableWeb(bool state) const;
 | 
						|
  bool localAuthentication() const;
 | 
						|
  void setLocalAuthentication(bool state) const;
 | 
						|
  QString pamService() const;
 | 
						|
  void setPamService(const QString &str) const;
 | 
						|
  QString fullName() const;
 | 
						|
  void setFullName(const QString &name) const;
 | 
						|
  QString description() const;
 | 
						|
  void setDescription(const QString &desc) const;
 | 
						|
  QString phone() const;
 | 
						|
  void setPhone(const QString &phone) const;
 | 
						|
  int webapiAuthTimeout() const;
 | 
						|
  void setWebapiAuthTimeout(int sec) const;
 | 
						|
  bool adminConfig() const;
 | 
						|
  void setAdminConfig(bool priv) const;
 | 
						|
  bool createCarts() const;
 | 
						|
  void setCreateCarts(bool priv) const;
 | 
						|
  bool deleteCarts() const;
 | 
						|
  void setDeleteCarts(bool priv) const;
 | 
						|
  bool modifyCarts() const;
 | 
						|
  void setModifyCarts(bool priv) const;
 | 
						|
  bool editAudio() const;
 | 
						|
  void setEditAudio(bool priv) const;
 | 
						|
  bool webgetLogin() const;
 | 
						|
  void setWebgetLogin(bool priv) const;
 | 
						|
  bool createLog() const;
 | 
						|
  void setCreateLog(bool priv) const;
 | 
						|
  bool deleteLog() const;
 | 
						|
  void setDeleteLog(bool priv) const;
 | 
						|
  bool deleteRec() const;
 | 
						|
  void setDeleteRec(bool priv) const;
 | 
						|
  bool playoutLog() const;
 | 
						|
  void setPlayoutLog(bool priv) const;
 | 
						|
  bool arrangeLog() const;
 | 
						|
  void setArrangeLog(bool priv) const;
 | 
						|
  bool addtoLog() const;
 | 
						|
  void setAddtoLog(bool priv) const;
 | 
						|
  bool removefromLog() const;
 | 
						|
  void setRemovefromLog(bool priv) const;
 | 
						|
  bool configPanels() const;
 | 
						|
  void setConfigPanels(bool priv) const;
 | 
						|
  bool voicetrackLog() const;
 | 
						|
  void setVoicetrackLog(bool priv) const;
 | 
						|
  bool modifyTemplate() const;
 | 
						|
  void setModifyTemplate(bool priv) const;
 | 
						|
  bool editCatches() const;
 | 
						|
  void setEditCatches(bool priv) const;
 | 
						|
  bool addPodcast() const;
 | 
						|
  void setAddPodcast(bool priv) const;
 | 
						|
  bool editPodcast() const;
 | 
						|
  void setEditPodcast(bool priv) const;
 | 
						|
  bool deletePodcast() const;
 | 
						|
  void setDeletePodcast(bool priv) const;
 | 
						|
  bool groupAuthorized(const QString &group_name);
 | 
						|
  QStringList groups() const;
 | 
						|
  bool cartAuthorized(unsigned cartnum) const;
 | 
						|
 | 
						|
  /** Check a default service to ensure it is valid for the current user.
 | 
						|
   *
 | 
						|
   * @param serv QString with the proposed default service, presumably gotten
 | 
						|
   *             from RDAirPlayConf::defaultSvc()
 | 
						|
   * @return QString with serv if it was valid, otherwise an empty QString.
 | 
						|
   */
 | 
						|
  QString serviceCheckDefault(QString serv) const;
 | 
						|
 | 
						|
  /** Calculate the services associated with a user, based on the user's group
 | 
						|
   * membership and the relationship of groups to services.
 | 
						|
   *
 | 
						|
   * Note: admin users, those who pass adminConfig(), can see all services.
 | 
						|
   *
 | 
						|
   * @return QStringList with all the services associated with the user.
 | 
						|
   */
 | 
						|
  QStringList services() const;
 | 
						|
 | 
						|
 private:
 | 
						|
  void SetRow(const QString ¶m,const QString &value) const;
 | 
						|
  void SetRow(const QString ¶m,int value) const;
 | 
						|
  void SetRow(const QString ¶m,bool value) const;
 | 
						|
  QString user_name;
 | 
						|
  QString user_password;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
#endif  // RDUSER_H
 |