Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members  

SecurityPlugin.h

00001 /*
00002    Copyright (C) 2002 - 2003 the Strongroom project
00003 
00004    This library is free software; you can redistribute it and/or
00005    modify it under the terms of the GNU Lesser General Public
00006    License as published by the Free Software Foundation; either
00007    version 2.1 of the License, or (at your option) any later version.
00008 
00009    The definition of the security module.
00010 
00011    @author Denis de Leeuw Duarte
00012    @author Ewald Snel
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 /*_SECURITYPLUGIN_H_*/

Generated on Wed Feb 18 13:45:55 2004 for strongroom by doxygen1.2.18