Timesheets-Server
Timesheets server
Načítám...
Vyhledávám...
Nebylo nic nalezeno
guard.cpp
Zobrazit dokumentaci tohoto souboru.
1
6#include "guard.h"
7
8using namespace Security;
9
10Guard *Guard::m_guard = NULL;
11
12
13Guard *Guard::guard(QObject *parent) {
14 if (m_guard == NULL) {
15 if (parent == NULL) {
16 qFatal("Guard::guard(NULL)");
17 }
18 new Guard(parent);
19 }
20 return m_guard;
21}
22
23
34Guard::Guard(QObject *parent) : QObject(parent) {
35 m_guard = this;
36 m_grants[Roles::User]
37 << Permissions::Server
38 << Permissions::ServerConfigFile
39 << Permissions::SystemPower
40 << Permissions::Systems
41 << Permissions::Translations
42 ;
43}
44
45
47 if (role == Roles::Admin) {
48 return true;
49 }
50 if (m_grants.contains(role) && m_grants[role].contains(permission)) {
51 return true;
52 }
53 return false;
54}
55
Definuje a poskytuje informace o přístupových oprávněních.
Definition guard.h:26
static Guard * guard(QObject *parent=NULL)
Vrací ukazatel na singleton instanci třídy.
Definition guard.cpp:13
Guard(QObject *)
Konstruktor - zde se vytváří seznam jednotlivých oprávnění
Definition guard.cpp:34
bool isGranted(Permissions::Permission, Roles::Role) const
Vrací true, pokud je požadované oprávnění pro požadovanou roli přístupné
Definition guard.cpp:46
Jmenný prostor pro správu oprávnění, role, klíče a náhodná volání
Definition guard.h:21
Permission
Seznam jednotlivých oprávnění
Definition permissions.h:22
Role
Seznam jednotlivých rolí
Definition roles.h:23
@ Admin
Administrátor.
Definition roles.h:24
@ User
Obyčejný uživatel.
Definition roles.h:25