00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef _SECURITYPLUGIN_H_
00016 #define _SECURITYPLUGIN_H_
00017
00018 #include <Error.h>
00019 #include <Config.h>
00020 #include <Common.h>
00021 #include <Plugin.h>
00022 #include <UserProfile.h>
00023
00024
00025 class Permission {};
00026 class QueryResult;
00027
00031 class SecurityPlugin : public Plugin
00032 {
00033 public:
00037 SecurityPlugin( const Config &cfg );
00038
00042 virtual ~SecurityPlugin() = 0;
00043
00049 virtual void getLoginChallenge( string username, string &challenge ) = 0;
00050
00057 virtual bool hasReadPermission( NumID userid, NumID docid ) = 0;
00058
00065 virtual bool hasWritePermission( NumID userid, NumID docid ) = 0;
00066
00073 virtual bool hasDeletePermission( NumID userid, NumID docid ) = 0;
00074
00085 virtual CoreError changeUserPermission( NumID userid, Permission permission, NumID adminid ) = 0;
00086
00097 virtual CoreError changeFilePermission( NumID docid, Permission permission, NumID userid ) = 0;
00098
00107 virtual CoreError filterSearchResults( QueryResult &queryResult ) = 0;
00108
00117 virtual CoreError login( string username, string challenge, string response, UserProfile &user ) = 0;
00118
00127 virtual CoreError addUser( const UserProfile &userProfile, string challenge, string password, NumID &userid ) = 0;
00128
00134 virtual CoreError delUser( NumID userid ) = 0;
00135
00142 virtual CoreError getUserProfile( NumID userid, UserProfile &userProfile ) = 0;
00143
00150 virtual CoreError changeUserProfile( NumID userid, const UserProfile &userProfile ) = 0;
00151
00161 virtual CoreError setPassword( NumID userid, string challenge, string oldPassword, string newPassword ) = 0;
00162
00168 virtual CoreError clearPassword( NumID userid ) = 0;
00169
00175 virtual CoreError listUsers( vector<NumID> &users ) = 0;
00176
00185 virtual CoreError fileCreated(NumID userid, NumID docid, Permission permission) = 0;
00186 };
00187
00188 #endif